From 39aa5473c37346fc90265996d8a22d7bf7d54641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Wed, 26 Aug 2026 19:47:33 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20=D1=87=D0=B5=D1=81=D1=82=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20/health=20=D1=8D=D0=BD=D0=B4=D0=BF=D0=BE=D0=B8=D0=BD?= =?UTF-8?q?=D1=82=20=D1=81=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D0=BA=D0=BE=D0=B9=20(=D0=B1=D0=B5=D0=B7=20?= =?UTF-8?q?=D1=81=D0=B5=D0=BA=D1=80=D0=B5=D1=82=D0=BE=D0=B2)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- server.js | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 096b2f9..ad91ceb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipwhitelist", - "version": "0.1.25", + "version": "0.1.26", "description": "IP WhiteList microservice for cloud provider", "main": "server.js", "scripts": { diff --git a/server.js b/server.js index 83d44b3..da87c36 100644 --- a/server.js +++ b/server.js @@ -109,6 +109,31 @@ async function start() { res.send('OK'); }); + // Честный health-check для системы алертов: реальная проверка БД. + // Отдаёт максимум диагностической информации (без секретов). + app.get('/health', async (req, res) => { + const start = Date.now(); + const base = { + version: APP_VERSION, + uptimeSec: Math.round(process.uptime()), + pid: process.pid, + node: process.version, + env: process.env.NODE_ENV || 'development', + now: new Date().toISOString(), + latencyMs: 0, + db: 'up' + }; + try { + await pool.query('SELECT 1'); + base.latencyMs = Date.now() - start; + res.status(200).json({ status: 'ok', ...base }); + } catch (e) { + base.latencyMs = Date.now() - start; + base.db = 'down'; + res.status(503).json({ status: 'error', ...base, error: e.message }); + } + }); + // Если фатальная ошибка конфигурации — показываем на всех страницах сообщение if (fatalError) { console.error(fatalError);