From db21d78aff3d47d4326a9f6b2346f199a8be207c Mon Sep 17 00:00:00 2001 From: WebStreamr <210764791+webstreamr@users.noreply.github.com> Date: Wed, 6 Aug 2025 09:09:19 +0000 Subject: [PATCH] chore: introduce dedicated startup/ready and live endpoints --- src/index.ts | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/index.ts b/src/index.ts index 1cb5bee..a37de98 100644 --- a/src/index.ts +++ b/src/index.ts @@ -65,8 +65,16 @@ addon.get('/', (_req: Request, res: Response) => { res.redirect('/configure'); }); -let lastHealthCheckRequestsTimestamp = 0; -addon.get('/health', async (req: Request, res: Response) => { +addon.get('/startup', async (_req: Request, res: Response) => { + res.json({ status: 'ok' }); +}); + +addon.get('/ready', async (_req: Request, res: Response) => { + res.json({ status: 'ok' }); +}); + +let lastLiveProbeRequestsTimestamp = 0; +const liveHandler = async (req: Request, res: Response) => { const ctx = contextFromRequestAndResponse(req, res); const sources: Source[] = [ @@ -94,9 +102,9 @@ addon.get('/health', async (req: Request, res: Response) => { } }); - if (Date.now() - lastHealthCheckRequestsTimestamp > 60000) { // every minute + if (Date.now() - lastLiveProbeRequestsTimestamp > 60000) { // every minute await Promise.all(fetchFactories.map(fn => fn())); - lastHealthCheckRequestsTimestamp = Date.now(); + lastLiveProbeRequestsTimestamp = Date.now(); } if (blockedCount > 0) { @@ -109,7 +117,9 @@ addon.get('/health', async (req: Request, res: Response) => { } else { res.json({ status: 'ok' }); } -}); +}; +addon.get('/live', liveHandler); +addon.get('/health', liveHandler); // for BC const port = parseInt(envGet('PORT') || '51546'); addon.listen(port, () => {