diff --git a/packages/api/src/controllers/auth.js b/packages/api/src/controllers/auth.js index 4c61d7cc7..15600f156 100644 --- a/packages/api/src/controllers/auth.js +++ b/packages/api/src/controllers/auth.js @@ -45,6 +45,7 @@ function authMiddleware(req, res, next) { '/connections/dblogin-auth', '/connections/dblogin-auth-token', '/health', + '/__health', ]; // console.log('********************* getAuthProvider()', getAuthProvider()); diff --git a/packages/api/src/main.js b/packages/api/src/main.js index 22001ad26..ac0c33ef5 100644 --- a/packages/api/src/main.js +++ b/packages/api/src/main.js @@ -38,7 +38,7 @@ const { getLogger } = require('dbgate-tools'); const { getDefaultAuthProvider } = require('./auth/authProvider'); const startCloudUpgradeTimer = require('./utility/cloudUpgrade'); const { isProApp } = require('./utility/checkLicense'); -const getHealthStatus = require('./utility/healthStatus'); +const { getHealthStatus, getHealthStatusSprinx } = require('./utility/healthStatus'); const logger = getLogger('main'); @@ -124,6 +124,12 @@ function start() { res.end(JSON.stringify(health, null, 2)); }); + app.get(getExpressPath('/__health'), async function (req, res) { + res.setHeader('Content-Type', 'application/json'); + const health = await getHealthStatusSprinx(); + res.end(JSON.stringify(health, null, 2)); + }); + app.use(bodyParser.json({ limit: '50mb' })); app.use( diff --git a/packages/api/src/utility/healthStatus.js b/packages/api/src/utility/healthStatus.js index 3a458e0d8..b0cf366df 100644 --- a/packages/api/src/utility/healthStatus.js +++ b/packages/api/src/utility/healthStatus.js @@ -24,4 +24,15 @@ async function getHealthStatus() { }; } -module.exports = getHealthStatus; +async function getHealthStatusSprinx() { + return { + overallStatus: 'OK', + timeStamp: new Date().toISOString(), + timeStampUnix: Math.floor(Date.now() / 1000), + }; +} + +module.exports = { + getHealthStatus, + getHealthStatusSprinx, +};