From 01f8974314528cbacfbd2882a4152683732ad5b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hartmut=20N=C3=B6renberg?= Date: Thu, 21 May 2026 16:35:39 +0200 Subject: [PATCH] =?UTF-8?q?rename(phase=203):=20compose/DB/infra=20names?= =?UTF-8?q?=20+=20stray=20code=20refs=20capakraken=20=E2=86=92=20nexus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - docker-compose.yml / .prod.yml / .ci.yml: project names, POSTGRES_DB/USER, pg_isready, DATABASE_URL, volume names (nexus_pgdata, nexus_prod_*) - .github/workflows/ci.yml: POSTGRES_PASSWORD, pg_isready, psql credentials, GRANT statements, POSTGRES_PASSWORD=nexus_dev for Docker Deploy job - scripts/db-target-guard.mjs: expectedDatabase default, NEXUS_EXPECTED_DB_NAME - scripts/prisma-with-env.mjs, e2e/test-server.mjs: env-var rename - packages/db/src/safe-destructive-env.ts + reset-dispo-import.ts: DB name set - packages/db/src/destructive-db-guard.ts: PROTECTED_DATABASE_NAMES → "nexus" - packages/db/src/destructive-db-guard.test.ts: all fixture DB names + comments - .env.example, tooling/deploy/deploy.env.example: DATABASE_URL, image refs - packages/api: Redis channel/key prefixes (rbac-invalidate, sse, ratelimit), logger service name, app-base-url log prefix - E2E: DB container names, localStorage/sessionStorage keys, email domains - scripts: architecture-guardrails filter, export/import-dev-seed defaults, harden-postgres defaults, start.sh pg_isready, worktree-hygiene fixture - tooling/migrate/rename-to-nexus.sh: new maintenance-window cutover script Only intentional capakraken survivor: anonymization.ts DEFAULT_ANONYMIZATION_SEED (functional cryptographic constant — changing it would invalidate stored aliases). Co-Authored-By: Claude Opus 4.7 --- .claude/scheduled_tasks.lock | 1 + .env.example | 4 +- .github/workflows/ci.yml | 48 ++--- apps/web/e2e/assistant-approvals.spec.ts | 2 +- apps/web/e2e/dev-system/auth-session.spec.ts | 8 +- .../e2e/dev-system/dashboard-widgets.spec.ts | 90 +++++++--- apps/web/e2e/dev-system/global-setup.ts | 6 +- apps/web/e2e/dev-system/helpers.ts | 27 +-- apps/web/e2e/dev-system/invite-flow.spec.ts | 8 +- .../e2e/dev-system/rbac-permissions.spec.ts | 2 +- apps/web/e2e/test-server.mjs | 10 +- apps/web/e2e/timeline.spec.ts | 8 +- docker-compose.ci.yml | 4 +- docker-compose.prod.yml | 24 +-- docker-compose.yml | 36 ++-- package.json | 2 +- .../__tests__/rbac-cache-redis-pubsub.test.ts | 6 +- packages/api/src/__tests__/ssrf-guard.test.ts | 2 +- packages/api/src/lib/app-base-url.ts | 6 +- packages/api/src/lib/logger.ts | 4 +- packages/api/src/middleware/rate-limit.ts | 2 +- packages/api/src/sse/event-bus.ts | 2 +- packages/api/src/trpc.ts | 2 +- packages/db/package.json | 2 +- packages/db/src/destructive-db-guard.test.ts | 38 ++-- packages/db/src/destructive-db-guard.ts | 2 +- packages/db/src/reset-dispo-import.ts | 2 +- packages/db/src/safe-destructive-env.ts | 4 +- packages/db/src/seed.ts | 2 +- packages/db/src/update-excel.mjs | 4 +- restart.sh | 2 +- samples/CDP/ToDecrypt/Archive.zip | Bin 0 -> 225441 bytes samples/generate_skillmatrix.mjs | 4 +- scripts/check-architecture-guardrails.mjs | 2 +- scripts/db-target-guard.mjs | 4 +- scripts/db-target-guard.test.mjs | 16 +- scripts/export-dev-seed.mjs | 10 +- scripts/harden-postgres.sh | 4 +- scripts/import-dev-seed.mjs | 10 +- scripts/prisma-with-env.mjs | 2 +- scripts/start.sh | 2 +- scripts/worktree-hygiene.test.mjs | 2 +- tooling/deploy/deploy.env.example | 4 +- tooling/migrate/rename-to-nexus.sh | 167 ++++++++++++++++++ 44 files changed, 401 insertions(+), 186 deletions(-) create mode 100644 .claude/scheduled_tasks.lock create mode 100644 samples/CDP/ToDecrypt/Archive.zip create mode 100755 tooling/migrate/rename-to-nexus.sh diff --git a/.claude/scheduled_tasks.lock b/.claude/scheduled_tasks.lock new file mode 100644 index 0000000..0d53136 --- /dev/null +++ b/.claude/scheduled_tasks.lock @@ -0,0 +1 @@ +{"sessionId":"aed37e34-4be8-4788-b03a-7145d9b4b2ce","pid":3544538,"procStart":"34480817","acquiredAt":1779373227101} \ No newline at end of file diff --git a/.env.example b/.env.example index ea68c15..46c4a86 100644 --- a/.env.example +++ b/.env.example @@ -32,7 +32,7 @@ POSTGRES_PASSWORD= # host (outside Docker). Must match POSTGRES_PASSWORD above. Inside the app # container this variable is overridden by docker-compose.yml (which routes # to the postgres service name on the internal network). -DATABASE_URL=postgresql://capakraken:capakraken_dev@localhost:5433/capakraken +DATABASE_URL=postgresql://nexus:nexus_dev@localhost:5433/nexus # ─── Redis ─────────────────────────────────────────────────────────────────── @@ -104,7 +104,7 @@ PGADMIN_PASSWORD= # that any resolved path remains inside this directory; this prevents an # admin (or compromised admin token) from pointing the parser at arbitrary # files on disk and reaching ExcelJS CVEs. Defaults to ./imports if unset. -# DISPO_IMPORT_DIR=/var/lib/capakraken/imports +# DISPO_IMPORT_DIR=/var/lib/nexus/imports # ─── Testing (never enable in production) ──────────────────────────────────── diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c6fd33..d9cf13a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -159,11 +159,11 @@ jobs: postgres: image: postgres:16 env: - POSTGRES_DB: capakraken_test - POSTGRES_USER: capakraken - POSTGRES_PASSWORD: capakraken_test + POSTGRES_DB: nexus_test + POSTGRES_USER: nexus + POSTGRES_PASSWORD: nexus_test options: >- - --health-cmd="pg_isready -U capakraken -d capakraken_test" + --health-cmd="pg_isready -U nexus -d nexus_test" --health-interval=10s --health-timeout=5s --health-retries=5 @@ -175,7 +175,7 @@ jobs: --health-timeout=5s --health-retries=5 env: - DATABASE_URL: postgresql://capakraken:capakraken_test@postgres:5432/capakraken_test + DATABASE_URL: postgresql://nexus:nexus_test@postgres:5432/nexus_test REDIS_URL: redis://redis:6379 # Force in-memory rate limiter to avoid cross-test state when Redis drops. # Redis fallback downgrades to max/10 limits which rate-limits unit tests. @@ -291,11 +291,11 @@ jobs: e2epg: image: postgres:16 env: - POSTGRES_DB: capakraken_test - POSTGRES_USER: capakraken - POSTGRES_PASSWORD: capakraken_test + POSTGRES_DB: nexus_test + POSTGRES_USER: nexus + POSTGRES_PASSWORD: nexus_test options: >- - --health-cmd="pg_isready -U capakraken -d capakraken_test" + --health-cmd="pg_isready -U nexus -d nexus_test" --health-interval=10s --health-timeout=5s --health-retries=5 @@ -307,14 +307,14 @@ jobs: --health-timeout=5s --health-retries=5 env: - DATABASE_URL: postgresql://capakraken:capakraken_test@e2epg:5432/capakraken_test + DATABASE_URL: postgresql://nexus:nexus_test@e2epg:5432/nexus_test # Playwright test-server.mjs requires an explicit test DB URL. - PLAYWRIGHT_DATABASE_URL: postgresql://capakraken:capakraken_test@e2epg:5432/capakraken_test + PLAYWRIGHT_DATABASE_URL: postgresql://nexus:nexus_test@e2epg:5432/nexus_test # prisma-with-env.mjs refuses to run unless DATABASE_URL's db name matches - # the expected target; default is "capakraken", CI uses capakraken_test. - CAPAKRAKEN_EXPECTED_DB_NAME: capakraken_test + # the expected target; default is "nexus", CI uses nexus_test. + NEXUS_EXPECTED_DB_NAME: nexus_test ALLOW_DESTRUCTIVE_DB_TOOLS: "true" - CONFIRM_DESTRUCTIVE_DB_NAME: capakraken_test + CONFIRM_DESTRUCTIVE_DB_NAME: nexus_test REDIS_URL: redis://e2eredis:6379 PORT: 3100 # test-server.mjs spawns `docker compose --profile test up postgres-test`; @@ -375,7 +375,7 @@ jobs: - name: Push DB schema & seed env: - PGPASSWORD: capakraken_test + PGPASSWORD: nexus_test run: | # Nuke any leftover schema state from a previous job that shared the # postgres service container (act_runner reuses service volumes). @@ -397,7 +397,7 @@ jobs: IPS=$(getent hosts e2epg | awk '{print $1}') PG_IP="" for ip in $IPS; do - if PGPASSWORD=capakraken_test psql -h "$ip" -U capakraken -d capakraken_test -v ON_ERROR_STOP=1 -Atc "SELECT 1" >/dev/null 2>&1; then + if PGPASSWORD=nexus_test psql -h "$ip" -U nexus -d nexus_test -v ON_ERROR_STOP=1 -Atc "SELECT 1" >/dev/null 2>&1; then PG_IP="$ip" echo "Locked onto postgres at $PG_IP" break @@ -406,19 +406,19 @@ jobs: fi done if [ -z "$PG_IP" ]; then - echo "ERROR: no resolved e2epg IP accepted capakraken_test credentials" + echo "ERROR: no resolved e2epg IP accepted nexus_test credentials" exit 1 fi - PINNED_URL="postgresql://capakraken:capakraken_test@$PG_IP:5432/capakraken_test" + PINNED_URL="postgresql://nexus:nexus_test@$PG_IP:5432/nexus_test" echo "DATABASE_URL=$PINNED_URL" >> "$GITHUB_ENV" echo "PLAYWRIGHT_DATABASE_URL=$PINNED_URL" >> "$GITHUB_ENV" echo "--- DROP SCHEMA ---" - psql -h "$PG_IP" -U capakraken -d capakraken_test -v ON_ERROR_STOP=1 \ - -c "DROP SCHEMA IF EXISTS public CASCADE; CREATE SCHEMA public; GRANT ALL ON SCHEMA public TO capakraken; GRANT ALL ON SCHEMA public TO public;" + psql -h "$PG_IP" -U nexus -d nexus_test -v ON_ERROR_STOP=1 \ + -c "DROP SCHEMA IF EXISTS public CASCADE; CREATE SCHEMA public; GRANT ALL ON SCHEMA public TO nexus; GRANT ALL ON SCHEMA public TO public;" echo "--- prisma db push ---" DATABASE_URL="$PINNED_URL" pnpm --filter @nexus/db exec prisma db push --schema ./prisma/schema.prisma --accept-data-loss --skip-generate echo "--- tables in public after push ---" - psql -h "$PG_IP" -U capakraken -d capakraken_test -v ON_ERROR_STOP=1 -At \ + psql -h "$PG_IP" -U nexus -d nexus_test -v ON_ERROR_STOP=1 -At \ -c "SELECT tablename FROM pg_tables WHERE schemaname='public' ORDER BY tablename" \ | tee /tmp/tables.txt if ! grep -qx 'audit_logs' /tmp/tables.txt; then @@ -468,8 +468,8 @@ jobs: NEXTAUTH_SECRET=ci-test-secret-minimum-32-chars-xx PGADMIN_PASSWORD=ci-pgadmin # Must match the password baked into docker-compose.ci.yml's - # DATABASE_URL override (capakraken_dev). - POSTGRES_PASSWORD=capakraken_dev + # DATABASE_URL override (nexus_dev). + POSTGRES_PASSWORD=nexus_dev EOF - name: Tear down any stale stack & volumes @@ -485,7 +485,7 @@ jobs: - name: Wait for postgres run: | for i in $(seq 1 20); do - docker compose -f docker-compose.yml -f docker-compose.ci.yml exec -T postgres pg_isready -U capakraken -d capakraken && break + docker compose -f docker-compose.yml -f docker-compose.ci.yml exec -T postgres pg_isready -U nexus -d nexus && break sleep 3 done diff --git a/apps/web/e2e/assistant-approvals.spec.ts b/apps/web/e2e/assistant-approvals.spec.ts index 5a8263c..08257a1 100644 --- a/apps/web/e2e/assistant-approvals.spec.ts +++ b/apps/web/e2e/assistant-approvals.spec.ts @@ -101,7 +101,7 @@ test.describe("Assistant approvals", () => { test.beforeEach(async ({ page }) => { await page.addInitScript((conversationId) => { - window.sessionStorage.setItem("capakraken-chat-conversation-id", conversationId); + window.sessionStorage.setItem("nexus-chat-conversation-id", conversationId); }, CURRENT_CONVERSATION_ID); runDb(` diff --git a/apps/web/e2e/dev-system/auth-session.spec.ts b/apps/web/e2e/dev-system/auth-session.spec.ts index cf37edb..8a1453d 100644 --- a/apps/web/e2e/dev-system/auth-session.spec.ts +++ b/apps/web/e2e/dev-system/auth-session.spec.ts @@ -42,9 +42,9 @@ test.describe("Auth — login / logout", () => { await page.click('button[type="submit"]'); await expect(page).toHaveURL(/\/auth\/signin/, { timeout: 5000 }); // Error message visible - await expect( - page.locator("text=/invalid|incorrect|wrong|credentials/i"), - ).toBeVisible({ timeout: 5000 }); + await expect(page.locator("text=/invalid|incorrect|wrong|credentials/i")).toBeVisible({ + timeout: 5000, + }); }); test("after logout, protected routes redirect to sign-in", async ({ page }) => { @@ -75,7 +75,7 @@ test.describe("Session registry — no tRPC 401s after login", () => { // At least one user row should be visible await expect(page.locator("table")).toBeVisible({ timeout: 10000 }); - await expect(page.locator("text=/planarchy\\.dev|capakraken\\.dev/").first()).toBeVisible({ + await expect(page.locator("text=/planarchy\\.dev|nexus\\.dev/").first()).toBeVisible({ timeout: 10000, }); await expect(page.locator("text=No users found")).toHaveCount(0); diff --git a/apps/web/e2e/dev-system/dashboard-widgets.spec.ts b/apps/web/e2e/dev-system/dashboard-widgets.spec.ts index 541a438..8308bb6 100644 --- a/apps/web/e2e/dev-system/dashboard-widgets.spec.ts +++ b/apps/web/e2e/dev-system/dashboard-widgets.spec.ts @@ -12,7 +12,7 @@ * - Creates a temporary test user via tRPC (admin session) for isolation. * - Cleans up the test user in afterAll. * - Uses an empty storageState to ensure no cross-user localStorage bleed. - * - localStorage key is user-scoped: "capakraken_dashboard_v1_{userId}". + * - localStorage key is user-scoped: "nexus_dashboard_v1_{userId}". */ import { expect, test, type Browser, type Page } from "@playwright/test"; @@ -20,9 +20,16 @@ import { STORAGE_STATE } from "../../playwright.dev.config.js"; // ─── tRPC helpers ───────────────────────────────────────────────────────────── -type TrpcResult = { result?: { data?: unknown }; error?: { data?: { code?: string }; message?: string } }; +type TrpcResult = { + result?: { data?: unknown }; + error?: { data?: { code?: string }; message?: string }; +}; -async function trpcMutation(page: Page, procedure: string, input: unknown = null): Promise { +async function trpcMutation( + page: Page, + procedure: string, + input: unknown = null, +): Promise { return page.evaluate( async ({ procedure, input }) => { const res = await fetch(`/api/trpc/${procedure}?batch=1`, { @@ -38,7 +45,11 @@ async function trpcMutation(page: Page, procedure: string, input: unknown = null ); } -async function trpcQuery(page: Page, procedure: string, input: unknown = null): Promise { +async function trpcQuery( + page: Page, + procedure: string, + input: unknown = null, +): Promise { return page.evaluate( async ({ procedure, input }) => { const encodedInput = encodeURIComponent(JSON.stringify({ "0": { json: input } })); @@ -128,7 +139,9 @@ test.describe("Dashboard — widget management", () => { // Default layout should show at least the stat-cards widget // (from createDefaultDashboardLayout in useDashboardLayout) - await expect(page.locator('[data-testid="widget-stat-cards"], .react-grid-item').first()).toBeVisible({ + await expect( + page.locator('[data-testid="widget-stat-cards"], .react-grid-item').first(), + ).toBeVisible({ timeout: 8000, }); }); @@ -138,16 +151,21 @@ test.describe("Dashboard — widget management", () => { await navigateToDashboard(page); // Open modal - await page.getByRole("button", { name: /add widget/i }).first().click(); + await page + .getByRole("button", { name: /add widget/i }) + .first() + .click(); // Verify modal is open - await expect(page.getByRole("heading", { name: /add widget/i })).toBeVisible({ timeout: 5000 }); + await expect(page.getByRole("heading", { name: /add widget/i })).toBeVisible({ + timeout: 5000, + }); // Verify widget entries are visible in the modal // The catalog has 11 widgets; check for at least 5 visible buttons inside the modal - const widgetButtons = page.locator( - '[role="dialog"] button, .fixed button[type="button"]', - ).filter({ hasText: /./ }); + const widgetButtons = page + .locator('[role="dialog"] button, .fixed button[type="button"]') + .filter({ hasText: /./ }); // Count items in the grid (the ×-close button is excluded by checking for icon content) const modalContent = page.locator(".fixed.inset-0 .grid"); @@ -166,10 +184,16 @@ test.describe("Dashboard — widget management", () => { const initialCount = await page.locator(".react-grid-item").count(); // Open modal and add "Resource Table" widget - await page.getByRole("button", { name: /add widget/i }).first().click(); + await page + .getByRole("button", { name: /add widget/i }) + .first() + .click(); await expect(page.locator(".fixed.inset-0")).toBeVisible({ timeout: 5000 }); - await page.locator(".fixed.inset-0 button").filter({ hasText: /resource table/i }).click(); + await page + .locator(".fixed.inset-0 button") + .filter({ hasText: /resource table/i }) + .click(); // Modal should close after adding await expect(page.locator(".fixed.inset-0")).not.toBeVisible({ timeout: 5000 }); @@ -184,9 +208,15 @@ test.describe("Dashboard — widget management", () => { await navigateToDashboard(page); // Add a recognizable widget - await page.getByRole("button", { name: /add widget/i }).first().click(); + await page + .getByRole("button", { name: /add widget/i }) + .first() + .click(); await expect(page.locator(".fixed.inset-0")).toBeVisible({ timeout: 5000 }); - await page.locator(".fixed.inset-0 button").filter({ hasText: /project overview/i }).click(); + await page + .locator(".fixed.inset-0 button") + .filter({ hasText: /project overview/i }) + .click(); await expect(page.locator(".fixed.inset-0")).not.toBeVisible({ timeout: 5000 }); const countAfterAdd = await page.locator(".react-grid-item").count(); @@ -214,19 +244,23 @@ test.describe("Dashboard — widget management", () => { // Read the admin's localStorage key to verify it is user-scoped const adminUserId = await adminPage.evaluate(async () => { - const res = await fetch("/api/trpc/user.me?batch=1&input=" + encodeURIComponent(JSON.stringify({ "0": { json: null } })), { - credentials: "include", - }); - const body = await res.json() as [{ result?: { data?: { json?: { id?: string } } } }]; + const res = await fetch( + "/api/trpc/user.me?batch=1&input=" + + encodeURIComponent(JSON.stringify({ "0": { json: null } })), + { + credentials: "include", + }, + ); + const body = (await res.json()) as [{ result?: { data?: { json?: { id?: string } } } }]; return body[0]?.result?.data?.json?.id ?? null; }); - // Verify admin has a user-scoped storage key (not shared "capakraken_dashboard_v1") + // Verify admin has a user-scoped storage key (not shared "nexus_dashboard_v1") if (adminUserId) { const storageKey = await adminPage.evaluate((userId) => { // Check both old (unscoped) and new (user-scoped) key formats - const oldKey = "capakraken_dashboard_v1"; - const newKey = `capakraken_dashboard_v1_${userId}`; + const oldKey = "nexus_dashboard_v1"; + const newKey = `nexus_dashboard_v1_${userId}`; const oldValue = localStorage.getItem(oldKey); const newValue = localStorage.getItem(newKey); return { oldKey: oldValue !== null, newKey: newValue !== null }; @@ -244,8 +278,13 @@ test.describe("Dashboard — widget management", () => { // Inject the admin's storage key to simulate same browser await newUserPage.evaluate( - ({ key, value }) => { localStorage.setItem(key, value ?? ""); }, - { key: `capakraken_dashboard_v1_${adminUserId}`, value: JSON.stringify({ version: 2, gridCols: 12, widgets: [] }) }, + ({ key, value }) => { + localStorage.setItem(key, value ?? ""); + }, + { + key: `nexus_dashboard_v1_${adminUserId}`, + value: JSON.stringify({ version: 2, gridCols: 12, widgets: [] }), + }, ); // Log in as test user @@ -262,7 +301,10 @@ test.describe("Dashboard — widget management", () => { const gridItems = await newUserPage.locator(".react-grid-item").count(); // Either show default layout (≥1 widget) OR the properly-scoped empty state with Add Widget CTA // The key check: the test user's Add Widget button should still work - await newUserPage.getByRole("button", { name: /add widget/i }).first().click(); + await newUserPage + .getByRole("button", { name: /add widget/i }) + .first() + .click(); // Modal must show widgets to choose from const modalContent = newUserPage.locator(".fixed.inset-0 .grid"); diff --git a/apps/web/e2e/dev-system/global-setup.ts b/apps/web/e2e/dev-system/global-setup.ts index dfe70e6..edaf5c7 100644 --- a/apps/web/e2e/dev-system/global-setup.ts +++ b/apps/web/e2e/dev-system/global-setup.ts @@ -25,9 +25,9 @@ const RESET_TEST_USER = { password: "Dev123456!", }; -const DB_CONTAINER = "capakraken-postgres-1"; -const DB_USER = "capakraken"; -const DB_NAME = "capakraken"; +const DB_CONTAINER = "nexus-postgres-1"; +const DB_USER = "nexus"; +const DB_NAME = "nexus"; function psqlExec(sql: string): string { return execSync( diff --git a/apps/web/e2e/dev-system/helpers.ts b/apps/web/e2e/dev-system/helpers.ts index 11e4f1b..e856702 100644 --- a/apps/web/e2e/dev-system/helpers.ts +++ b/apps/web/e2e/dev-system/helpers.ts @@ -26,7 +26,7 @@ export async function signOut(page: Page) { await page.goto("/dashboard"); // land on any authenticated page for cookie context await page.evaluate(async () => { const csrfRes = await fetch("/api/auth/csrf"); - const { csrfToken } = await csrfRes.json() as { csrfToken: string }; + const { csrfToken } = (await csrfRes.json()) as { csrfToken: string }; await fetch("/api/auth/signout", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, @@ -62,11 +62,9 @@ function decodeMimeBody(body: string, encoding: string | undefined): string { const enc = (encoding ?? "").toLowerCase().trim(); if (enc === "quoted-printable") { return body - .replace(/=\r\n/g, "") // soft line break (CRLF) - .replace(/=\n/g, "") // soft line break (LF) - .replace(/=([0-9A-Fa-f]{2})/g, (_, hex: string) => - String.fromCharCode(parseInt(hex, 16)), - ); + .replace(/=\r\n/g, "") // soft line break (CRLF) + .replace(/=\n/g, "") // soft line break (LF) + .replace(/=([0-9A-Fa-f]{2})/g, (_, hex: string) => String.fromCharCode(parseInt(hex, 16))); } if (enc === "base64") { return Buffer.from(body.replace(/\s/g, ""), "base64").toString("utf8"); @@ -90,7 +88,10 @@ export async function clearMailhog(): Promise { */ export async function getLatestEmailTo( address: string, - { timeoutMs = 10_000, pollIntervalMs = 500 }: { timeoutMs?: number; pollIntervalMs?: number } = {}, + { + timeoutMs = 10_000, + pollIntervalMs = 500, + }: { timeoutMs?: number; pollIntervalMs?: number } = {}, ): Promise<{ subject: string; body: string; html: string }> { const deadline = Date.now() + timeoutMs; @@ -144,7 +145,9 @@ export function extractUrlFromEmail( pathPrefix: string, ): string { const text = email.html || email.body; - const match = text.match(new RegExp(`https?://[^\\s"'<>]*${pathPrefix.replace("/", "\\/")}[^\\s"'<>]*`)); + const match = text.match( + new RegExp(`https?://[^\\s"'<>]*${pathPrefix.replace("/", "\\/")}[^\\s"'<>]*`), + ); if (!match?.[0]) { throw new Error(`No URL with prefix "${pathPrefix}" found in email`); } @@ -166,10 +169,10 @@ export async function resetPasswordViaApi( // argon2id hashes use base64 chars only — safe inside a SQL single-quoted string // Column name is camelCase (Prisma default) — must be double-quoted in SQL const sql = `UPDATE users SET "passwordHash" = '${passwordHash}' WHERE email = '${email}';`; - execSync( - `docker exec -i capakraken-postgres-1 psql -U capakraken -d capakraken`, - { input: sql, encoding: "utf8" }, - ); + execSync(`docker exec -i nexus-postgres-1 psql -U nexus -d nexus`, { + input: sql, + encoding: "utf8", + }); } // ── tRPC helpers ─────────────────────────────────────────────────────────────── diff --git a/apps/web/e2e/dev-system/invite-flow.spec.ts b/apps/web/e2e/dev-system/invite-flow.spec.ts index a8f683c..e3bc646 100644 --- a/apps/web/e2e/dev-system/invite-flow.spec.ts +++ b/apps/web/e2e/dev-system/invite-flow.spec.ts @@ -27,7 +27,7 @@ test.describe("invite flow", () => { }); test("admin invites a new user and invited user can sign in", async ({ page, browser }) => { - const testEmail = `invite-e2e-${Date.now()}@capakraken.test`; + const testEmail = `invite-e2e-${Date.now()}@nexus.test`; // Step 1: Navigate to admin users page await page.goto("/admin/users"); @@ -36,7 +36,7 @@ test.describe("invite flow", () => { // Step 2: Open invite modal await page.click('button:has-text("Invite User")'); // Wait for the modal heading — AnimatedModal does not use role="dialog" - await page.waitForSelector('text=Invite User', { state: "visible" }); + await page.waitForSelector("text=Invite User", { state: "visible" }); // Step 3: Fill in invite form await page.fill('input[type="email"]', testEmail); @@ -45,7 +45,9 @@ test.describe("invite flow", () => { await page.click('button:has-text("Send Invite")'); // Step 5: Wait for success message (exact text from InviteUserModal.tsx) - await expect(page.locator("text=Invitation sent successfully.")).toBeVisible({ timeout: 10_000 }); + await expect(page.locator("text=Invitation sent successfully.")).toBeVisible({ + timeout: 10_000, + }); // Step 6: Read invite email from Mailhog const email = await getLatestEmailTo(testEmail, { timeoutMs: 15_000 }); diff --git a/apps/web/e2e/dev-system/rbac-permissions.spec.ts b/apps/web/e2e/dev-system/rbac-permissions.spec.ts index 4146a77..11f5c87 100644 --- a/apps/web/e2e/dev-system/rbac-permissions.spec.ts +++ b/apps/web/e2e/dev-system/rbac-permissions.spec.ts @@ -28,7 +28,7 @@ test.describe("RBAC — admin routes (admin session)", () => { await expect(page.locator("table")).toBeVisible({ timeout: 10000 }); // Seed users have planarchy.dev or nexus.dev email domains - await expect(page.locator("text=/planarchy\\.dev|capakraken\\.dev/").first()).toBeVisible({ + await expect(page.locator("text=/planarchy\\.dev|nexus\\.dev/").first()).toBeVisible({ timeout: 10000, }); }); diff --git a/apps/web/e2e/test-server.mjs b/apps/web/e2e/test-server.mjs index b1fc9d9..04a233f 100644 --- a/apps/web/e2e/test-server.mjs +++ b/apps/web/e2e/test-server.mjs @@ -16,9 +16,9 @@ const webDistDirPath = resolve(webRoot, webDistDir); const managedEnvBanner = "# Managed by apps/web/e2e/test-server.mjs"; const e2ePort = process.env.PLAYWRIGHT_TEST_PORT ?? "3110"; const e2eBaseUrl = process.env.PLAYWRIGHT_TEST_BASE_URL ?? `http://localhost:${e2ePort}`; -const e2eAuthSecret = process.env.PLAYWRIGHT_AUTH_SECRET ?? `capakraken-e2e-${randomBytes(24).toString("hex")}`; +const e2eAuthSecret = process.env.PLAYWRIGHT_AUTH_SECRET ?? `nexus-e2e-${randomBytes(24).toString("hex")}`; const manageWebEnvFile = process.env.PLAYWRIGHT_MANAGE_WEB_ENV_FILE === "true"; -const composeProjectName = `capakraken-e2e-${process.pid}`; +const composeProjectName = `nexus-e2e-${process.pid}`; const managedEnvKeys = [ "DATABASE_URL", "REDIS_URL", @@ -29,7 +29,7 @@ const managedEnvKeys = [ "NODE_ENV", "PORT", ]; -const e2eComposePrefix = "capakraken-e2e-"; +const e2eComposePrefix = "nexus-e2e-"; function dockerComposeArgs(...args) { return ["compose", "-p", composeProjectName, ...args]; @@ -256,7 +256,7 @@ async function ensureE2eDatabaseContainer() { try { await runQuiet( "docker", - dockerComposeArgs("exec", "-T", "postgres-test", "pg_isready", "-U", "capakraken", "-d", "capakraken_test", "-q"), + dockerComposeArgs("exec", "-T", "postgres-test", "pg_isready", "-U", "nexus", "-d", "nexus_test", "-q"), workspaceRoot, ); return; @@ -360,7 +360,7 @@ process.env.PLAYWRIGHT_DATABASE_URL = playwrightDatabaseUrl; if (selectedTestDbPort !== undefined) { process.env.POSTGRES_TEST_PORT = String(selectedTestDbPort); } -process.env.CAPAKRAKEN_EXPECTED_DB_NAME = playwrightDatabaseName; +process.env.NEXUS_EXPECTED_DB_NAME = playwrightDatabaseName; process.env.ALLOW_DESTRUCTIVE_DB_TOOLS = "true"; process.env.CONFIRM_DESTRUCTIVE_DB_NAME = playwrightDatabaseName; process.env.NODE_ENV = process.env.NODE_ENV ?? "development"; diff --git a/apps/web/e2e/timeline.spec.ts b/apps/web/e2e/timeline.spec.ts index 7da2f5c..198fd41 100644 --- a/apps/web/e2e/timeline.spec.ts +++ b/apps/web/e2e/timeline.spec.ts @@ -856,10 +856,10 @@ async function switchToResourceView(page: Page, readySelector?: string) { async function ensureOpenDemandVisibilityEnabled(page: Page) { await page.evaluate(() => { - const raw = window.localStorage.getItem("capakraken_prefs"); + const raw = window.localStorage.getItem("nexus_prefs"); const parsed = raw ? (JSON.parse(raw) as Record) : {}; window.localStorage.setItem( - "capakraken_prefs", + "nexus_prefs", JSON.stringify({ ...parsed, showDemandProjects: true, @@ -874,9 +874,9 @@ test.describe("Timeline", () => { test.beforeEach(async ({ page }) => { await page.addInitScript(() => { - localStorage.setItem("capakraken_theme", JSON.stringify({ mode: "dark" })); + localStorage.setItem("nexus_theme", JSON.stringify({ mode: "dark" })); localStorage.setItem( - "capakraken_prefs", + "nexus_prefs", JSON.stringify({ hideCompletedProjects: true, timelineDisplayMode: "strip", diff --git a/docker-compose.ci.yml b/docker-compose.ci.yml index b5e6165..5345d43 100644 --- a/docker-compose.ci.yml +++ b/docker-compose.ci.yml @@ -34,8 +34,8 @@ services: # REDIS_URL to the unique compose container names so resolution is # unambiguous regardless of attached networks. environment: - DATABASE_URL: postgresql://capakraken:capakraken_dev@capakraken-postgres-1:5432/capakraken - REDIS_URL: redis://capakraken-redis-1:6379 + DATABASE_URL: postgresql://nexus:nexus_dev@nexus-postgres-1:5432/nexus + REDIS_URL: redis://nexus-redis-1:6379 networks: gitea_gitea: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 4743f43..5e94967 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,4 +1,4 @@ -name: capakraken-prod +name: nexus-prod services: postgres: @@ -7,8 +7,8 @@ services: ports: - "127.0.0.1:${POSTGRES_PORT:-5432}:5432" environment: - POSTGRES_DB: capakraken - POSTGRES_USER: capakraken + POSTGRES_DB: nexus + POSTGRES_USER: nexus POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD} command: > postgres @@ -18,9 +18,9 @@ services: -c log_line_prefix='%t [%p] %u@%d ' -c log_min_duration_statement=1000 volumes: - - capakraken_prod_pgdata:/var/lib/postgresql/data + - nexus_prod_pgdata:/var/lib/postgresql/data healthcheck: - test: ["CMD-SHELL", "pg_isready -U capakraken -d capakraken"] + test: ["CMD-SHELL", "pg_isready -U nexus -d nexus"] interval: 10s timeout: 5s retries: 5 @@ -34,7 +34,7 @@ services: - "127.0.0.1:${REDIS_PORT:-6379}:6379" command: redis-server --maxmemory 256mb --maxmemory-policy allkeys-lru --requirepass ${REDIS_PASSWORD} volumes: - - capakraken_prod_redis:/data + - nexus_prod_redis:/data healthcheck: test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD}", "--no-auth-warning", "ping"] interval: 10s @@ -49,7 +49,7 @@ services: env_file: - .env.production environment: - DATABASE_URL: postgresql://capakraken:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/capakraken + DATABASE_URL: postgresql://nexus:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/nexus REDIS_URL: redis://:${REDIS_PASSWORD}@redis:6379 RATE_LIMIT_BACKEND: ${RATE_LIMIT_BACKEND:-redis} depends_on: @@ -67,7 +67,7 @@ services: env_file: - .env.production environment: - DATABASE_URL: postgresql://capakraken:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/capakraken + DATABASE_URL: postgresql://nexus:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/nexus REDIS_URL: redis://:${REDIS_PASSWORD}@redis:6379 RATE_LIMIT_BACKEND: ${RATE_LIMIT_BACKEND:-redis} NEXT_PUBLIC_SENTRY_DSN: ${NEXT_PUBLIC_SENTRY_DSN:-} @@ -84,7 +84,7 @@ services: start_period: 30s volumes: - capakraken_prod_pgdata: - name: capakraken_prod_pgdata - capakraken_prod_redis: - name: capakraken_prod_redis + nexus_prod_pgdata: + name: nexus_prod_pgdata + nexus_prod_redis: + name: nexus_prod_redis diff --git a/docker-compose.yml b/docker-compose.yml index effce02..8f54879 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -name: capakraken +name: nexus services: postgres: @@ -6,8 +6,8 @@ services: ports: - "5433:5432" environment: - POSTGRES_DB: capakraken - POSTGRES_USER: capakraken + POSTGRES_DB: nexus + POSTGRES_USER: nexus POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env (any non-empty value for local dev)} command: > postgres @@ -17,9 +17,9 @@ services: -c log_line_prefix='%t [%p] %u@%d ' -c log_min_duration_statement=1000 volumes: - - capakraken_pgdata:/var/lib/postgresql/data + - nexus_pgdata:/var/lib/postgresql/data healthcheck: - test: ["CMD-SHELL", "pg_isready -U capakraken -d capakraken"] + test: ["CMD-SHELL", "pg_isready -U nexus -d nexus"] interval: 5s timeout: 3s retries: 5 @@ -61,7 +61,7 @@ services: # Always use the Docker-internal service name. The host-level DATABASE_URL # (localhost:5433) must not bleed into the container where "localhost" is # the container itself, not the host. - DATABASE_URL: postgresql://capakraken:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/capakraken + DATABASE_URL: postgresql://nexus:${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD}@postgres:5432/nexus REDIS_URL: redis://redis:6379 NEXTAUTH_URL: ${NEXTAUTH_URL:?NEXTAUTH_URL must be set (e.g. https://your-domain.com)} NEXTAUTH_SECRET: ${NEXTAUTH_SECRET:?set NEXTAUTH_SECRET} @@ -90,9 +90,9 @@ services: volumes: - .:/app # Named volumes mask the bind-mount for generated/installed artefacts. - # Named (not anonymous) so they can be selectively removed: docker volume rm capakraken_node_modules - - capakraken_node_modules:/app/node_modules - - capakraken_next:/app/apps/web/.next + # Named (not anonymous) so they can be selectively removed: docker volume rm nexus_node_modules + - nexus_node_modules:/app/node_modules + - nexus_next:/app/apps/web/.next profiles: - full @@ -101,18 +101,18 @@ services: ports: - "${POSTGRES_TEST_PORT:-5434}:5432" environment: - POSTGRES_DB: capakraken_test - POSTGRES_USER: capakraken - POSTGRES_PASSWORD: capakraken_test + POSTGRES_DB: nexus_test + POSTGRES_USER: nexus + POSTGRES_PASSWORD: nexus_test tmpfs: - /var/lib/postgresql/data profiles: - test volumes: - capakraken_pgdata: - name: capakraken_pgdata - capakraken_node_modules: - name: capakraken_node_modules - capakraken_next: - name: capakraken_next + nexus_pgdata: + name: nexus_pgdata + nexus_node_modules: + name: nexus_node_modules + nexus_next: + name: nexus_next diff --git a/package.json b/package.json index 4c465ed..0f37343 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "check:imports": "node ./scripts/check-workspace-imports.mjs", "worktree:hygiene": "node ./scripts/worktree-hygiene.mjs", "clean:next": "node ./scripts/clean-next-artifacts.mjs", - "db:doctor": "node ./scripts/db-doctor.mjs capakraken", + "db:doctor": "node ./scripts/db-doctor.mjs nexus", "db:prisma": "node ./scripts/prisma-with-env.mjs", "db:push": "node ./scripts/prisma-with-env.mjs db push", "db:migrate": "node ./scripts/prisma-with-env.mjs migrate dev", diff --git a/packages/api/src/__tests__/rbac-cache-redis-pubsub.test.ts b/packages/api/src/__tests__/rbac-cache-redis-pubsub.test.ts index b6f4094..92f177c 100644 --- a/packages/api/src/__tests__/rbac-cache-redis-pubsub.test.ts +++ b/packages/api/src/__tests__/rbac-cache-redis-pubsub.test.ts @@ -105,10 +105,10 @@ describe("RBAC cache Redis pub/sub (#57)", () => { // Simulate a peer instance publishing an invalidation: grab any // subscriber on the channel and fire the event as if Redis delivered it. - const subs = channelSubscribers.get("capakraken:rbac-invalidate"); + const subs = channelSubscribers.get("nexus:rbac-invalidate"); expect(subs).toBeDefined(); expect(subs!.size).toBeGreaterThanOrEqual(1); - for (const sub of subs!) sub.emit("message", "capakraken:rbac-invalidate", "1"); + for (const sub of subs!) sub.emit("message", "nexus:rbac-invalidate", "1"); // Next load must hit the DB again. await loadRoleDefaults(); @@ -126,6 +126,6 @@ describe("RBAC cache Redis pub/sub (#57)", () => { const newPublishes = publishCalls.slice(countBefore); expect(newPublishes.length).toBe(1); - expect(newPublishes[0]!.channel).toBe("capakraken:rbac-invalidate"); + expect(newPublishes[0]!.channel).toBe("nexus:rbac-invalidate"); }); }); diff --git a/packages/api/src/__tests__/ssrf-guard.test.ts b/packages/api/src/__tests__/ssrf-guard.test.ts index e24fcfa..b9db7b4 100644 --- a/packages/api/src/__tests__/ssrf-guard.test.ts +++ b/packages/api/src/__tests__/ssrf-guard.test.ts @@ -24,7 +24,7 @@ describe("assertWebhookUrlAllowed — SSRF guard", () => { it("allows an HTTPS URL with a path and query string", async () => { await expect( - assertWebhookUrlAllowed("https://hooks.external.io/events?source=capakraken"), + assertWebhookUrlAllowed("https://hooks.external.io/events?source=nexus"), ).resolves.toBeUndefined(); }); diff --git a/packages/api/src/lib/app-base-url.ts b/packages/api/src/lib/app-base-url.ts index b0f766e..3668d0b 100644 --- a/packages/api/src/lib/app-base-url.ts +++ b/packages/api/src/lib/app-base-url.ts @@ -22,15 +22,15 @@ export function getAppBaseUrl(): string { if (process.env["NODE_ENV"] === "production") { throw new Error( "NEXTAUTH_URL must be set in production — email links will contain localhost otherwise. " + - "Set it to the public URL of this app (e.g. https://capakraken.example.com).", + "Set it to the public URL of this app (e.g. https://nexus.example.com).", ); } if (!warned) { warned = true; console.warn( - "[capakraken] NEXTAUTH_URL is not set — falling back to http://localhost:3100 for email links. " + - "Set NEXTAUTH_URL in your .env to suppress this warning.", + "[nexus] NEXTAUTH_URL is not set — falling back to http://localhost:3100 for email links. " + + "Set NEXTAUTH_URL in your .env to suppress this warning.", ); } diff --git a/packages/api/src/lib/logger.ts b/packages/api/src/lib/logger.ts index 2bd360f..8793320 100644 --- a/packages/api/src/lib/logger.ts +++ b/packages/api/src/lib/logger.ts @@ -44,13 +44,13 @@ const redactConfig = { paths: REDACT_PATHS, censor: "[REDACTED]" }; export const logger = isProduction ? pino({ level: LOG_LEVEL, - base: { service: "capakraken-api" }, + base: { service: "nexus-api" }, redact: redactConfig, }) : pino( { level: LOG_LEVEL, - base: { service: "capakraken-api" }, + base: { service: "nexus-api" }, redact: redactConfig, formatters: { level(label: string) { diff --git a/packages/api/src/middleware/rate-limit.ts b/packages/api/src/middleware/rate-limit.ts index 5a6c18b..579a0e1 100644 --- a/packages/api/src/middleware/rate-limit.ts +++ b/packages/api/src/middleware/rate-limit.ts @@ -31,7 +31,7 @@ type RateLimiterBackend = { reset: () => Promise; }; -const DEFAULT_REDIS_KEY_PREFIX = "capakraken:ratelimit"; +const DEFAULT_REDIS_KEY_PREFIX = "nexus:ratelimit"; const DEFAULT_REDIS_BACKEND = process.env["RATE_LIMIT_BACKEND"] as RateLimitBackendMode | undefined; const DEFAULT_REDIS_URL = process.env["REDIS_URL"]?.trim(); const warnedRedisFailures = new Set(); diff --git a/packages/api/src/sse/event-bus.ts b/packages/api/src/sse/event-bus.ts index c9e4ecd..8a34a86 100644 --- a/packages/api/src/sse/event-bus.ts +++ b/packages/api/src/sse/event-bus.ts @@ -201,7 +201,7 @@ const REDIS_URL = : (() => { throw new Error("REDIS_URL required in production"); })()); -const CHANNEL = "capakraken:sse"; +const CHANNEL = "nexus:sse"; let publisher: Redis | null = null; let subscriber: Redis | null = null; diff --git a/packages/api/src/trpc.ts b/packages/api/src/trpc.ts index 8dd2b5f..0f7f8a3 100644 --- a/packages/api/src/trpc.ts +++ b/packages/api/src/trpc.ts @@ -42,7 +42,7 @@ const ROLE_DEFAULTS_TTL = 10_000; // We publish a single invalidate message per change; every node subscribes and // clears its local cache on receipt. Failure to publish/subscribe is logged // but never thrown — the TTL above is the fall-back. -const RBAC_INVALIDATE_CHANNEL = "capakraken:rbac-invalidate"; +const RBAC_INVALIDATE_CHANNEL = "nexus:rbac-invalidate"; let _rbacPublisher: Redis | null = null; let _rbacSubscriber: Redis | null = null; diff --git a/packages/db/package.json b/packages/db/package.json index 88b788c..63913fa 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -8,7 +8,7 @@ "./client": "./src/client.ts" }, "scripts": { - "db:doctor": "node ../../scripts/db-doctor.mjs capakraken", + "db:doctor": "node ../../scripts/db-doctor.mjs nexus", "db:push": "node ../../scripts/prisma-with-env.mjs db push --schema ./prisma/schema.prisma", "db:migrate": "node ../../scripts/prisma-with-env.mjs migrate dev --schema ./prisma/schema.prisma", "db:migrate:deploy": "node ../../scripts/prisma-with-env.mjs migrate deploy --schema ./prisma/schema.prisma", diff --git a/packages/db/src/destructive-db-guard.test.ts b/packages/db/src/destructive-db-guard.test.ts index fbd6e9c..a79c87f 100644 --- a/packages/db/src/destructive-db-guard.test.ts +++ b/packages/db/src/destructive-db-guard.test.ts @@ -22,34 +22,34 @@ test.afterEach(() => { process.env = { ...ORIGINAL_ENV }; }); -test("assertDestructiveDbAllowed allows an explicitly confirmed disposable capakraken test database", () => { +test("assertDestructiveDbAllowed allows an explicitly confirmed disposable nexus test database", () => { setEnv({ - DATABASE_URL: "postgresql://tester:secret@localhost:5432/capakraken_test", + DATABASE_URL: "postgresql://tester:secret@localhost:5432/nexus_test", ALLOW_DESTRUCTIVE_DB_TOOLS: "true", - CONFIRM_DESTRUCTIVE_DB_NAME: "capakraken_test", + CONFIRM_DESTRUCTIVE_DB_NAME: "nexus_test", }); const target = assertDestructiveDbAllowed({ commandName: "db:test", - allowedDatabaseNames: ["capakraken_test"], + allowedDatabaseNames: ["nexus_test"], }); - assert.equal(target.databaseName, "capakraken_test"); + assert.equal(target.databaseName, "nexus_test"); assert.equal(target.hostname, "localhost"); }); test("assertDestructiveDbAllowed rejects protected live database names even if allowlisted", () => { setEnv({ - DATABASE_URL: "postgresql://tester:secret@localhost:5432/capakraken", + DATABASE_URL: "postgresql://tester:secret@localhost:5432/nexus", ALLOW_DESTRUCTIVE_DB_TOOLS: "true", - CONFIRM_DESTRUCTIVE_DB_NAME: "capakraken", + CONFIRM_DESTRUCTIVE_DB_NAME: "nexus", }); assert.throws( () => assertDestructiveDbAllowed({ commandName: "db:test", - allowedDatabaseNames: ["capakraken"], + allowedDatabaseNames: ["nexus"], }), /explicitly protected/u, ); @@ -57,7 +57,7 @@ test("assertDestructiveDbAllowed rejects protected live database names even if a test("assertDestructiveDbAllowed rejects missing confirmation", () => { setEnv({ - DATABASE_URL: "postgresql://tester:secret@localhost:5432/capakraken_e2e", + DATABASE_URL: "postgresql://tester:secret@localhost:5432/nexus_e2e", ALLOW_DESTRUCTIVE_DB_TOOLS: "true", CONFIRM_DESTRUCTIVE_DB_NAME: "wrong_db", }); @@ -66,24 +66,24 @@ test("assertDestructiveDbAllowed rejects missing confirmation", () => { () => assertDestructiveDbAllowed({ commandName: "db:test", - allowedDatabaseNames: ["capakraken_e2e"], + allowedDatabaseNames: ["nexus_e2e"], }), - /CONFIRM_DESTRUCTIVE_DB_NAME=capakraken_e2e/u, + /CONFIRM_DESTRUCTIVE_DB_NAME=nexus_e2e/u, ); }); test("assertDestructiveDbAllowed rejects missing destructive allow flag", () => { setEnv({ - DATABASE_URL: "postgresql://tester:secret@localhost:5432/capakraken_ci", + DATABASE_URL: "postgresql://tester:secret@localhost:5432/nexus_ci", ALLOW_DESTRUCTIVE_DB_TOOLS: undefined, - CONFIRM_DESTRUCTIVE_DB_NAME: "capakraken_ci", + CONFIRM_DESTRUCTIVE_DB_NAME: "nexus_ci", }); assert.throws( () => assertDestructiveDbAllowed({ commandName: "db:test", - allowedDatabaseNames: ["capakraken_ci"], + allowedDatabaseNames: ["nexus_ci"], }), /ALLOW_DESTRUCTIVE_DB_TOOLS=true/u, ); @@ -99,19 +99,19 @@ test("assertSafeSeedTarget rejects unexpected legacy disposable databases", () = assert.throws(() => assertSafeSeedTarget("db:seed"), /not in the destructive-tool allowlist/u); }); -test("assertNexusDbTarget accepts non-destructive capakraken targets", () => { +test("assertNexusDbTarget accepts non-destructive nexus targets", () => { setEnv({ - DATABASE_URL: "postgresql://tester:secret@localhost:5432/capakraken_dev", + DATABASE_URL: "postgresql://tester:secret@localhost:5432/nexus_dev", }); const target = assertNexusDbTarget("db:seed:holidays"); - assert.equal(target.databaseName, "capakraken_dev"); + assert.equal(target.databaseName, "nexus_dev"); }); -test("assertNexusDbTarget rejects legacy non-capakraken targets", () => { +test("assertNexusDbTarget rejects legacy non-nexus targets", () => { setEnv({ - DATABASE_URL: "postgresql://tester:secret@localhost:5432/legacy_non_capakraken", + DATABASE_URL: "postgresql://tester:secret@localhost:5432/legacy_non_nexus", }); assert.throws(() => assertNexusDbTarget("db:seed:holidays"), /not a valid Nexus target/u); diff --git a/packages/db/src/destructive-db-guard.ts b/packages/db/src/destructive-db-guard.ts index bc0f923..1f59824 100644 --- a/packages/db/src/destructive-db-guard.ts +++ b/packages/db/src/destructive-db-guard.ts @@ -6,7 +6,7 @@ interface DestructiveGuardOptions { requireConfirmation?: boolean; } -const PROTECTED_DATABASE_NAMES = new Set(["capakraken"]); +const PROTECTED_DATABASE_NAMES = new Set(["nexus"]); export function parseDatabaseUrl(rawUrl: string) { const parsed = new URL(rawUrl); diff --git a/packages/db/src/reset-dispo-import.ts b/packages/db/src/reset-dispo-import.ts index 08a92ee..a5cda10 100644 --- a/packages/db/src/reset-dispo-import.ts +++ b/packages/db/src/reset-dispo-import.ts @@ -157,7 +157,7 @@ async function main() { const options = parseArgs(process.argv.slice(2)); const target = assertDestructiveDbAllowed({ commandName: "db:reset:dispo", - allowedDatabaseNames: ["capakraken_test", "capakraken_e2e", "capakraken_ci"], + allowedDatabaseNames: ["nexus_test", "nexus_e2e", "nexus_ci"], }); const databaseUrl = process.env.DATABASE_URL; diff --git a/packages/db/src/safe-destructive-env.ts b/packages/db/src/safe-destructive-env.ts index a52882e..f145e0c 100644 --- a/packages/db/src/safe-destructive-env.ts +++ b/packages/db/src/safe-destructive-env.ts @@ -4,7 +4,7 @@ import { parseDatabaseUrl, } from "./destructive-db-guard.js"; -const TEST_DATABASE_NAMES = ["capakraken_test", "capakraken_e2e", "capakraken_ci"]; +const TEST_DATABASE_NAMES = ["nexus_test", "nexus_e2e", "nexus_ci"]; export function assertSafeSeedTarget(commandName: string) { return assertDestructiveDbAllowed({ @@ -24,7 +24,7 @@ export function assertNexusDbTarget(commandName: string) { const target = parseDatabaseUrl(rawUrl); - if (!target.databaseName.startsWith("capakraken")) { + if (!target.databaseName.startsWith("nexus")) { throw new Error( `${commandName} aborted: database '${target.databaseName}' is not a valid Nexus target. Target=${formatTarget(target)}`, ); diff --git a/packages/db/src/seed.ts b/packages/db/src/seed.ts index ac9a7d8..dfde5c3 100644 --- a/packages/db/src/seed.ts +++ b/packages/db/src/seed.ts @@ -2372,7 +2372,7 @@ async function main() { .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) .join(" "); - const email = `${eid}@capakraken.example`; + const email = `${eid}@nexus.example`; const lcrCents = Math.round(lcr * 100); const ucrCents = Math.round(ucr * 100); const availability = computeAvailability(fraction, availDays); diff --git a/packages/db/src/update-excel.mjs b/packages/db/src/update-excel.mjs index 733e0ba..136cb67 100644 --- a/packages/db/src/update-excel.mjs +++ b/packages/db/src/update-excel.mjs @@ -23,7 +23,7 @@ function toDisplayName(eid) { } function toEmail(eid) { - return `${eid}@capakraken.example`; + return `${eid}@nexus.example`; } function computeSkillLabel(chapter, typeOfWork) { @@ -150,7 +150,7 @@ async function main() { { col: 15, // O header: "Email\n(generated)", - doc: "Generated email: firstname.lastname@capakraken.example. Required unique field in Nexus. Replace with real email in production.", + doc: "Generated email: firstname.lastname@nexus.example. Required unique field in Nexus. Replace with real email in production.", }, { col: 16, // P diff --git a/restart.sh b/restart.sh index 531efe7..bdfa411 100755 --- a/restart.sh +++ b/restart.sh @@ -40,7 +40,7 @@ docker compose --profile "$PROFILE" stop app 2>/dev/null || true if $CLEAN; then echo "==> Removing stale node_modules and .next volumes..." - docker volume rm capakraken_node_modules capakraken_next 2>/dev/null || true + docker volume rm nexus_node_modules nexus_next 2>/dev/null || true fi echo "==> Rebuilding and starting ($( [[ -z "$SERVICES" ]] && echo "all services" || echo "$SERVICES" ))..." diff --git a/samples/CDP/ToDecrypt/Archive.zip b/samples/CDP/ToDecrypt/Archive.zip new file mode 100644 index 0000000000000000000000000000000000000000..022e1eca23866f464f5695897aa88208339160b9 GIT binary patch literal 225441 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⩔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 literal 0 HcmV?d00001 diff --git a/samples/generate_skillmatrix.mjs b/samples/generate_skillmatrix.mjs index bc132ea..cef721c 100644 --- a/samples/generate_skillmatrix.mjs +++ b/samples/generate_skillmatrix.mjs @@ -5,9 +5,9 @@ import { createRequire } from "module"; import { writeFileSync, mkdirSync } from "fs"; const require = createRequire(import.meta.url); -const XLSX = require("/home/hartmut/Documents/Copilot/capakraken/node_modules/.pnpm/xlsx@0.18.5/node_modules/xlsx/xlsx.js"); +const XLSX = require("/home/hartmut/Documents/Copilot/nexus/node_modules/.pnpm/xlsx@0.18.5/node_modules/xlsx/xlsx.js"); -const OUT_DIR = "/home/hartmut/Documents/Copilot/capakraken/samples/skillmatrix_dummydata"; +const OUT_DIR = "/home/hartmut/Documents/Copilot/nexus/samples/skillmatrix_dummydata"; mkdirSync(OUT_DIR, { recursive: true }); // ─── Skill Definitions ───────────────────────────────────────────────────── diff --git a/scripts/check-architecture-guardrails.mjs b/scripts/check-architecture-guardrails.mjs index b6e6a33..b43aca9 100644 --- a/scripts/check-architecture-guardrails.mjs +++ b/scripts/check-architecture-guardrails.mjs @@ -719,7 +719,7 @@ export const rules = [ ], forbidden: [ { - pattern: /pnpm --filter @capakraken\/db exec prisma generate/, + pattern: /pnpm --filter @nexus\/db exec prisma generate/, message: "CI must not call prisma generate directly outside the workspace wrapper", }, ], diff --git a/scripts/db-target-guard.mjs b/scripts/db-target-guard.mjs index 8cbda75..55f06c2 100644 --- a/scripts/db-target-guard.mjs +++ b/scripts/db-target-guard.mjs @@ -4,7 +4,7 @@ export function formatDatabaseTarget(parsedUrl, databaseName) { return `${parsedUrl.protocol}//${decodeURIComponent(parsedUrl.username)}@${parsedUrl.hostname}${parsedUrl.port ? `:${parsedUrl.port}` : ""}/${databaseName}`; } -export function inspectDatabaseUrl(rawUrl, expectedDatabase = "capakraken") { +export function inspectDatabaseUrl(rawUrl, expectedDatabase = "nexus") { if (!rawUrl) { throw new Error("DATABASE_URL is not configured."); } @@ -82,5 +82,5 @@ export function shouldGuardPrismaCommand(args) { } export function getExpectedDatabaseName() { - return process.env.CAPAKRAKEN_EXPECTED_DB_NAME?.trim() || "capakraken"; + return process.env.NEXUS_EXPECTED_DB_NAME?.trim() || "nexus"; } diff --git a/scripts/db-target-guard.test.mjs b/scripts/db-target-guard.test.mjs index 17413b7..1ef5a75 100644 --- a/scripts/db-target-guard.test.mjs +++ b/scripts/db-target-guard.test.mjs @@ -6,21 +6,21 @@ import { } from "./db-target-guard.mjs"; describe("db target guard", () => { - it("accepts the expected capakraken database target", () => { + it("accepts the expected nexus database target", () => { const result = inspectDatabaseUrl( - "postgresql://capakraken:secret@localhost:5432/capakraken", - "capakraken", + "postgresql://nexus:secret@localhost:5432/nexus", + "nexus", ); - assert.equal(result.databaseName, "capakraken"); - assert.equal(result.expectedDatabase, "capakraken"); - assert.equal(result.target, "postgresql://capakraken@localhost:5432/capakraken"); + assert.equal(result.databaseName, "nexus"); + assert.equal(result.expectedDatabase, "nexus"); + assert.equal(result.target, "postgresql://nexus@localhost:5432/nexus"); }); it("rejects a mismatched database target", () => { assert.throws( - () => inspectDatabaseUrl("postgresql://capakraken:secret@localhost:5432/planarchy", "capakraken"), - /Unexpected database target 'planarchy'\. Expected 'capakraken'\./, + () => inspectDatabaseUrl("postgresql://nexus:secret@localhost:5432/planarchy", "nexus"), + /Unexpected database target 'planarchy'\. Expected 'nexus'\./, ); }); diff --git a/scripts/export-dev-seed.mjs b/scripts/export-dev-seed.mjs index 8e0442e..9c32b2f 100644 --- a/scripts/export-dev-seed.mjs +++ b/scripts/export-dev-seed.mjs @@ -10,8 +10,8 @@ * node scripts/export-dev-seed.mjs * * Requirements: - * - The capakraken-postgres-1 Docker container must be running - * - DATABASE_URL must point to a local capakraken database + * - The nexus-postgres-1 Docker container must be running + * - DATABASE_URL must point to a local nexus database */ import { execSync, spawnSync } from "node:child_process"; @@ -48,7 +48,7 @@ if (!["localhost", "127.0.0.1", "::1"].includes(host)) { // ── Docker container check ──────────────────────────────────────────────────── -const CONTAINER = "capakraken-postgres-1"; +const CONTAINER = "nexus-postgres-1"; const containerCheck = spawnSync("docker", ["inspect", "--format={{.State.Running}}", CONTAINER], { encoding: "utf8", }); @@ -83,8 +83,8 @@ const excludeFlags = EXCLUDE_TABLES.flatMap((t) => ["--exclude-table-data", `pub // ── Run pg_dump inside the Docker container ─────────────────────────────────── -const DB_USER = decodeURIComponent(parsedUrl.username) || "capakraken"; -const DB_NAME = parsedUrl.pathname.replace(/^\/+/, "") || "capakraken"; +const DB_USER = decodeURIComponent(parsedUrl.username) || "nexus"; +const DB_NAME = parsedUrl.pathname.replace(/^\/+/, "") || "nexus"; const DB_PORT = parsedUrl.port || "5432"; console.log(`🔍 Exporting ${DB_USER}@${host}:${DB_PORT}/${DB_NAME} …`); diff --git a/scripts/harden-postgres.sh b/scripts/harden-postgres.sh index bb7bf20..eabb7dc 100755 --- a/scripts/harden-postgres.sh +++ b/scripts/harden-postgres.sh @@ -2,8 +2,8 @@ # Remove SUPERUSER from the application database user # Run after initial setup: bash scripts/harden-postgres.sh -DB_USER="${DB_USER:-capakraken}" -DB_NAME="${DB_NAME:-capakraken}" +DB_USER="${DB_USER:-nexus}" +DB_NAME="${DB_NAME:-nexus}" echo "Hardening PostgreSQL for $DB_USER..." diff --git a/scripts/import-dev-seed.mjs b/scripts/import-dev-seed.mjs index 3f46c2b..04d8a27 100644 --- a/scripts/import-dev-seed.mjs +++ b/scripts/import-dev-seed.mjs @@ -10,8 +10,8 @@ * node scripts/import-dev-seed.mjs * * Requirements: - * - The capakraken-postgres-1 Docker container must be running - * - DATABASE_URL must point to a local capakraken database + * - The nexus-postgres-1 Docker container must be running + * - DATABASE_URL must point to a local nexus database * - dev-seed.sql must exist (run export-dev-seed.mjs first) */ @@ -46,13 +46,13 @@ if (!["localhost", "127.0.0.1", "::1"].includes(host)) { process.exit(1); } -const DB_USER = decodeURIComponent(parsedUrl.username) || "capakraken"; -const DB_NAME = parsedUrl.pathname.replace(/^\/+/, "") || "capakraken"; +const DB_USER = decodeURIComponent(parsedUrl.username) || "nexus"; +const DB_NAME = parsedUrl.pathname.replace(/^\/+/, "") || "nexus"; const DB_PORT = parsedUrl.port || "5432"; // ── Docker container check ──────────────────────────────────────────────────── -const CONTAINER = "capakraken-postgres-1"; +const CONTAINER = "nexus-postgres-1"; const containerCheck = spawnSync("docker", ["inspect", "--format={{.State.Running}}", CONTAINER], { encoding: "utf8", }); diff --git a/scripts/prisma-with-env.mjs b/scripts/prisma-with-env.mjs index 7e41bf9..3341c48 100644 --- a/scripts/prisma-with-env.mjs +++ b/scripts/prisma-with-env.mjs @@ -27,7 +27,7 @@ if (shouldGuardPrismaCommand(prismaArgs)) { } catch (error) { console.error(error instanceof Error ? error.message : String(error)); console.error("Refusing to run Prisma against an unexpected database target."); - console.error("Use the repo env files for Nexus, or set CAPAKRAKEN_EXPECTED_DB_NAME explicitly if you intentionally target another database."); + console.error("Use the repo env files for Nexus, or set NEXUS_EXPECTED_DB_NAME explicitly if you intentionally target another database."); process.exit(1); } } diff --git a/scripts/start.sh b/scripts/start.sh index 974f646..03d66af 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -15,7 +15,7 @@ sleep 2 # 2. Wait for PostgreSQL to be healthy echo " Waiting for PostgreSQL..." for i in {1..30}; do - if docker compose exec -T postgres pg_isready -U capakraken -d capakraken -q 2>/dev/null; then + if docker compose exec -T postgres pg_isready -U nexus -d nexus -q 2>/dev/null; then break fi sleep 1 diff --git a/scripts/worktree-hygiene.test.mjs b/scripts/worktree-hygiene.test.mjs index 4419091..7abc1d4 100644 --- a/scripts/worktree-hygiene.test.mjs +++ b/scripts/worktree-hygiene.test.mjs @@ -9,7 +9,7 @@ import { function createGitStub(statusOutput) { return (args) => { if (args[0] === "rev-parse" && args[1] === "--show-toplevel") { - return "/tmp/capakraken\n"; + return "/tmp/nexus\n"; } if (args[0] === "rev-parse" && args[1] === "--abbrev-ref") { return "main\n"; diff --git a/tooling/deploy/deploy.env.example b/tooling/deploy/deploy.env.example index 2804f91..159bac2 100644 --- a/tooling/deploy/deploy.env.example +++ b/tooling/deploy/deploy.env.example @@ -1,5 +1,5 @@ -APP_IMAGE=ghcr.io/example/capakraken-app:sha-abc123 -MIGRATOR_IMAGE=ghcr.io/example/capakraken-migrator:sha-abc123 +APP_IMAGE=ghcr.io/example/nexus-app:sha-abc123 +MIGRATOR_IMAGE=ghcr.io/example/nexus-migrator:sha-abc123 APP_HOST_PORT=3000 GHCR_USERNAME= GHCR_TOKEN= diff --git a/tooling/migrate/rename-to-nexus.sh b/tooling/migrate/rename-to-nexus.sh new file mode 100755 index 0000000..3e08ab9 --- /dev/null +++ b/tooling/migrate/rename-to-nexus.sh @@ -0,0 +1,167 @@ +#!/usr/bin/env bash +# +# Phase 3 cutover: migrate the running stack from `capakraken` (DB, role, +# volumes, compose project) to `nexus`. Intended to be run inside a brief +# maintenance window — the app is stopped for the duration. +# +# Idempotency: each step checks the current state. Re-running after a +# partial run only does the missing pieces. The script never DROPS the +# legacy `capakraken` DB or role — that's a manual decision after a +# stability window. +# +# Usage: +# ./tooling/migrate/rename-to-nexus.sh dev # against docker-compose.yml +# ./tooling/migrate/rename-to-nexus.sh prod # against docker-compose.prod.yml +# +# Requires: +# - POSTGRES_PASSWORD set in env (or .env file picked up by docker compose) +# - docker compose CLI v2+ +# - the `nexus` branch of code already checked out (compose files reference nexus_*) + +set -euo pipefail + +MODE="${1:-dev}" +case "$MODE" in + dev) + COMPOSE_FILE=docker-compose.yml + OLD_PROJECT=capakraken + NEW_PROJECT=nexus + VOLUMES=(pgdata node_modules next) + ;; + prod) + COMPOSE_FILE=docker-compose.prod.yml + OLD_PROJECT=capakraken-prod + NEW_PROJECT=nexus-prod + VOLUMES=(prod_pgdata prod_redis) + ;; + *) + echo "Usage: $0 [dev|prod]" >&2 + exit 2 + ;; +esac + +if [ -z "${POSTGRES_PASSWORD:-}" ]; then + echo "POSTGRES_PASSWORD must be set in the environment." >&2 + exit 2 +fi + +DUMP_FILE="/tmp/capakraken-pre-rename-$(date +%Y%m%d-%H%M%S).sql" + +echo "=== Phase 3 cutover ($MODE) ===" +echo "compose: $COMPOSE_FILE project: $OLD_PROJECT → $NEW_PROJECT dump: $DUMP_FILE" +echo + +#─────────────────────────────────────────────────────────────────────────────── +# 1. Stop the app (DB stays up so we can dump it). +#─────────────────────────────────────────────────────────────────────────────── +echo "[1/7] Stopping app container under old project name..." +docker compose -p "$OLD_PROJECT" -f "$COMPOSE_FILE" stop app 2>/dev/null || true + +#─────────────────────────────────────────────────────────────────────────────── +# 2. Capture row counts for verification. +#─────────────────────────────────────────────────────────────────────────────── +echo "[2/7] Capturing pre-rename row counts..." +PRE_COUNTS=$(docker compose -p "$OLD_PROJECT" -f "$COMPOSE_FILE" exec -T postgres \ + psql -U capakraken -d capakraken -t -c \ + "SELECT table_name, n_live_tup FROM pg_stat_user_tables ORDER BY table_name;") +echo "$PRE_COUNTS" | head -20 +echo "..." + +#─────────────────────────────────────────────────────────────────────────────── +# 3. Dump existing DB. +#─────────────────────────────────────────────────────────────────────────────── +echo "[3/7] pg_dump capakraken → $DUMP_FILE..." +docker compose -p "$OLD_PROJECT" -f "$COMPOSE_FILE" exec -T postgres \ + pg_dump -U capakraken -d capakraken --clean --if-exists > "$DUMP_FILE" +echo "Dump size: $(du -h "$DUMP_FILE" | cut -f1)" + +#─────────────────────────────────────────────────────────────────────────────── +# 4. Create new role + DB inside the running postgres container. +#─────────────────────────────────────────────────────────────────────────────── +echo "[4/7] Creating nexus role + database..." +docker compose -p "$OLD_PROJECT" -f "$COMPOSE_FILE" exec -T postgres \ + psql -U capakraken -d postgres </dev/null 2>&1; then + echo " Source volume $src missing — skip" + continue + fi + if docker volume inspect "$dst" >/dev/null 2>&1; then + echo " Destination volume $dst already exists — skip" + continue + fi + echo " $src → $dst" + docker volume create "$dst" >/dev/null + docker run --rm \ + -v "${src}:/from:ro" \ + -v "${dst}:/to" \ + alpine sh -c "cd /from && cp -a . /to/" +done + +#─────────────────────────────────────────────────────────────────────────────── +# 7. Bring up under new compose project name. +#─────────────────────────────────────────────────────────────────────────────── +echo "[7/7] Starting stack under new project name '$NEW_PROJECT'..." +PROFILE="" +[ "$MODE" = "dev" ] && PROFILE="--profile full" +# shellcheck disable=SC2086 +docker compose -p "$NEW_PROJECT" -f "$COMPOSE_FILE" $PROFILE up -d + +echo +echo "Waiting 15s for postgres to be ready..." +sleep 15 + +echo "=== Verification ===" +POST_COUNTS=$(docker compose -p "$NEW_PROJECT" -f "$COMPOSE_FILE" exec -T postgres \ + psql -U nexus -d nexus -t -c \ + "SELECT table_name, n_live_tup FROM pg_stat_user_tables ORDER BY table_name;") +echo "Post-rename row counts (sample):" +echo "$POST_COUNTS" | head -20 + +if diff <(echo "$PRE_COUNTS") <(echo "$POST_COUNTS") >/dev/null; then + echo "✓ Row counts match — migration verified." +else + echo "⚠ Row counts differ — review diff:" + diff <(echo "$PRE_COUNTS") <(echo "$POST_COUNTS") | head +fi + +echo +echo "Done. Old DB+role retained for rollback. Dump kept at $DUMP_FILE." +echo "After a stability window, drop with:" +echo " docker compose -p $NEW_PROJECT -f $COMPOSE_FILE exec postgres psql -U nexus -d postgres \\" +echo " -c 'DROP DATABASE capakraken; DROP ROLE capakraken;'"