'use client' import { useState, useEffect } from 'react' import { FileText, Shield } from 'lucide-react' import Link from 'next/link' import { PROVENANCE_SECTIONS } from './_components/provenance-data' import { MarkdownRenderer } from './_components/ProvenanceHelpers' import { LicenseMatrix } from './_components/LicenseMatrix' import { SourceRegistry } from './_components/SourceRegistry' interface LicenseInfo { license_id: string name: string terms_url: string | null commercial_use: string ai_training_restriction: string | null tdm_allowed_under_44b: string | null deletion_required: boolean notes: string | null } interface SourceInfo { source_id: string title: string publisher: string url: string | null version_label: string | null language: string license_id: string license_name: string commercial_use: string allowed_analysis: boolean allowed_store_excerpt: boolean allowed_ship_embeddings: boolean allowed_ship_in_product: boolean vault_retention_days: number vault_access_tier: string } export default function ControlProvenancePage() { const [licenses, setLicenses] = useState([]) const [sources, setSources] = useState([]) const [activeSection, setActiveSection] = useState('methodology') const [loading, setLoading] = useState(true) useEffect(() => { async function load() { try { const [licRes, srcRes] = await Promise.all([ fetch('/api/sdk/v1/canonical?endpoint=licenses'), fetch('/api/sdk/v1/canonical?endpoint=sources'), ]) if (licRes.ok) setLicenses(await licRes.json()) if (srcRes.ok) setSources(await srcRes.json()) } catch { // silently continue — static content still shown } finally { setLoading(false) } } load() }, []) const currentSection = PROVENANCE_SECTIONS.find(s => s.id === activeSection) return (
{/* Header */}

Control Provenance Wiki

Dokumentation der unabhaengigen Herkunft aller Security Controls — rechtssicherer Nachweis

Zur Control Library
{/* Left: Navigation */}

Dokumentation

{PROVENANCE_SECTIONS.map(section => ( ))}

Live-Daten

{['license-matrix', 'source-registry'].map(id => ( ))}
{/* Right: Content */}
{currentSection && (

{currentSection.title}

)} {activeSection === 'license-matrix' && ( )} {activeSection === 'source-registry' && ( )}
) }