diff --git a/src/endpoint/endpoint.js b/src/endpoint/endpoint.js index 284fded52d..bb5a83eaa6 100755 --- a/src/endpoint/endpoint.js +++ b/src/endpoint/endpoint.js @@ -6,6 +6,7 @@ require('../util/dotenv').load(); require('../util/panic'); require('../util/fips'); +const pkg = require('../../package.json'); const dbg = require('../util/debug_module')(__filename); if (!dbg.get_process_name()) dbg.set_process_name('Endpoint'); @@ -294,6 +295,11 @@ function create_endpoint_handler(server_type, init_request_sdk, { virtual_hosts, return fork_count_handler(req, res); } else if (req.url.startsWith('/endpoint_fork_id')) { return endpoint_fork_id_handler(req, res); + } else if (req.url.startsWith('/_')) { + // internals non S3 requests + if (req.url === '/_version') { + return version_handler(req, res); + } } else { return s3_rest.handler(req, res); } @@ -349,6 +355,21 @@ function fork_count_handler(req, res) { res.end(JSON.stringify(reply)); } +/** + * version_handler return the version of noobaa package + * @param {*} req + * @param {*} res + */ +function version_handler(req, res) { + const reply = { + version: pkg.version, + }; + res.statusCode = 200; + res.setHeader('Content-Type', 'application/json'); + res.setHeader('Content-Length', Buffer.byteLength(JSON.stringify(reply))); + res.end(JSON.stringify(reply)); +} + /** * @param {typeof server_rpc.rpc} rpc * @param {nb.APIClient} internal_rpc_client