Uecko_ERP/apps/server/src/health.ts

36 lines
1012 B
TypeScript
Raw Normal View History

import { Application, Request, Response } from "express";
import { DateTime } from "luxon";
/**
Registra endpoints de liveness/readiness.
/__health: siempre 200 mientras el proceso esté vivo.
/__ready : 200 si ready=true, 503 en caso contrario.
*/
export function registerHealthRoutes(app: Application, getStatus: () => { ready: boolean }): void {
// Liveness probe: indica que el proceso responde
app.get("/__health", (_req: Request, res: Response) => {
// Información mínima y no sensible
res.status(200).json({
status: "ok",
time: DateTime.now().toISO(),
});
});
// Readiness probe: indica que el servidor está listo para tráfico
app.get("/__ready", (_req: Request, res: Response) => {
const { ready } = getStatus();
if (ready) {
return res.status(200).json({
status: "ready",
time: DateTime.now().toISO(),
});
}
return res.status(503).json({
status: "not_ready",
time: DateTime.now().toISO(),
});
});
}