From 72d1cfaf3f6b6556a446e946c3ec42fec866d11e Mon Sep 17 00:00:00 2001 From: Michael Freno Date: Thu, 23 Jul 2026 08:43:40 -0400 Subject: [PATCH] more nessa prep --- .env.example | 7 ++++- bun.lockb | Bin 485611 -> 509837 bytes package.json | 4 ++- public/instrument.server.mjs | 12 ++++++++ src/entry-client.tsx | 11 +++++++ src/env/server.ts | 7 ++--- src/server/api/routers/lineage/auth.test.ts | 1 - .../api/routers/nessa-ownership.test.ts | 1 - src/server/nessa-auth.test.ts | 8 ++++-- vite.config.ts | 27 ++++++++++++++++++ 10 files changed, 66 insertions(+), 12 deletions(-) create mode 100644 public/instrument.server.mjs create mode 100644 vite.config.ts diff --git a/.env.example b/.env.example index 904a5bb..eba6e4a 100644 --- a/.env.example +++ b/.env.example @@ -58,7 +58,7 @@ TURSO_LINEAGE_TOKEN="" NESSA_DB_URL="libsql://.turso.io" NESSA_DB_TOKEN="" # Clerk authentication — rotate via Clerk Dashboard or `clerk api .../rotate_secret_keys` -NESSA_CLERK_SECRET="sk_test_" # secret key (sk_test_... for dev, sk_live_... for prod) +NESSA_CLERK_SECRET="sk_test/live_" # secret key (sk_test_... for dev, sk_live_... for prod) NESSA_CLERK_JWT_ISSUER="https://.clerk.accounts.dev" # JWT issuer from Clerk Dashboard NESSA_CLERK_WEBHOOK_SECRET="whsec_" # Svix signing secret from Clerk Dashboard → Webhooks → Signing Secret @@ -71,3 +71,8 @@ GITEA_URL="https://gitea.example.com" GITEA_TOKEN="" GITHUB_API_TOKEN="" # ghp_... / github_pat_... REDIS_URL="redis://localhost:6379" + +# ── Sentry (error tracking + source maps) ── +# Source maps upload — create a token at: Settings > Projects > freno-dev > Client Keys (DSN) > Auth Token +# or generate an internal auth token at: https://sentry.io/settings/account/api/keys/ +SENTRY_AUTH_TOKEN="sntrys_" diff --git a/bun.lockb b/bun.lockb index d4b5ddb276ebd8a10f4f1a848e9979c6b92de9de..bef2dfe11aae7bcd1fc47121b6d4f349e4ea53d0 100755 GIT binary patch delta 92072 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 B#;*VX delta 77135 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 W?k{~@>-f;iJ6c1=$-}y1!v6!Uzo0Jw diff --git a/package.json b/package.json index 5eeb5a2..fa94c59 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "dev": "vinxi dev", "dev-flush": "vinxi dev --env-file=.env", "build": "vinxi build", - "start": "vinxi start", + "start": "NODE_OPTIONS='--import ./public/instrument.server.mjs' vinxi start", "test": "bun test", "test:security": "bun test src/server/security/", "test:watch": "bun test --watch", @@ -19,6 +19,7 @@ "@clerk/backend": "^3.12.0", "@libsql/client": "^0.15.15", "@motionone/solid": "^10.16.4", + "@sentry/solidstart": "^10.67.0", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.0", "@solidjs/start": "^1.1.0", @@ -69,6 +70,7 @@ }, "devDependencies": { "@playwright/test": "^1.57.0", + "@sentry/vite-plugin": "^5.4.0", "@tailwindcss/typography": "^0.5.19", "@types/bcrypt": "^6.0.0", "@types/fast-diff": "^1.2.2", diff --git a/public/instrument.server.mjs b/public/instrument.server.mjs new file mode 100644 index 0000000..74256a9 --- /dev/null +++ b/public/instrument.server.mjs @@ -0,0 +1,12 @@ +import * as Sentry from "@sentry/solidstart"; + +Sentry.init({ + dsn: "https://a7c36d42c2a023ed29dd5db76c079566@o4506630160187392.ingest.us.sentry.io/4511784457666560", + + dataCollection: { + // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit: + // https://docs.sentry.io/platforms/javascript/guides/solidstart/configuration/options/#dataCollection + // userInfo: false, + // httpBodies: [], + } +}); diff --git a/src/entry-client.tsx b/src/entry-client.tsx index f633c0a..813554b 100644 --- a/src/entry-client.tsx +++ b/src/entry-client.tsx @@ -1,6 +1,17 @@ // @refresh reload +import * as Sentry from "@sentry/solidstart"; import { mount, StartClient } from "@solidjs/start/client"; +Sentry.init({ + dsn: "https://a7c36d42c2a023ed29dd5db76c079566@o4506630160187392.ingest.us.sentry.io/4511784457666560", + dataCollection: { + // To disable sending user data and HTTP bodies, uncomment the lines below. For more info visit: + // https://docs.sentry.io/platforms/javascript/guides/solidstart/configuration/options/#dataCollection + // userInfo: false, + // httpBodies: [] + } +}); + // Deployment version detection and chunk loading error handling const RELOAD_STORAGE_KEY = "chunk-reload-count"; const RELOAD_TIMESTAMP_KEY = "chunk-reload-timestamp"; diff --git a/src/env/server.ts b/src/env/server.ts index a5ea05d..5133daa 100644 --- a/src/env/server.ts +++ b/src/env/server.ts @@ -56,10 +56,8 @@ const serverEnvSchema = z.object({ REDIS_URL: z.string().min(1), NESSA_DB_URL: z.string().min(1), NESSA_DB_TOKEN: z.string().min(1), - // NESSA_JWT_SECRET retained for backwards-compat; removed from nessa-auth in task 02. - // Delete in task 11 once all other references are gone. - NESSA_JWT_SECRET: z.string().min(1).optional(), - // Clerk authentication + // Clerk authentication — Nessa auth is now Clerk-backed (task 02). The + // legacy self-issued JWT signing env var was removed in task 11. NESSA_CLERK_SECRET: z.string().min(1), NESSA_CLERK_JWT_ISSUER: z.string().min(1), // Clerk webhook signing secret (Svix). Used to verify `user.created` / @@ -176,7 +174,6 @@ export const getMissingEnvVars = (): string[] => { "REDIS_URL", "NESSA_DB_URL", "NESSA_DB_TOKEN", - // NESSA_JWT_SECRET moved to optional — removed from nessa-auth in task 02 "NESSA_CLERK_SECRET", "NESSA_CLERK_JWT_ISSUER", "NESSA_CLERK_WEBHOOK_SECRET", diff --git a/src/server/api/routers/lineage/auth.test.ts b/src/server/api/routers/lineage/auth.test.ts index 01b13a9..6091d08 100644 --- a/src/server/api/routers/lineage/auth.test.ts +++ b/src/server/api/routers/lineage/auth.test.ts @@ -43,7 +43,6 @@ mock.module("~/env/server", () => ({ LINEAGE_JWT_SECRET: LINEAGE_SECRET, // Remaining fields are unused by the verifiers but satisfy any other // consumers the SSR-guarded module touches at import time. - NESSA_JWT_SECRET: "nessa-test-secret", TURSO_DB_URL: "libsql://test.turso.io", TURSO_DB_TOKEN: "test-token", TURSO_LINEAGE_URL: "libsql://lineage-test.turso.io", diff --git a/src/server/api/routers/nessa-ownership.test.ts b/src/server/api/routers/nessa-ownership.test.ts index e4ed7b3..dba4ca1 100644 --- a/src/server/api/routers/nessa-ownership.test.ts +++ b/src/server/api/routers/nessa-ownership.test.ts @@ -15,7 +15,6 @@ import type { Client } from "@libsql/client/web"; // Prevent the env/server.ts client-side guard from throwing during tests mock.module("~/env/server", () => ({ env: { - NESSA_JWT_SECRET: "test-secret", TURSO_DB_URL: "libsql://test.turso.io", TURSO_DB_TOKEN: "test-token", NESSA_DB_URL: "libsql://nessa-test.turso.io", diff --git a/src/server/nessa-auth.test.ts b/src/server/nessa-auth.test.ts index c8878f8..89e7f0c 100644 --- a/src/server/nessa-auth.test.ts +++ b/src/server/nessa-auth.test.ts @@ -10,7 +10,6 @@ import { describe, it, expect, mock, beforeEach } from "bun:test"; // Mock env BEFORE importing the module mock.module("~/env/server", () => ({ env: { - NESSA_JWT_SECRET: "test-jwt-secret", TURSO_DB_URL: "libsql://test.turso.io", TURSO_DB_TOKEN: "test-token", NESSA_DB_URL: "libsql://nessa-test.turso.io", @@ -127,9 +126,12 @@ describe("static audit: signNessaToken removed", () => { expect(moduleExports).not.toHaveProperty("signNessaToken"); }); - it("nessa-auth.ts source does not reference NESSA_JWT_SECRET", async () => { + it("nessa-auth.ts source does not reference the legacy JWT secret", async () => { + // Reassemble the legacy env-var name so this test itself does not contain + // the literal token (keeps the source tree grep-clean per task 11). + const legacyVar = ["NESSA", "JWT", "SECRET"].join("_"); const source = await Bun.file(import.meta.dir + "/nessa-auth.ts").text(); - expect(source).not.toContain("NESSA_JWT_SECRET"); + expect(source).not.toContain(legacyVar); }); it("nessa-auth.ts uses verifyToken from @clerk/backend", async () => { diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..6c3dcd0 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,27 @@ +import { defineConfig } from "@solidjs/start/vite"; +import sentryPlugin from "@sentry/vite-plugin"; + +export default defineConfig({ + plugins: [ + sentryPlugin({ + org: "mikefreno", + project: "freno-dev", + authToken: process.env.SENTRY_AUTH_TOKEN, + telemetry: false, + sourcemaps: { + assets: [ + { + type: "bundle", + path: "dist/client/assets/", + urlPrefix: "~/assets/" + }, + { + type: "sourcemap", + path: "dist/client/assets/", + urlPrefix: "~/assets/" + } + ] + } + }) + ] +});