From eb07a99e5e88f9bdf1a899e119bd0bb92a74a373 Mon Sep 17 00:00:00 2001 From: Manus Date: Fri, 24 Jul 2026 10:40:45 +0000 Subject: [PATCH] fix: /public/apps ne bloque plus sur getAllStatuses (async -> sync) --- src/backend/src/routes.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/backend/src/routes.js b/src/backend/src/routes.js index f1f9ad3..b4eb6d2 100644 --- a/src/backend/src/routes.js +++ b/src/backend/src/routes.js @@ -419,10 +419,13 @@ router.get('/public/status', async (req, res) => { // ============ PUBLIC APPS ROUTE (sans authentification) ============ // Utilisé par le portail applicatif pour construire les tuiles dynamiquement -router.get('/public/apps', async (req, res) => { +// Ne bloque jamais : retourne les apps avec status 'unknown' si les health checks ne sont pas encore disponibles +router.get('/public/apps', (req, res) => { try { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Cache-Control', 'no-cache, no-store, must-revalidate'); + // getAllStatuses() retourne un tableau vide si aucun check n'a encore été effectué + // On ne déclenche PAS checkAllApps() ici pour éviter de bloquer la réponse const statuses = getAllStatuses(); const publicApps = config.apps .filter((a) => a.category !== 'INFRA') // Exclure les apps infra (portail, dashboard) @@ -432,7 +435,7 @@ router.get('/public/apps', async (req, res) => { id: a.id, name: a.name, category: a.category || 'SANTINOVA', - image: a.image || `images/${a.id}.png`, + image: a.image || ('images/' + a.id + '.png'), urls: a.urls || {}, status: status ? status.status : 'unknown', containerRunning: status && status.container ? status.container.running : false,