fix(sentry): make DSN env-driven so self-hosters can opt out
The Sentry DSNs were hardcoded in journal/server.ts, planner/server.ts, and journal/app/lib/sentry.client.ts. Self-hosted instances inheriting the trails.cool flagship DSN would silently ship their errors to our Sentry account. Now each init site reads its DSN from env: - journal/server.ts: SENTRY_DSN (server runtime env) - planner/server.ts: SENTRY_DSN (server runtime env) - journal/app/lib/sentry.client.ts: VITE_SENTRY_DSN (build-time bake) The flagship DSN is kept as the fallback so the production deploy keeps reporting without an infra change — but self-hosters can: - set SENTRY_DSN=\"\" / VITE_SENTRY_DSN=\"\" to ship their own builds without Sentry, or - set SENTRY_DISABLED=true to skip init entirely at runtime, or - set SENTRY_DSN=/VITE_SENTRY_DSN= to their own DSN. Follow-up: a future PR can remove the hardcoded fallbacks once infrastructure/docker-compose.yml + the cd-apps.yml workflow are wired to pass SENTRY_DSN explicitly. That requires SOPS edits + workflow changes I want isolated from this purely-code change. Full repo: pnpm typecheck, pnpm lint, pnpm test all green. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
9614b68a13
commit
f05165c594
3 changed files with 37 additions and 11 deletions
|
|
@ -11,11 +11,17 @@ import { createBoss, startWorker } from "@trails-cool/jobs";
|
|||
import { expireSessionsJob } from "./app/jobs/expire-sessions.ts";
|
||||
import postgres from "postgres";
|
||||
|
||||
Sentry.init({
|
||||
dsn: "https://5215134cd78d5e6c199e29300b8425af@o4509530546634752.ingest.de.sentry.io/4511102546608208",
|
||||
...nodeSentryConfig("planner server"),
|
||||
beforeSend: drop404s,
|
||||
});
|
||||
// See apps/journal/server.ts for the SENTRY_DSN / SENTRY_DISABLED contract.
|
||||
const FLAGSHIP_PLANNER_SENTRY_DSN =
|
||||
"https://5215134cd78d5e6c199e29300b8425af@o4509530546634752.ingest.de.sentry.io/4511102546608208";
|
||||
const sentryDsn = process.env.SENTRY_DSN ?? FLAGSHIP_PLANNER_SENTRY_DSN;
|
||||
if (process.env.SENTRY_DISABLED !== "true" && sentryDsn !== "") {
|
||||
Sentry.init({
|
||||
dsn: sentryDsn,
|
||||
...nodeSentryConfig("planner server"),
|
||||
beforeSend: drop404s,
|
||||
});
|
||||
}
|
||||
|
||||
const port = Number(process.env.PORT ?? 3001);
|
||||
const CLIENT_DIR = resolve(import.meta.dirname, "build", "client");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue