From 9cb650d1d8ee9b59528cb55bbea86d180176416f Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Wed, 20 May 2026 13:34:26 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=A9=BA=20feat:=20Add=20Explicit=20Readine?= =?UTF-8?q?ss=20Endpoints=20(#13212)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/server/index.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/api/server/index.js b/api/server/index.js index e7ce041fa4..a36484c87a 100644 --- a/api/server/index.js +++ b/api/server/index.js @@ -54,6 +54,7 @@ const host = HOST || 'localhost'; const trusted_proxy = Number(TRUST_PROXY) || 1; /* trust first proxy by default */ const app = express(); +let serverReady = false; const startServer = async () => { const { metricsMiddleware, metricsRouter } = createMetrics(); @@ -114,6 +115,13 @@ const startServer = async () => { } app.get('/health', (_req, res) => res.status(200).send('OK')); + app.get('/livez', (_req, res) => res.status(200).send('OK')); + app.get('/readyz', (_req, res) => { + if (!serverReady) { + return res.status(503).send('NOT_READY'); + } + return res.status(200).send('OK'); + }); /* Middleware */ app.use(metricsMiddleware); @@ -279,7 +287,10 @@ const startServer = async () => { if (inspectFlags || isEnabled(process.env.MEM_DIAG)) { memoryDiagnostics.start(); } + serverReady = true; + logger.info('Server readiness checks passing.'); } catch (initErr) { + serverReady = false; logger.error('Post-listen initialization failed:', initErr); process.exit(1); }