'use client' /** * UCCA System Documentation Page (SDK Version) * * Displays architecture documentation, auditor information, * and transparency data for the UCCA compliance system. */ import { useState, useEffect } from 'react' import Link from 'next/link' import { DocTab, Rule, Pattern, Control } from './_components/types' import { OverviewTab } from './_components/OverviewTab' import { ArchitectureTab } from './_components/ArchitectureTab' import { AuditorTab } from './_components/AuditorTab' import { RulesTab } from './_components/RulesTab' import { LegalCorpusTab } from './_components/LegalCorpusTab' const API_BASE = process.env.NEXT_PUBLIC_SDK_API_URL || 'https://macmini:8090' const tabs: { id: DocTab; label: string }[] = [ { id: 'overview', label: 'Uebersicht' }, { id: 'architecture', label: 'Architektur' }, { id: 'auditor', label: 'Fuer Auditoren' }, { id: 'rules', label: 'Regel-Katalog' }, { id: 'legal-corpus', label: 'Legal RAG' }, ] export default function DocumentationPage() { const [activeTab, setActiveTab] = useState('overview') const [rules, setRules] = useState([]) const [patterns, setPatterns] = useState([]) const [controls, setControls] = useState([]) const [policyVersion, setPolicyVersion] = useState('') const [loading, setLoading] = useState(false) useEffect(() => { const fetchData = async () => { setLoading(true) try { const rulesRes = await fetch(`${API_BASE}/sdk/v1/ucca/rules`, { headers: { 'X-Tenant-ID': '00000000-0000-0000-0000-000000000000' } }) if (rulesRes.ok) { const rulesData = await rulesRes.json() setRules(rulesData.rules || []) setPolicyVersion(rulesData.policy_version || '') } const patternsRes = await fetch(`${API_BASE}/sdk/v1/ucca/patterns`, { headers: { 'X-Tenant-ID': '00000000-0000-0000-0000-000000000000' } }) if (patternsRes.ok) { const patternsData = await patternsRes.json() setPatterns(patternsData.patterns || []) } const controlsRes = await fetch(`${API_BASE}/sdk/v1/ucca/controls`, { headers: { 'X-Tenant-ID': '00000000-0000-0000-0000-000000000000' } }) if (controlsRes.ok) { const controlsData = await controlsRes.json() setControls(controlsData.controls || []) } } catch (error) { console.error('Failed to fetch documentation data:', error) } finally { setLoading(false) } } fetchData() }, []) return (

UCCA System-Dokumentation

Transparente Dokumentation des UCCA-Systems fuer Entwickler, Auditoren und Datenschutzbeauftragte.

Zurueck zum Advisory Board
{/* Tab Navigation */}
{tabs.map(tab => ( ))}
{activeTab === 'overview' && } {activeTab === 'architecture' && } {activeTab === 'auditor' && } {activeTab === 'rules' && } {activeTab === 'legal-corpus' && }
) }