import { NextResponse } from "next/server"; import { Role } from "@prisma/client"; import { requireAuth } from "../../../../lib/jwt"; import { fetchDbStatus, fetchHetznerServers, fetchKubernetesStatus, } from "../../../../lib/monitoring"; export async function GET(req: Request) { try { const auth = await requireAuth(req); if (auth.role !== Role.ADMIN) { return NextResponse.json({ error: "Forbidden" }, { status: 403 }); } const [hetzner, k8s, db] = await Promise.all([ fetchHetznerServers(), fetchKubernetesStatus(), fetchDbStatus(), ]); return NextResponse.json({ hetzner, k8s, db }); } catch (error) { if (String(error).includes("Unauthorized")) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } console.error("Monitoring endpoint error", error); return NextResponse.json( { error: "Failed to load monitoring data" }, { status: 500 }, ); } } export const dynamic = "force-dynamic";