Files
breakpilot-compliance/admin-compliance/app/api/sdk/v1/maximizer/[[...path]]/route.ts
Benjamin Admin 1ac716261c
Some checks failed
Build + Deploy / build-admin-compliance (push) Successful in 1m45s
Build + Deploy / build-backend-compliance (push) Successful in 4m42s
Build + Deploy / build-ai-sdk (push) Successful in 46s
Build + Deploy / build-developer-portal (push) Successful in 1m6s
Build + Deploy / build-tts (push) Successful in 1m14s
Build + Deploy / build-document-crawler (push) Successful in 31s
Build + Deploy / build-dsms-gateway (push) Successful in 24s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / loc-budget (push) Failing after 15s
CI / secret-scan (push) Has been skipped
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 2m27s
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / test-go (push) Failing after 37s
CI / test-python-backend (push) Successful in 42s
CI / test-python-document-crawler (push) Successful in 25s
CI / test-python-dsms-gateway (push) Successful in 23s
CI / validate-canonical-controls (push) Successful in 18s
Build + Deploy / trigger-orca (push) Successful in 4m35s
feat: Compliance Maximizer — Regulatory Optimization Engine
Neues Modul das den regulatorischen Spielraum fuer KI-Use-Cases
deterministisch berechnet und optimale Konfigurationen vorschlaegt.

Kernfeatures:
- 13-Dimensionen Constraint-Space (DSGVO + AI Act)
- 3-Zonen-Analyse: Verboten / Eingeschraenkt / Erlaubt
- Deterministische Optimizer-Engine (kein LLM im Kern)
- 28 Constraint-Regeln aus DSGVO, AI Act, EDPB Guidelines
- 28 Tests (Golden Suite + Meta-Tests)
- REST API: /sdk/v1/maximizer/* (9 Endpoints)
- Frontend: 3-Zonen-Visualisierung, Dimension-Form, Score-Gauges

[migration-approved]

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-23 09:10:20 +02:00

53 lines
2.0 KiB
TypeScript

import { NextRequest, NextResponse } from 'next/server'
const SDK_URL = process.env.SDK_URL || 'http://ai-compliance-sdk:8090'
function buildUrl(request: NextRequest, params: { path?: string[] }) {
const subPath = params.path?.join('/') || ''
const { searchParams } = new URL(request.url)
const qs = searchParams.toString()
return `${SDK_URL}/sdk/v1/maximizer/${subPath}${qs ? `?${qs}` : ''}`
}
function forwardHeaders(request: NextRequest): Record<string, string> {
const headers: Record<string, string> = { 'Content-Type': 'application/json' }
const tenantId = request.headers.get('X-Tenant-ID')
if (tenantId) headers['X-Tenant-ID'] = tenantId
const userId = request.headers.get('X-User-ID')
if (userId) headers['X-User-ID'] = userId
return headers
}
async function proxy(request: NextRequest, params: { path?: string[] }, method: string) {
try {
const url = buildUrl(request, params)
const init: RequestInit = { method, headers: forwardHeaders(request) }
if (method !== 'GET' && method !== 'DELETE') {
init.body = await request.text()
}
const response = await fetch(url, init)
if (!response.ok) {
const errorText = await response.text()
return NextResponse.json({ error: 'Maximizer backend error', details: errorText }, { status: response.status })
}
if (response.status === 204) return new NextResponse(null, { status: 204 })
const data = await response.json()
return NextResponse.json(data)
} catch (error) {
console.error('Maximizer proxy error:', error)
return NextResponse.json({ error: 'Failed to connect to Maximizer backend' }, { status: 503 })
}
}
export async function GET(request: NextRequest, { params }: { params: { path?: string[] } }) {
return proxy(request, params, 'GET')
}
export async function POST(request: NextRequest, { params }: { params: { path?: string[] } }) {
return proxy(request, params, 'POST')
}
export async function DELETE(request: NextRequest, { params }: { params: { path?: string[] } }) {
return proxy(request, params, 'DELETE')
}