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'.
This commit is contained in:
giancarlo
2024-04-25 13:32:22 +07:00
parent 03d06b64ba
commit 3b3f50a714
3 changed files with 18 additions and 8 deletions

View File

@@ -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 (
<BaselimeRum
apiKey={apiKey}
apiKey={key}
enableWebVitals={enableWebVitals}
fallback={ErrorPage ?? null}
>

View File

@@ -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;

7
pnpm-lock.yaml generated
View File

@@ -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