517aefcd9b
Error tracking centralisé (ticket INFRA #146) : remontée des erreurs back (Symfony) et front (Nuxt) vers l'instance GlitchTip auto-hébergée. Backend : - sentry/sentry-symfony ^5.10, bundle enregistré prod-only - config/packages/sentry.yaml : handler Monolog niveau ERROR+, ignore les 4xx/AccessDenied, pas d'APM, release = %app.version% - services.yaml importe version.yaml pour exposer app.version au container - .env : bloc SENTRY_DSN documenté (vide => SDK inerte) Frontend : - @sentry/nuxt ^10.61, module chargé uniquement si NUXT_PUBLIC_SENTRY_DSN défini - runtimeConfig.public.sentry + source maps (hidden) + options d'upload - sentry.client.config.ts : init côté client gardée par if (dsn) DSN vides par défaut : aucune erreur n'est envoyée tant que les projets GlitchTip inventory-api / inventory-front et leurs DSN ne sont pas configurés en prod. Aucun secret commité. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
19 lines
595 B
TypeScript
19 lines
595 B
TypeScript
import * as Sentry from '@sentry/nuxt'
|
|
|
|
// Init Sentry côté client (SPA). Le DSN provient du build prod (NUXT_PUBLIC_SENTRY_DSN).
|
|
// Si le DSN est vide (dev), Sentry.init est un no-op : rien n'est envoyé.
|
|
const config = useRuntimeConfig()
|
|
const dsn = config.public.sentry?.dsn
|
|
|
|
if (dsn) {
|
|
Sentry.init({
|
|
dsn,
|
|
environment: config.public.sentry?.environment,
|
|
// Pas d'APM/tracing (hors périmètre ticket #146) : on ne remonte que les erreurs.
|
|
tracesSampleRate: 0,
|
|
// Pas de session replay (volume).
|
|
replaysSessionSampleRate: 0,
|
|
replaysOnErrorSampleRate: 0,
|
|
})
|
|
}
|