Persist configurable connectivity diagnostics
Build and Deploy Gateway / build-and-push (push) Successful in 21s
Build and Deploy Gateway / deploy (push) Successful in 14s

This commit is contained in:
2026-08-19 13:38:19 +03:00
parent df865fbe3d
commit 416b2b294a
22 changed files with 407 additions and 131 deletions
@@ -4,8 +4,9 @@ import type { ConnectivityDiagnosticsUseCase } from '../../features/diagnostics/
import { sendJson } from '../response.js';
interface ConnectivityDiagnosticsRouteDependencies {
diagnostics: Pick<ConnectivityDiagnosticsUseCase, 'run'>;
diagnostics: Pick<ConnectivityDiagnosticsUseCase, 'run' | 'updateSettings'>;
readBody(req: IncomingMessage): Promise<Record<string, unknown>>;
sendState(res: ServerResponse): Promise<void>;
}
export function createConnectivityDiagnosticsRoute(
@@ -13,11 +14,19 @@ export function createConnectivityDiagnosticsRoute(
) {
return {
async handle(req: IncomingMessage, res: ServerResponse) {
if (req.method !== 'POST' || req.url !== '/api/diagnostics/connectivity') return false;
const { services = [], target = null } = await dependencies.readBody(req);
const result = await dependencies.diagnostics.run(services, target);
sendJson(res, 200, result);
return true;
if (req.url === '/api/diagnostics/connectivity' && req.method === 'POST') {
const { target = null } = await dependencies.readBody(req);
const result = await dependencies.diagnostics.run(target);
sendJson(res, 200, result);
return true;
}
if (req.url === '/api/diagnostics/settings' && req.method === 'PUT') {
const { settings, expectedRevision } = await dependencies.readBody(req);
dependencies.diagnostics.updateSettings(settings, expectedRevision);
await dependencies.sendState(res);
return true;
}
return false;
},
};
}