Scrum4Me/sentry.server.config.ts
Madhura68 ac11483c68 feat(ops): Sentry error-monitoring (v1-readiness item 2)
Vier config-files volgens Next.js 15+ conventie:
- instrumentation.ts (root) → koppelt server/edge config aan runtime-hook
- instrumentation-client.ts → client-init + onRouterTransitionStart
- sentry.server.config.ts → node-runtime
- sentry.edge.config.ts → edge-runtime (proxy.ts)

next.config.ts gewrapped met withSentryConfig:
- Source-map-upload ALLEEN als SENTRY_AUTH_TOKEN gezet is
- Tunnel /monitoring omzeilt ad-blockers (*.sentry.io)
- Silent buiten CI

SDK is no-op zonder NEXT_PUBLIC_SENTRY_DSN — geen network/overhead in
dev of bij ontbrekende creds. Sample-rates conservatief: errors 100%,
performance 10% in productie / 100% in dev. Geen Replay (privacy-review
nodig + overkill voor MVP). sendDefaultPii uit.

.env.example gedocumenteerd; architectuur-doc bijgewerkt met nieuwe
sleutelbeslissing en file-tree-aanvulling. v1-readiness #1 verschoven
naar 'done', #2 hiermee in flight.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-04 13:24:19 +02:00

18 lines
618 B
TypeScript

// PBI/v1-readiness item 2: Sentry error-monitoring (server runtime).
// Geen DSN gezet → SDK is no-op (geen network, geen overhead in dev).
import * as Sentry from '@sentry/nextjs'
Sentry.init({
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
// Errors altijd 100%; performance-traces conservatief.
tracesSampleRate: process.env.NODE_ENV === 'production' ? 0.1 : 1.0,
// Geen PII in events — usernames + product-ids zijn voldoende identificatie.
sendDefaultPii: false,
// Quiet in dev als DSN ontbreekt; verbose-logs uit in productie.
enabled: !!process.env.NEXT_PUBLIC_SENTRY_DSN,
debug: false,
})