'use client' import { useEffect, useState } from 'react' // Stufe 1 of the Attribution Renderer (Task #23): the global // "Quellen & Lizenzen" overview. Aggregates all 314k canonical_controls // by their license_rule and shows the source regulations behind each // bucket. Drives the footer link and gives auditors a one-page view of // what licence classes the platform is operating under. type SourceCount = { regulation_id: string regulation_name_de: string | null license_rule: number license_type: string | null attribution: string | null jurisdiction: string | null source_type: string | null n_controls: number } type RuleBucket = { rule: number label_de: string label_en: string attribution_required: boolean render_full_text: boolean total_controls: number distinct_sources: number sources: SourceCount[] } type Overview = { total_controls: number buckets: RuleBucket[] } const RULE_COLOR: Record = { 1: 'border-emerald-200 bg-emerald-50', 2: 'border-amber-200 bg-amber-50', 3: 'border-slate-200 bg-slate-50', } const RULE_BADGE: Record = { 1: 'bg-emerald-600 text-white', 2: 'bg-amber-600 text-white', 3: 'bg-slate-600 text-white', } export default function LicensesPage() { const [data, setData] = useState(null) const [error, setError] = useState(null) useEffect(() => { fetch('/api/sdk/v1/compliance/licenses/overview') .then((r) => (r.ok ? r.json() : Promise.reject(`HTTP ${r.status}`))) .then(setData) .catch((e) => setError(String(e))) }, []) if (error) { return (

Quellen & Lizenzen

Fehler beim Laden: {error}

) } if (!data) { return (

Quellen & Lizenzen

Lade …

) } return (

Quellen & Lizenzen

Diese Plattform stützt sich auf {data.total_controls.toLocaleString('de-DE')}{' '} klassifizierte Compliance-Controls aus den unten genannten Quellen. Jeder Control trägt eine deterministische Lizenzregel (R1–R3), die das Render-Verhalten in Berichten und im Frontend steuert.

Klassifizierungs-Schema

{data.buckets.map((b) => (
R{b.rule} {b.label_de}
  • {b.total_controls.toLocaleString('de-DE')} Controls
  • {b.distinct_sources} Quellen
  • {b.render_full_text ? 'Volltext-Anzeige erlaubt' : 'Nur Identifier-Verweis'}
  • {b.attribution_required ? 'Attribution-Pflicht in Output' : 'keine Attribution-Pflicht'}
))}
{data.buckets.map((b) => (

R{b.rule} {b.label_de}{' '} ({b.total_controls.toLocaleString('de-DE')} Controls aus {b.distinct_sources} Quellen)

{b.sources.map((s) => ( ))}
Quelle Lizenztyp Rechtsraum Attribution Controls
{s.regulation_name_de ?? s.regulation_id} {s.license_type ?? '—'} {s.jurisdiction ?? '—'} {s.attribution ?? '—'} {s.n_controls.toLocaleString('de-DE')}
))}
) }