From 4da4b5c35d614f3b8810f8e6085269cbd5e3f801 Mon Sep 17 00:00:00 2001 From: Farai Mutambara Date: Fri, 10 Oct 2025 14:49:38 +0100 Subject: [PATCH 1/3] add more context to readiness check --- .../backend/src/middlewares/readinessCheck.ts | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/apps/backend/src/middlewares/readinessCheck.ts b/apps/backend/src/middlewares/readinessCheck.ts index b8e39e296e..237641c6c3 100644 --- a/apps/backend/src/middlewares/readinessCheck.ts +++ b/apps/backend/src/middlewares/readinessCheck.ts @@ -7,19 +7,33 @@ const router = express.Router(); router.get('/readiness', (req: Request, res: Response) => { try { - baseContext.queries.system - .connectivityCheck() - .then((success) => { - success ? res.status(200) : res.status(500); - res.end(); - }) - .catch((e) => { - logger.logException('Readiness check failed', e); - res.status(500).end(); + baseContext.queries.system.connectivityCheck().then((success) => { + const responseStatus = success ? 200 : 503; + res.status(responseStatus).json({ + application: { + status: 'UP', + database: { + status: success ? 'UP' : 'DOWN', + message: success ? 'Connected' : 'Not connected', + }, + }, }); + + res.end(); + }); } catch (e) { + res.status(500).json({ + application: { + status: 'DOWN', + database: { + status: 'DOWN', + message: 'Could not perform readiness check', + }, + }, + }); + logger.logException('Readiness check failed', e); - res.status(500).end(); + res.end(); } }); From c9b03a500880f1661ac5eeddef2559c9ef46d406 Mon Sep 17 00:00:00 2001 From: Farai Mutambara Date: Mon, 13 Oct 2025 10:16:27 +0100 Subject: [PATCH 2/3] add comment suggestions --- apps/backend/src/middlewares/readinessCheck.ts | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/apps/backend/src/middlewares/readinessCheck.ts b/apps/backend/src/middlewares/readinessCheck.ts index 237641c6c3..713fcf715a 100644 --- a/apps/backend/src/middlewares/readinessCheck.ts +++ b/apps/backend/src/middlewares/readinessCheck.ts @@ -5,9 +5,9 @@ import baseContext from '../buildContext'; const router = express.Router(); -router.get('/readiness', (req: Request, res: Response) => { +router.get('/readiness', async (req: Request, res: Response) => { try { - baseContext.queries.system.connectivityCheck().then((success) => { + await baseContext.queries.system.connectivityCheck().then((success) => { const responseStatus = success ? 200 : 503; res.status(responseStatus).json({ application: { @@ -18,10 +18,9 @@ router.get('/readiness', (req: Request, res: Response) => { }, }, }); - - res.end(); }); } catch (e) { + logger.logException('Readiness check failed', e); res.status(500).json({ application: { status: 'DOWN', @@ -31,9 +30,6 @@ router.get('/readiness', (req: Request, res: Response) => { }, }, }); - - logger.logException('Readiness check failed', e); - res.end(); } }); From f4c3e25e09a02a26e89dc8ffee47fbbfb6de0b65 Mon Sep 17 00:00:00 2001 From: Farai Mutambara Date: Wed, 22 Oct 2025 14:26:50 +0100 Subject: [PATCH 3/3] fix issues from comments --- .../datasources/postgres/SystemDataSource.ts | 2 +- .../backend/src/middlewares/readinessCheck.ts | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/backend/src/datasources/postgres/SystemDataSource.ts b/apps/backend/src/datasources/postgres/SystemDataSource.ts index 577351c4db..2cb5e951cf 100644 --- a/apps/backend/src/datasources/postgres/SystemDataSource.ts +++ b/apps/backend/src/datasources/postgres/SystemDataSource.ts @@ -7,7 +7,7 @@ export default class PostgresSystemDataSource implements SystemDataSource { async connectivityCheck(): Promise { try { return database - .raw('select * FROM "settings" LIMIT 1') + .raw('SELECT 1') .then(() => { return true; }) diff --git a/apps/backend/src/middlewares/readinessCheck.ts b/apps/backend/src/middlewares/readinessCheck.ts index 713fcf715a..037aeae3bc 100644 --- a/apps/backend/src/middlewares/readinessCheck.ts +++ b/apps/backend/src/middlewares/readinessCheck.ts @@ -7,17 +7,16 @@ const router = express.Router(); router.get('/readiness', async (req: Request, res: Response) => { try { - await baseContext.queries.system.connectivityCheck().then((success) => { - const responseStatus = success ? 200 : 503; - res.status(responseStatus).json({ - application: { - status: 'UP', - database: { - status: success ? 'UP' : 'DOWN', - message: success ? 'Connected' : 'Not connected', - }, + const success = await baseContext.queries.system.connectivityCheck(); + const responseStatus = success ? 200 : 503; + res.status(responseStatus).json({ + application: { + status: 'UP', + database: { + status: success ? 'UP' : 'DOWN', + message: success ? 'Connected' : 'Not connected', }, - }); + }, }); } catch (e) { logger.logException('Readiness check failed', e);