From 0bcaf4cb69ae6f83f0d81aba4cdc923750c23aa4 Mon Sep 17 00:00:00 2001 From: Wietse Wind Date: Mon, 9 Oct 2023 12:39:12 +0200 Subject: [PATCH] Add version to health & homempage response --- bin/webserver.mjs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/bin/webserver.mjs b/bin/webserver.mjs index 07577c2..daacdc4 100644 --- a/bin/webserver.mjs +++ b/bin/webserver.mjs @@ -1,4 +1,5 @@ import { WebSocket } from 'ws' +import { readFile } from 'fs' import morgan from 'morgan' import express from 'express' import expressWs from 'express-ws' @@ -19,6 +20,23 @@ const telemetry = { sent: false, } +const version = await new Promise(resolve => { + readFile(new URL('../package.json', import.meta.url).pathname, (err, data) => { + if (!err) { + try { + const pjson = JSON.parse(data) + return resolve(pjson?.version) + } + catch (e) { + // + } + } + resolve(null) + }) +}) + +console.log('Running backend version', version || '<< UNKNOWN >>') + const sendTelemetry = async () => { if (process.env?.TELEMETRY === 'YES') { try { @@ -98,11 +116,13 @@ if (!wss) { unlkey: process.env?.UNLKEY ?? null, }, config: { + version, networkid: process.env?.NETWORKID ?? null, urlprefix: process.env?.URL_PREFIX ?? null, requiredTxFields: typeof process.env?.FIELDSREQUIRED === 'string' ? process.env.FIELDSREQUIRED.split(',') : null, }, stats: { + uptime: new Date() - startDate, lastLedger: lastLedger ?? null, lastWsPushedLedger: lastWsPushedLedger ?? null, txCount: txCount ?? null, @@ -118,6 +138,7 @@ if (!wss) { app.use('/health', (req, res) => { res.setHeader('content-type', 'application/json') res.json({ + version, uptime: new Date() - startDate, lastLedger: lastLedger ?? null, lastWsPushedLedger: lastWsPushedLedger ?? null,