feat(observability): browser Sentry SDK (gated on VITE_SENTRY_DSN)
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
Some checks failed
QA Gate (P0/P1) / Test affected app (pull_request) Has been cancelled
Sase frontend has Faro (RUM) and PostHog (product analytics) but no browser error monitoring. A recent panel session investigation (panel insight cmpv9q3ms004dfcphluw0z8bh — silent rage-clicks after parts_panel_viewed with no API call) couldn't be confirmed or refuted from JS error data because there was no JS error channel at all. This adds one. - @sentry/react ^9 (dynamic import in lib/sentry.ts so the bundle only pays the SDK cost when DSN is configured) - Init is gated on VITE_SENTRY_DSN — unset = no-op, no behaviour change - Replay only fires on error (sessionSampleRate 0, onErrorSampleRate 1) - KVKK: sendDefaultPii false, maskAllText + blockAllMedia on replay - Builds emit hidden source maps so Sentry can de-minify traces while end users don't fetch the maps in the browser - docker-compose.coolify.yml threads VITE_SENTRY_* through as build args (VITE_* must be build-time; runtime env never reaches a Vite bundle) Wiring on the Coolify side is a separate manual step — set VITE_SENTRY_DSN on the prod (ro48g…) and/or dev (jwgwkg…) app and redeploy. Backend Sentry (NestJS) is unchanged. Refs: Süper Panel docs/ARCHITECTURE.md, panel sentry-archive job.
This commit is contained in:
@@ -10,6 +10,11 @@ services:
|
||||
- VITE_META_PIXEL_ID=${VITE_META_PIXEL_ID:-}
|
||||
- VITE_CHATWOOT_BASE_URL=${VITE_CHATWOOT_BASE_URL:-}
|
||||
- VITE_CHATWOOT_WEBSITE_TOKEN=${VITE_CHATWOOT_WEBSITE_TOKEN:-}
|
||||
# Sentry browser SDK — gated on DSN presence (unset = skip init).
|
||||
# VITE_* args must be build-time; runtime env won't reach the bundle.
|
||||
- VITE_SENTRY_DSN=${VITE_SENTRY_DSN:-}
|
||||
- VITE_SENTRY_ENVIRONMENT=${VITE_SENTRY_ENVIRONMENT:-production}
|
||||
- VITE_SENTRY_RELEASE=${VITE_SENTRY_RELEASE:-}
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
- PORT=4000
|
||||
|
||||
Reference in New Issue
Block a user