From d1f2587cc3bc6442b5bb8017bc8f1b51f049089f Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Fri, 20 Mar 2026 19:12:27 -0700 Subject: [PATCH] feat(backend): add /diagnostics/flags + /diagnostics/telemetry routes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - GET /api/diagnostics/flags — returns all feature flags - GET /api/diagnostics/telemetry — returns buffered telemetry events - POST /api/diagnostics/telemetry/flush — flush telemetry buffer - No auth required (diagnostics endpoints) --- backend/src/server.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/backend/src/server.ts b/backend/src/server.ts index 7a3ab84..4f75324 100644 --- a/backend/src/server.ts +++ b/backend/src/server.ts @@ -15,6 +15,8 @@ import { webhookRoutes } from './modules/webhooks/routes.js'; import { initCosmosIfNeeded } from './lib/cosmos-init.js'; import { initDatastore } from './lib/datastore.js'; import { config } from './lib/config.js'; +import { getAllFlags } from './lib/feature-flags.js'; +import { getBufferedEvents, flushEvents } from './lib/telemetry.js'; import { jwtVerify } from 'jose'; import type { JwtPayload } from './lib/request-context.js'; @@ -50,4 +52,9 @@ await app.register(householdRoutes, { prefix: '/api' }); await app.register(sharedTimerRoutes, { prefix: '/api' }); await app.register(webhookRoutes, { prefix: '/api' }); +// ── Diagnostics routes (no auth) ──────────────────────────────── +app.get('/api/diagnostics/flags', async () => getAllFlags()); +app.get('/api/diagnostics/telemetry', async () => ({ events: getBufferedEvents() })); +app.post('/api/diagnostics/telemetry/flush', async () => ({ flushed: flushEvents().length })); + await startService(app, { port: config.PORT, host: config.HOST });