feat: 2.0.0-alpha.11 — DB-backed service registry + LAN auto-discovery
- monitored_services table (mig 015) replaces config/services.json (now a boot seed) - owner CRUD over /api/health/services; GET is DB-backed; cron+worker read the DB - discover.lan worker: pure-Node TCP sweep + HTTP-title probe -> disabled 'discovered' candidates (never clobbers curated entries); POST /api/health/discover + GET .../discovered - dashboard: Scan button + Discovered(N) section with one-click promote Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -2,9 +2,9 @@ import cron from 'node-cron';
|
||||
import { runSync } from './sync_source_docs.js';
|
||||
import { log } from '../log.js';
|
||||
import { enqueue } from '../jobs/queue.js';
|
||||
import { load } from '../health/registry.js';
|
||||
import { checkAll } from '../health/checker.js';
|
||||
import * as statusRepo from '../db/repos/service_status.js';
|
||||
import * as services from '../db/repos/monitored_services.js';
|
||||
|
||||
export function startCron() {
|
||||
// Daily at 03:00 local time
|
||||
@@ -29,7 +29,7 @@ export function startCron() {
|
||||
// Keep the two in sync — both rely on lib/health/checker.js as the source of truth.
|
||||
cron.schedule('*/1 * * * *', async () => {
|
||||
try {
|
||||
const results = await checkAll(load());
|
||||
const results = await checkAll(await services.listEnabled());
|
||||
for (const r of results) await statusRepo.upsert(r);
|
||||
log.info({ n: results.length }, 'health check complete');
|
||||
} catch (e) { log.error({ err: e }, 'health check failed'); }
|
||||
|
||||
Reference in New Issue
Block a user