feat: честный /health эндпоинт с расширенной диагностикой (без секретов)

This commit is contained in:
“Naeel”
2026-08-26 19:47:33 +03:00
parent 3e378d1cf3
commit 39aa5473c3
2 changed files with 26 additions and 1 deletions
+1 -1
View File
@@ -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": {
+25
View File
@@ -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);