diff --git a/apps/as/instrumentation-client.ts b/apps/as/instrumentation-client.ts index 93548aca2..53f6d9761 100644 --- a/apps/as/instrumentation-client.ts +++ b/apps/as/instrumentation-client.ts @@ -7,6 +7,18 @@ const isSentryEnabled = process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT !== "dev" && process.env.NEXT_PUBLIC_SENTRY_ENVIRONMENT !== "prd"; +const getSentryHost = (dsn?: string) => { + if (!dsn) return null; + try { + const url = new URL(dsn); + return url.host; + } catch { + return null; + } +}; + +const sentryHost = getSentryHost(process.env.NEXT_PUBLIC_SENTRY_DSN); + Sentry.init({ enabled: isSentryEnabled, dsn: process.env.NEXT_PUBLIC_SENTRY_DSN, @@ -14,6 +26,18 @@ Sentry.init({ tracesSampleRate: 1.0, replaysSessionSampleRate: 1.0, replaysOnErrorSampleRate: 1.0, - integrations: [Sentry.replayIntegration()], + integrations: [ + Sentry.replayIntegration({ + networkDetailAllowUrls: sentryHost + ? [ + new RegExp( + `^(?!.*${sentryHost.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}).*(?:/api/|/server/).*$`, + ), + ] + : [/\/(?:api|server)\//], + networkRequestHeaders: ["X-Custom-Header"], + networkResponseHeaders: ["X-Custom-Header"], + }), + ], debug: process.env.NEXT_PUBLIC_SENTRY_DEBUG === "true", });