From 834b11d1d13ab09205357e74f2da3ec97776f08d Mon Sep 17 00:00:00 2001 From: Wuesteon Date: Fri, 19 Dec 2025 03:26:59 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(staging):=20add=20missing=20?= =?UTF-8?q?PUBLIC=5F*=5FCLIENT=20env=20vars=20for=20runtime=20config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Web apps use hooks.server.ts to inject window.__PUBLIC_*__ variables at runtime, but docker-compose.staging.yml was only setting vars for docker-entrypoint.sh config.json. This caused web apps to fall back to localhost URLs in production. Changes: - Add PUBLIC_*_CLIENT env vars for all staging web apps - Update calendar-web hooks.server.ts to inject contacts API URL --- apps/calendar/apps/web/src/hooks.server.ts | 3 ++ docker-compose.staging.yml | 34 +++++++++++++++------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/apps/calendar/apps/web/src/hooks.server.ts b/apps/calendar/apps/web/src/hooks.server.ts index 6d7a5089d..513cd878b 100644 --- a/apps/calendar/apps/web/src/hooks.server.ts +++ b/apps/calendar/apps/web/src/hooks.server.ts @@ -11,6 +11,8 @@ const PUBLIC_MANA_CORE_AUTH_URL_CLIENT = process.env.PUBLIC_MANA_CORE_AUTH_URL_CLIENT || process.env.PUBLIC_MANA_CORE_AUTH_URL || ''; const PUBLIC_BACKEND_URL_CLIENT = process.env.PUBLIC_BACKEND_URL_CLIENT || process.env.PUBLIC_BACKEND_URL || ''; +const PUBLIC_CONTACTS_API_URL_CLIENT = + process.env.PUBLIC_CONTACTS_API_URL_CLIENT || process.env.PUBLIC_CONTACTS_API_URL || ''; export const handle: Handle = async ({ event, resolve }) => { return resolve(event, { @@ -20,6 +22,7 @@ export const handle: Handle = async ({ event, resolve }) => { const envScript = ``; return html.replace('', `${envScript}`); }, diff --git a/docker-compose.staging.yml b/docker-compose.staging.yml index a0be07f41..f31aa8e38 100644 --- a/docker-compose.staging.yml +++ b/docker-compose.staging.yml @@ -148,10 +148,12 @@ services: environment: NODE_ENV: staging PORT: 3000 - # Runtime config generation (12-factor pattern) - # These vars are used by docker-entrypoint.sh to generate /config.json + # Runtime config - for docker-entrypoint.sh (/config.json) BACKEND_URL: https://chat-api.staging.manacore.ai AUTH_URL: https://auth.staging.manacore.ai + # Runtime config - for hooks.server.ts (window.__PUBLIC_*__ injection) + PUBLIC_MANA_CORE_AUTH_URL_CLIENT: https://auth.staging.manacore.ai + PUBLIC_BACKEND_URL_CLIENT: https://chat-api.staging.manacore.ai ports: - "3000:3000" healthcheck: @@ -182,8 +184,7 @@ services: environment: NODE_ENV: staging PORT: 5173 - # Runtime config generation (12-factor pattern) - # These vars are used by docker-entrypoint.sh to generate /config.json + # Runtime config - for docker-entrypoint.sh (/config.json) API_BASE_URL: https://staging.manacore.ai AUTH_URL: https://auth.staging.manacore.ai TODO_API_URL: https://todo-api.staging.manacore.ai @@ -191,6 +192,12 @@ services: CLOCK_API_URL: https://clock-api.staging.manacore.ai CONTACTS_API_URL: https://contacts-api.staging.manacore.ai PICTURE_API_URL: https://picture-api.staging.manacore.ai + # Runtime config - for hooks.server.ts (window.__PUBLIC_*__ injection) + PUBLIC_MANA_CORE_AUTH_URL_CLIENT: https://auth.staging.manacore.ai + PUBLIC_TODO_API_URL_CLIENT: https://todo-api.staging.manacore.ai + PUBLIC_CALENDAR_API_URL_CLIENT: https://calendar-api.staging.manacore.ai + PUBLIC_CLOCK_API_URL_CLIENT: https://clock-api.staging.manacore.ai + PUBLIC_CONTACTS_API_URL_CLIENT: https://contacts-api.staging.manacore.ai ports: - "5173:5173" healthcheck: @@ -323,12 +330,15 @@ services: environment: NODE_ENV: staging PORT: 5186 - # Runtime config generation (12-factor pattern) - # These vars are used by docker-entrypoint.sh to generate /config.json + # Runtime config - for docker-entrypoint.sh (/config.json) BACKEND_URL: https://calendar-api.staging.manacore.ai AUTH_URL: https://auth.staging.manacore.ai TODO_API_URL: https://todo-api.staging.manacore.ai CONTACTS_API_URL: https://contacts-api.staging.manacore.ai + # Runtime config - for hooks.server.ts (window.__PUBLIC_*__ injection) + PUBLIC_MANA_CORE_AUTH_URL_CLIENT: https://auth.staging.manacore.ai + PUBLIC_BACKEND_URL_CLIENT: https://calendar-api.staging.manacore.ai + PUBLIC_CONTACTS_API_URL_CLIENT: https://contacts-api.staging.manacore.ai ports: - "5186:5186" healthcheck: @@ -393,10 +403,12 @@ services: environment: NODE_ENV: staging PORT: 5187 - # Runtime config generation (12-factor pattern) - # These vars are used by docker-entrypoint.sh to generate /config.json + # Runtime config - for docker-entrypoint.sh (/config.json) API_BASE_URL: https://clock-api.staging.manacore.ai AUTH_URL: https://auth.staging.manacore.ai + # Runtime config - for hooks.server.ts (window.__PUBLIC_*__ injection) + PUBLIC_MANA_CORE_AUTH_URL_CLIENT: https://auth.staging.manacore.ai + PUBLIC_BACKEND_URL_CLIENT: https://clock-api.staging.manacore.ai ports: - "5187:5187" healthcheck: @@ -472,10 +484,12 @@ services: environment: NODE_ENV: staging PORT: 5175 - # Runtime config generation (12-factor pattern) - # These vars are used by docker-entrypoint.sh to generate /config.json + # Runtime config - for docker-entrypoint.sh (/config.json) BACKEND_URL: https://picture-api.staging.manacore.ai AUTH_URL: https://auth.staging.manacore.ai + # Runtime config - for hooks.server.ts (window.__PUBLIC_*__ injection) + PUBLIC_MANA_CORE_AUTH_URL_CLIENT: https://auth.staging.manacore.ai + PUBLIC_BACKEND_URL_CLIENT: https://picture-api.staging.manacore.ai ports: - "5175:5175" healthcheck: