Curated, product-agnostic snapshot of the post-story-04 tree: demo content deleted, auth-only reference feature, web-next shell, all gates green. Product-specific docs, ADRs 027-029, PRDs/epics/archive, editor library traces, and product naming are curated out; generic template repairs (coverage provider devDeps, root test:coverage script, live lint fixes, root-only release-please) are kept. See TEMPLATE.md for provenance, curation list, and usage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
23 lines
779 B
TypeScript
23 lines
779 B
TypeScript
// apps/cms/instrumentation.ts
|
|
// CMS is server-only (Payload admin UI). No instrumentation-client.ts here —
|
|
// Payload admin UI bundling is opinionated and the public DSN flow is
|
|
// out-of-scope per spec §8.
|
|
//
|
|
// Initializes the OTel SDK here so PII scrub processors are active from the
|
|
// very first request — before bindAll() fires (C1 fix).
|
|
|
|
export async function register() {
|
|
if (
|
|
process.env["NEXT_RUNTIME"] === "nodejs" ||
|
|
process.env["NEXT_RUNTIME"] === "edge"
|
|
) {
|
|
const { initOtelServerNode } =
|
|
await import("@repo/core-shared/instrumentation/otel/init-server-node");
|
|
initOtelServerNode({
|
|
dsn: process.env["CMS_SENTRY_DSN"] ?? "",
|
|
serviceName: "cms",
|
|
environment: process.env["NODE_ENV"] ?? "development",
|
|
});
|
|
}
|
|
}
|