/** * Middleware Admin API Proxy - Base route * GET /api/admin/middleware -> GET all middleware configs * Forwards authentication cookies for session-based auth */ import { NextRequest, NextResponse } from 'next/server' const BACKEND_URL = process.env.BACKEND_URL || 'http://localhost:8000' function getForwardHeaders(request: NextRequest): HeadersInit { const headers: HeadersInit = { 'Content-Type': 'application/json', } // Forward cookie for session auth const cookie = request.headers.get('cookie') if (cookie) { headers['Cookie'] = cookie } // Forward authorization header if present const auth = request.headers.get('authorization') if (auth) { headers['Authorization'] = auth } return headers } export async function GET(request: NextRequest) { const searchParams = request.nextUrl.searchParams.toString() const url = `${BACKEND_URL}/api/admin/middleware${searchParams ? `?${searchParams}` : ''}` try { const response = await fetch(url, { method: 'GET', headers: getForwardHeaders(request), signal: AbortSignal.timeout(30000) }) if (!response.ok) { const errorText = await response.text() return NextResponse.json( { error: `Backend Error: ${response.status}`, details: errorText }, { status: response.status } ) } const data = await response.json() return NextResponse.json(data) } catch (error) { console.error('Middleware API proxy error:', error) return NextResponse.json( { error: 'Verbindung zum Backend fehlgeschlagen' }, { status: 503 } ) } }