diff --git a/package.json b/package.json index 18d15e3..096b2f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ipwhitelist", - "version": "0.1.24", + "version": "0.1.25", "description": "IP WhiteList microservice for cloud provider", "main": "server.js", "scripts": { diff --git a/server.js b/server.js index d4d22ef..3b8a9b8 100644 --- a/server.js +++ b/server.js @@ -57,6 +57,17 @@ app.use(cookieParser()); async function start() { const auth = await initAuth(); + // ── Стоп-кран: если запрос висит > 10 сек — обрываем с ошибкой ─────── + app.use((req, res, next) => { + const timer = setTimeout(() => { + if (!res.headersSent) { + res.status(503).type('html').send('

Сервис временно недоступен

Превышено время ожидания

'); + } + }, 10000); + res.on('finish', () => clearTimeout(timer)); + next(); + }); + // ── Сессии ──────────────────────────────────────────────────────────────── const { pool } = require('./src/db'); app.use(createSessionMiddleware(pool)); diff --git a/v2/src/config/index.js b/v2/src/config/index.js index cc173f3..21eeacf 100644 --- a/v2/src/config/index.js +++ b/v2/src/config/index.js @@ -8,7 +8,7 @@ // ═══════════════════════════════════════════════════════════════════════════════ module.exports = { - version: '0.1.24', + version: '0.1.25', // ── Среда ───────────────────────────────────────────────────────────────── // APP_ENV=test → тестовый стенд (жёлтый баннер в UI, можно включать тестовый API)