Contexte
Sentry et PostHog sont déjà intégrés (lib/services/sentry.js et analytics.js), mais :
- Les erreurs ne partent que sur Sentry (
express.js:315)
- PostHog error tracking n'est pas wired
- Pas de flag pour gater les features PostHog (ex :
analyticsMiddleware auto-on dès que posthog.apiKey est présent, express.js:291-299)
Objectif
Permettre à chaque projet downstream d'activer Sentry, PostHog errors, les deux, ou aucun — via env vars, sans changer de code.
Proposition
1. Fan-out errors
Nouveau lib/services/errorTracker.js : captureException(err, ctx) fanouts vers les SDKs actifs.
- Sentry si
DEVKIT_NODE_sentry_dsn
- PostHog si
DEVKIT_NODE_posthog_apiKey et DEVKIT_NODE_posthog_errorTracking=true
Remplace setupExpressErrorHandler dans express.js.
2. Flags opt-in PostHog
Default safe : posthog.apiKey seule = juste track() + identify(). Le reste en opt-in.
| Env var |
Default |
DEVKIT_NODE_posthog_errorTracking |
false |
DEVKIT_NODE_posthog_autoCapture |
false |
Le middleware api_request actuel devient opt-in via posthog.autoCapture.
3. Contexte partagé
Middleware unifié (post-auth) qui set userId + requestId sur les deux SDKs.
Scope
lib/services/errorTracker.js (nouveau)
lib/services/sentry.js, analytics.js (expose captureException)
lib/services/express.js (fan-out + gate middleware)
- Config defaults +
.env.example
- Tests des 4 combinaisons (aucun / Sentry / PostHog / les deux)
Lié
Issue miroir sur pierreb-devkit/Vue.
Contexte
Sentry et PostHog sont déjà intégrés (
lib/services/sentry.jsetanalytics.js), mais :express.js:315)analyticsMiddlewareauto-on dès queposthog.apiKeyest présent,express.js:291-299)Objectif
Permettre à chaque projet downstream d'activer Sentry, PostHog errors, les deux, ou aucun — via env vars, sans changer de code.
Proposition
1. Fan-out errors
Nouveau
lib/services/errorTracker.js:captureException(err, ctx)fanouts vers les SDKs actifs.DEVKIT_NODE_sentry_dsnDEVKIT_NODE_posthog_apiKeyetDEVKIT_NODE_posthog_errorTracking=trueRemplace
setupExpressErrorHandlerdansexpress.js.2. Flags opt-in PostHog
Default safe :
posthog.apiKeyseule = justetrack()+identify(). Le reste en opt-in.DEVKIT_NODE_posthog_errorTrackingfalseDEVKIT_NODE_posthog_autoCapturefalseLe middleware
api_requestactuel devient opt-in viaposthog.autoCapture.3. Contexte partagé
Middleware unifié (post-auth) qui set
userId+requestIdsur les deux SDKs.Scope
lib/services/errorTracker.js(nouveau)lib/services/sentry.js,analytics.js(exposecaptureException)lib/services/express.js(fan-out + gate middleware).env.exampleLié
Issue miroir sur
pierreb-devkit/Vue.