From dd2e4b6e9f6a10044fe8289d2c1655174c906248 Mon Sep 17 00:00:00 2001 From: Till JS Date: Tue, 12 May 2026 17:05:28 +0200 Subject: [PATCH] fix(mana-auth): read PUBLIC_*_URL from window-injected vars, not $env/dynamic/public MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pre-deploy-Audit gefunden: meine neue session.svelte.ts + portal-redirect.ts lasen PUBLIC_MANA_AUTH_URL/PUBLIC_AUTH_WEB_URL via $env/dynamic/public. In Production ist das aber die Docker-interne URL `http://mana-auth:3001`, die der Browser nicht erreichen kann — Folge wäre endlose Redirect-Loop bei der ersten User-Session. managarten hat das Pattern schon gelöst: hooks.server.ts injiziert `window.__PUBLIC_*_URL__` aus den `_CLIENT`-suffixed env-Vars (Public- Domain-Werte). `lib/data/scope/auth-fetch.authBaseUrl()` ist der kanonische Helper dafür. - session.svelte.ts: ruft jetzt `authBaseUrl()` aus auth-fetch. - portal-redirect.ts: eigenes window/process-Lookup für PUBLIC_AUTH_WEB_URL, gleiches Pattern. - hooks.server.ts: PUBLIC_AUTH_WEB_URL_CLIENT-Lesen + window-Injection. - docker-compose.macmini.yml (mana-app-web): PUBLIC_AUTH_WEB_URL + PUBLIC_AUTH_WEB_URL_CLIENT env-Vars hinzugefügt. Co-Authored-By: Claude Sonnet 4.6 --- apps/mana/apps/web/src/hooks.server.ts | 3 +++ .../apps/web/src/lib/auth/portal-redirect.ts | 23 +++++++++++++++---- .../apps/web/src/lib/auth/session.svelte.ts | 17 ++++++++++---- docker-compose.macmini.yml | 7 ++++++ 4 files changed, 41 insertions(+), 9 deletions(-) diff --git a/apps/mana/apps/web/src/hooks.server.ts b/apps/mana/apps/web/src/hooks.server.ts index 5c3ee4325..31b249e23 100644 --- a/apps/mana/apps/web/src/hooks.server.ts +++ b/apps/mana/apps/web/src/hooks.server.ts @@ -27,6 +27,8 @@ import { setSecurityHeaders } from '@mana/shared-utils/security-headers'; const PUBLIC_MANA_AUTH_URL_CLIENT = process.env.PUBLIC_MANA_AUTH_URL_CLIENT || process.env.PUBLIC_MANA_AUTH_URL || ''; +const PUBLIC_AUTH_WEB_URL_CLIENT = + process.env.PUBLIC_AUTH_WEB_URL_CLIENT || process.env.PUBLIC_AUTH_WEB_URL || ''; const PUBLIC_GLITCHTIP_DSN = process.env.PUBLIC_GLITCHTIP_DSN || ''; const PUBLIC_SYNC_SERVER_URL_CLIENT = @@ -227,6 +229,7 @@ export const handle: Handle = async ({ event, resolve }) => { transformPageChunk: ({ html }) => { const envScript = `