From 709806f75fa81a7aa3290feda437794af9d59d98 Mon Sep 17 00:00:00 2001 From: Hugues Chocart Date: Tue, 18 Jun 2024 16:10:31 -0300 Subject: [PATCH 1/3] fix: lunary-ee (#383) --- ops | 2 +- packages/frontend/next.config-monolith.js | 51 +++++++++++++++++++++++ packages/frontend/next.config.js | 7 ---- packages/frontend/pages/analytics.tsx | 1 - packages/frontend/pages/settings.tsx | 1 - 5 files changed, 52 insertions(+), 10 deletions(-) create mode 100644 packages/frontend/next.config-monolith.js diff --git a/ops b/ops index ab1dcd7f..bfbff5b1 160000 --- a/ops +++ b/ops @@ -1 +1 @@ -Subproject commit ab1dcd7faa232550c93857889cc7e8a7bfb538c5 +Subproject commit bfbff5b1a73ba6304ddc700efff485bebfccc118 diff --git a/packages/frontend/next.config-monolith.js b/packages/frontend/next.config-monolith.js new file mode 100644 index 00000000..6dd60e86 --- /dev/null +++ b/packages/frontend/next.config-monolith.js @@ -0,0 +1,51 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + eslint: { + // Warning: This allows production builds to successfully complete even if + // your project has ESLint errors. + ignoreDuringBuilds: true, + }, + typescript: { + // !! WARN !! + // Dangerously allow production builds to successfully complete even if + // your project has type errors. + // !! WARN !! + ignoreBuildErrors: true, + }, + images: { + remotePatterns: [ + { + protocol: "https", + hostname: "**", + }, + ], + }, + async rewrites() { + const redirects = [ + { + source: '/api/:path*', + destination: 'http://localhost:3333/:path*' + }, + { + source: '/api/auth/:path*', + destination: 'http://localhost:3333/auth/:path*' + } + ] + + + return redirects + }, + webpack: (config, { webpack }) => { + config.plugins.push( + new webpack.IgnorePlugin({ + resourceRegExp: /^pg-native$|^cloudflare:sockets$/, + }), + ) + + return config + }, + transpilePackages: ["shared"], +} + +module.exports = nextConfig diff --git a/packages/frontend/next.config.js b/packages/frontend/next.config.js index b7f87252..ed9f92f6 100644 --- a/packages/frontend/next.config.js +++ b/packages/frontend/next.config.js @@ -47,13 +47,6 @@ const nextConfig = { }, ] - if(process.env.IS_SELF_HOSTED_MONOLITHIC) { - redirects.push({ - source: '/api/path:*', - destination: 'http://localhost:3333/api/path:*' - }) - } - return redirects }, webpack: (config, { webpack }) => { diff --git a/packages/frontend/pages/analytics.tsx b/packages/frontend/pages/analytics.tsx index 213afc4b..c3483bf0 100644 --- a/packages/frontend/pages/analytics.tsx +++ b/packages/frontend/pages/analytics.tsx @@ -365,7 +365,6 @@ export default function Analytics() { serializedChecks, ) - console.log(tokensData) const { data: costData, isLoading: costDataLoading } = useAnalyticsChartData( "costs", startDate, diff --git a/packages/frontend/pages/settings.tsx b/packages/frontend/pages/settings.tsx index 4a23a596..087d6f98 100644 --- a/packages/frontend/pages/settings.tsx +++ b/packages/frontend/pages/settings.tsx @@ -154,7 +154,6 @@ export default function AppAnalytics() { const { data: projectUsage, isLoading: projectUsageLoading } = useSWR( project?.id && org && `/orgs/${org.id}/usage?projectId=${project?.id}`, ) - console.log(projectUsage) return ( From f0f67ec9f6416f623a275789b88e4020a916eabb Mon Sep 17 00:00:00 2001 From: Hugues Chocart Date: Tue, 18 Jun 2024 18:49:02 -0300 Subject: [PATCH 2/3] perf: optimize runs query (#385) --- packages/backend/src/api/v1/runs/index.ts | 24 +++-------------------- packages/backend/src/utils/db.ts | 5 +++++ 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/packages/backend/src/api/v1/runs/index.ts b/packages/backend/src/api/v1/runs/index.ts index b21be629..a087c36b 100644 --- a/packages/backend/src/api/v1/runs/index.ts +++ b/packages/backend/src/api/v1/runs/index.ts @@ -150,39 +150,21 @@ runs.get("/", async (ctx: Context) => { eu.last_seen as user_last_seen, eu.props as user_props, t.slug as template_slug, - rpfc.feedback as parent_feedback, - coalesce(array_agg( - jsonb_build_object( - 'evaluatorName', e.name, - 'evaluatorSlug', e.slug, - 'evaluatorId', e.id, - 'result', er.result, - 'createdAt', er.created_at, - 'updatedAt', er.updated_at - ) - ) filter (where er.run_id is not null), '{}') as evaluation_results + rpfc.feedback as parent_feedback from - public.run r + run r left join external_user eu on r.external_user_id = eu.id left join run_parent_feedback_cache rpfc on r.id = rpfc.id left join template_version tv on r.template_version_id = tv.id left join template t on tv.template_id = t.id - left join evaluation_result_v2 er on r.id = er.run_id - left join evaluator e on er.evaluator_id = e.id where r.project_id = ${projectId} ${parentRunCheck} and (${filtersQuery}) - group by - r.id, - eu.id, - t.slug, - rpfc.feedback order by r.created_at desc limit ${exportType ? 10000 : Number(limit)} - offset ${Number(page) * Number(limit)} - ` + offset ${Number(page) * Number(limit)}` const runs = rows.map(formatRun) diff --git a/packages/backend/src/utils/db.ts b/packages/backend/src/utils/db.ts index b52120ae..d0f6106b 100644 --- a/packages/backend/src/utils/db.ts +++ b/packages/backend/src/utils/db.ts @@ -23,6 +23,11 @@ function debugFn( parameters: any[], paramTypes: any[], ) { + // for (let i = 0; i <= parameters.length; i++) { + // let regex = new RegExp(`\\$${i + 1}`, "g") + // query = query.replace(regex, `'${parameters[i]}'`) + // } + console.log("connection:", connection) console.log("query:", query) console.log("parameters:", parameters) From c36a2a9c0f904c9892c8641c3636311ea8709776 Mon Sep 17 00:00:00 2001 From: Hugues Chocart Date: Wed, 19 Jun 2024 02:34:54 -0300 Subject: [PATCH 3/3] perf: text search for runs (#387) --- packages/backend/src/checks/index.ts | 3 +-- packages/db/0021.sql | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 packages/db/0021.sql diff --git a/packages/backend/src/checks/index.ts b/packages/backend/src/checks/index.ts index fecfbacc..2378994e 100644 --- a/packages/backend/src/checks/index.ts +++ b/packages/backend/src/checks/index.ts @@ -319,8 +319,7 @@ export const CHECK_RUNNERS: CheckRunner[] = [ { id: "search", sql: ({ query }) => - sql`(to_tsvector('simple', substring(r.input_text, 1, 948575)) @@ plainto_tsquery('simple', ${query}) - or to_tsvector('simple', substring(r.output_text, 1, 948575)) @@ plainto_tsquery('simple', ${query}))`, + sql`(r.input_text ilike ${`%${query}%`} or r.output_text ilike ${`%${query}%`})`, }, { id: "string", diff --git a/packages/db/0021.sql b/packages/db/0021.sql new file mode 100644 index 00000000..90b14b10 --- /dev/null +++ b/packages/db/0021.sql @@ -0,0 +1,2 @@ +create index on run using gin (input_text gin_trgm_ops); +create index on run using gin (output_text gin_trgm_ops);