From 3b3f50a7142a25b2b356e2d334fe37c0fddfcae2 Mon Sep 17 00:00:00 2001 From: giancarlo Date: Thu, 25 Apr 2024 13:32:22 +0700 Subject: [PATCH] Refactor Baselime monitoring provider for optional API key The code was adjusted to not require an API key for the Baselime monitoring provider. Now, a warning will be logged if no key is provided. Dependencies in pnpm-lock.yaml and error message in baselime-server-monitoring.service.ts were also updated accordingly to reflect this change, primarily to utilize the variable 'NEXT_PUBLIC_BASELIME_KEY' instead of 'BASELIME_API_KEY'. --- .../baselime/src/components/provider.tsx | 15 +++++++++++++-- .../baselime-server-monitoring.service.ts | 4 ++-- pnpm-lock.yaml | 7 +++---- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/packages/monitoring/baselime/src/components/provider.tsx b/packages/monitoring/baselime/src/components/provider.tsx index 15ee4e3d2..9e1749b7f 100644 --- a/packages/monitoring/baselime/src/components/provider.tsx +++ b/packages/monitoring/baselime/src/components/provider.tsx @@ -12,13 +12,24 @@ export function BaselimeProvider({ enableWebVitals, ErrorPage, }: React.PropsWithChildren<{ - apiKey: string; + apiKey?: string; enableWebVitals?: boolean; ErrorPage?: React.ReactElement; }>) { + const key = apiKey ?? process.env.NEXT_PUBLIC_BASELIME_KEY ?? ''; + + if (!key) { + console.warn( + 'You configured Baselime as monitoring provider but did not provide a key. ' + + 'Please provide a key to enable monitoring with Baselime using the variable NEXT_PUBLIC_BASELIME_KEY.', + ); + + return children; + } + return ( diff --git a/packages/monitoring/baselime/src/services/baselime-server-monitoring.service.ts b/packages/monitoring/baselime/src/services/baselime-server-monitoring.service.ts index bdb776120..bc864b360 100644 --- a/packages/monitoring/baselime/src/services/baselime-server-monitoring.service.ts +++ b/packages/monitoring/baselime/src/services/baselime-server-monitoring.service.ts @@ -5,9 +5,9 @@ import { MonitoringService } from '@kit/monitoring-core'; const apiKey = z .string({ - required_error: 'BASELIME_API_KEY is required', + required_error: 'NEXT_PUBLIC_BASELIME_KEY is required', }) - .parse(process.env.BASELIME_API_KEY); + .parse(process.env.NEXT_PUBLIC_BASELIME_KEY); export class BaselimeServerMonitoringService implements MonitoringService { userId: string | null = null; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 817e1c4cd..93cc4fb3e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1029,10 +1029,6 @@ importers: version: 18.2.0 packages/next: - dependencies: - '@kit/monitoring': - specifier: workspace:* - version: link:../monitoring/api devDependencies: '@kit/auth': specifier: workspace:^ @@ -1040,6 +1036,9 @@ importers: '@kit/eslint-config': specifier: workspace:* version: link:../../tooling/eslint + '@kit/monitoring': + specifier: workspace:* + version: link:../monitoring/api '@kit/prettier-config': specifier: workspace:* version: link:../../tooling/prettier