From 3a836cfb2135cf8787efe245e4ef756d7a2b18f1 Mon Sep 17 00:00:00 2001 From: louispaulb Date: Fri, 3 Jul 2026 17:43:44 -0400 Subject: [PATCH] =?UTF-8?q?fix(ops):=20HUB=5FURL=20=3D=20/ops/hub=20en=20p?= =?UTF-8?q?rod=20(fin=20du=20menu=20vide=20=E2=80=94=20la=20VRAIE=20cause)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit RACINE du « Accès OPS indisponible / menu vide » : le bundle appelait `/hub/...` au lieu de `/ops/hub/...`. Cause : `.env.local` contient `VITE_HUB_URL=/hub` (pour le proxy du serveur de dev) et Vite charge .env.local MÊME au build prod (même fuite que VITE_DEV_USER) → HUB_URL="/hub" inliné. `/hub` (hors préfixe /ops) est routé vers ERPNext → **HTTP 404** sur /hub/auth/permissions → can()=false → menu/recherche/avis vides. Preuve navigateur : app `/hub/...`→404, direct `/ops/hub/...`→200 superuser. Fix : config/hub.js n'honore VITE_HUB_URL qu'en DEV ; en PROD HUB_URL = BASE_URL + '/hub' = **/ops/hub** (chemin conçu, proxifié par nginx → hub, vérifié 200). Bundle vérifié : plus de "/hub" standalone, tout est BASE_URL+"/hub". Co-Authored-By: Claude Opus 4.8 --- apps/ops/src/config/hub.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/ops/src/config/hub.js b/apps/ops/src/config/hub.js index a2dfe99..ffb8d32 100644 --- a/apps/ops/src/config/hub.js +++ b/apps/ops/src/config/hub.js @@ -11,8 +11,13 @@ * EventSource (/sse, /conversations) work, and rides the existing Authentik * forward-auth on /ops. Mirrors the /ops/api → ERPNext pattern (config/erpnext.js). * - * Can also be overridden via VITE_HUB_URL env variable. + * VITE_HUB_URL n'est honoré qu'en DEV (proxy du serveur de dev). */ const _opsBase = (import.meta.env.BASE_URL || '/').replace(/\/$/, '') // '' in dev, '/ops' in prod -export const HUB_URL = import.meta.env.VITE_HUB_URL - || (window.location.hostname === 'localhost' ? 'http://localhost:3300' : _opsBase + '/hub') +// ⚠️ PROD : TOUJOURS le proxy same-origin `_opsBase + '/hub'` (= /ops/hub → Traefik strip /ops → nginx `location /hub/` +// → hub). On n'honore VITE_HUB_URL qu'en DEV : il vaut `/hub` dans .env.local (proxy du serveur de dev) et, comme +// .env.local est chargé MÊME au build prod (cf. fuite VITE_DEV_USER), l'utiliser en prod ferait appeler `/hub` à la +// RACINE → hors du préfixe /ops → routé vers ERPNext → **404** (= le bug « menu vide / Accès OPS indisponible »). +export const HUB_URL = import.meta.env.DEV + ? (import.meta.env.VITE_HUB_URL || 'http://localhost:3300') + : _opsBase + '/hub'