diff --git a/src/lib/agent/subsystems/http/routes.mjs b/src/lib/agent/subsystems/http/routes.mjs index c9ca93e..cde8948 100644 --- a/src/lib/agent/subsystems/http/routes.mjs +++ b/src/lib/agent/subsystems/http/routes.mjs @@ -6,6 +6,7 @@ import middleware_log from './routes/middleware_log.mjs'; import middleware_catch_errors from './routes/middleware_errors.mjs'; import route_table from './routes/table.mjs'; import route_static from './routes/static.mjs'; +import route_status from './routes/status.mjs'; export default function(sys) { const router = new ServerRouter(); @@ -17,6 +18,7 @@ export default function(sys) { /// // API /// + router.get(`/api/status`, route_status.bind(this, sys)); router.get(`/api/table/:table_name`, route_table.bind(this, sys)); /// diff --git a/src/lib/agent/subsystems/http/routes/status.mjs b/src/lib/agent/subsystems/http/routes/status.mjs new file mode 100644 index 0000000..55c0b42 --- /dev/null +++ b/src/lib/agent/subsystems/http/routes/status.mjs @@ -0,0 +1,9 @@ +"use strict"; + +export default async function(sys, ctx, _next) { + ctx.send.json(200, { + version: `${sys.version}-${sys.commit.substring(0, 7)}`, + // TODO: Implement a fancier check here + status: sys.listening ? "ok" : "not_listening" + }); +}