1import { NextResponse } from "next/server"; 2 3// Liveness — always 200. No dependency probes (a liveness probe must never 4// fail on a downstream dep). Unauthenticated by design (documented exception 5// to the Phase 1 global guard); exposes only app name/version. 6// TASK-0009 item 4: web → `apps/web/src/app/api/v1/health/route.ts`. 7 8const APP = "factory-web"; 9const VERSION = "0.1.0"; 10const startedAt = Date.now(); 11 12export const dynamic = "force-dynamic"; 13 14export function GET() { 15 return NextResponse.json({ 16 status: "ok", 17 app: APP, 18 version: VERSION, 19 uptimeSeconds: Math.round((Date.now() - startedAt) / 1000), 20 timestamp: new Date().toISOString() 21 }); 22} 23