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';