Add CLAUDE.md, MkDocs docs, docs page in admin, .claude/rules

- CLAUDE.md: Comprehensive documentation for Compliance SDK platform
- docs-src: AI-Compliance-SDK docs (architecture, developer, auditor, SBOM)
- mkdocs.yml: Compliance-specific nav with purple theme
- docker-compose: Added docs service (port 8011, profile: docs)
- admin-compliance: New /development/docs page with iframe + quick links
- navigation.ts: Added development category with docs module
- .claude/rules: testing, docs, open-source, compliance-checklist

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Benjamin Boenisch
2026-02-12 00:49:28 +01:00
parent 4435e7ea0a
commit c11270f8e0
22 changed files with 4374 additions and 31 deletions

View File

@@ -5,7 +5,7 @@
* Extracted from admin-v2, keeping only compliance-relevant modules.
*/
export type CategoryId = 'compliance-sdk'
export type CategoryId = 'compliance-sdk' | 'development'
export interface NavModule {
id: string
@@ -15,8 +15,8 @@ export interface NavModule {
purpose: string
audience: string[]
gdprArticles?: string[]
oldAdminPath?: string // Reference to old admin for migration
subgroup?: string // Optional subgroup for visual grouping in sidebar
oldAdminPath?: string
subgroup?: string
}
export interface NavCategory {
@@ -51,6 +51,27 @@ export const navigation: NavCategory[] = [
},
],
},
// =========================================================================
// Development - Entwickler-Tools und Dokumentation
// =========================================================================
{
id: 'development',
name: 'Entwicklung',
icon: 'code',
color: '#0ea5e9', // Sky-500
colorClass: 'development',
description: 'Dokumentation & Entwickler-Tools',
modules: [
{
id: 'docs',
name: 'Dokumentation',
href: '/development/docs',
description: 'MkDocs Projekt-Dokumentation',
purpose: 'Technische Dokumentation der Compliance-Plattform mit Architektur, API-Referenz und Entwickler-Guides.',
audience: ['Entwickler', 'Architekten'],
},
],
},
]
// Meta modules (always visible)

View File

@@ -298,9 +298,78 @@ export const CATALOG_REGISTRY: Record<CatalogId, CatalogMeta> = {
{ key: 'id', label: 'ID', type: 'text', required: true },
{ key: 'name', label: 'Name', type: 'text', required: true },
{ key: 'description', label: 'Beschreibung', type: 'textarea', required: true },
{ key: 'serviceCategory', label: 'Kategorie', type: 'text', required: true },
{ key: 'serviceCategory', label: 'Dienstleistungskategorie', type: 'select', required: true, options: [
{ value: 'HOSTING', label: 'Hosting' },
{ value: 'CLOUD_INFRASTRUCTURE', label: 'Cloud-Infrastruktur' },
{ value: 'ANALYTICS', label: 'Analyse' },
{ value: 'CRM', label: 'CRM' },
{ value: 'ERP', label: 'ERP' },
{ value: 'HR_SOFTWARE', label: 'HR-Software' },
{ value: 'PAYMENT', label: 'Zahlungsdienstleister' },
{ value: 'EMAIL', label: 'E-Mail' },
{ value: 'MARKETING', label: 'Marketing' },
{ value: 'SUPPORT', label: 'Support' },
{ value: 'SECURITY', label: 'Sicherheit' },
{ value: 'COMMUNICATION', label: 'Kommunikation' },
{ value: 'STORAGE', label: 'Speicher' },
{ value: 'BACKUP', label: 'Backup' },
{ value: 'CDN', label: 'CDN' },
{ value: 'ACCOUNTING', label: 'Buchhaltung' },
{ value: 'CONSULTING', label: 'Beratung' },
{ value: 'OTHER', label: 'Sonstige' },
]},
{ key: 'suggestedRole', label: 'Vorgeschlagene Rolle', type: 'select', required: false, options: [
{ value: 'PROCESSOR', label: 'Auftragsverarbeiter' },
{ value: 'JOINT_CONTROLLER', label: 'Gemeinsam Verantwortlicher' },
{ value: 'CONTROLLER', label: 'Eigenstaendiger Verantwortlicher' },
{ value: 'SUB_PROCESSOR', label: 'Unterauftragnehmer' },
{ value: 'THIRD_PARTY', label: 'Dritter' },
]},
{ key: 'suggestedDataAccess', label: 'Datenzugriff', type: 'select', required: false, options: [
{ value: 'NONE', label: 'Kein Zugriff' },
{ value: 'POTENTIAL', label: 'Potenzieller Zugriff' },
{ value: 'ADMINISTRATIVE', label: 'Administrativer Zugriff' },
{ value: 'CONTENT', label: 'Inhaltlicher Zugriff' },
]},
{ key: 'suggestedTransferMechanisms', label: 'Transfer-Mechanismen', type: 'multiselect', required: false, options: [
{ value: 'ADEQUACY_DECISION', label: 'Angemessenheitsbeschluss' },
{ value: 'SCC_CONTROLLER', label: 'SCC Controller-to-Controller' },
{ value: 'SCC_PROCESSOR', label: 'SCC Controller-to-Processor' },
{ value: 'BCR', label: 'Binding Corporate Rules' },
{ value: 'DEROGATION_CONSENT', label: 'Einwilligung' },
{ value: 'DEROGATION_CONTRACT', label: 'Vertragserfuellung' },
{ value: 'CERTIFICATION', label: 'Zertifizierung' },
{ value: 'CODE_OF_CONDUCT', label: 'Verhaltensregeln' },
]},
{ key: 'suggestedContractTypes', label: 'Vertragstypen', type: 'multiselect', required: false, options: [
{ value: 'AVV', label: 'AVV (Auftragsverarbeitung)' },
{ value: 'MSA', label: 'MSA (Master Service)' },
{ value: 'SLA', label: 'SLA (Service Level)' },
{ value: 'SCC', label: 'SCC (Standardvertragsklauseln)' },
{ value: 'NDA', label: 'NDA (Geheimhaltung)' },
{ value: 'TOM_ANNEX', label: 'TOM-Anlage' },
{ value: 'CERTIFICATION', label: 'Zertifikat' },
{ value: 'SUB_PROCESSOR_LIST', label: 'Unterauftragnehmer-Liste' },
]},
{ key: 'typicalDataCategories', label: 'Typische Datenkategorien', type: 'multiselect', required: false, options: [
{ value: 'NAME', label: 'Name' },
{ value: 'CONTACT', label: 'Kontaktdaten' },
{ value: 'ADDRESS', label: 'Adressdaten' },
{ value: 'DOB', label: 'Geburtsdatum' },
{ value: 'BANK_ACCOUNT', label: 'Bankverbindung' },
{ value: 'PAYMENT_DATA', label: 'Zahlungsdaten' },
{ value: 'EMPLOYMENT_DATA', label: 'Beschaeftigungsdaten' },
{ value: 'SALARY_DATA', label: 'Gehaltsdaten' },
{ value: 'HEALTH_DATA', label: 'Gesundheitsdaten' },
{ value: 'IP_ADDRESS', label: 'IP-Adresse' },
{ value: 'USAGE_DATA', label: 'Nutzungsdaten' },
{ value: 'LOCATION_DATA', label: 'Standortdaten' },
{ value: 'COMMUNICATION_DATA', label: 'Kommunikationsdaten' },
]},
{ key: 'typicalCertifications', label: 'Typische Zertifizierungen', type: 'tags', required: false, placeholder: 'z.B. ISO 27001, SOC 2, C5' },
{ key: 'commonProviders', label: 'Typische Anbieter', type: 'tags', required: false, placeholder: 'z.B. AWS, Azure, GCP' },
],
searchableFields: ['id', 'name', 'description', 'serviceCategory'],
searchableFields: ['id', 'name', 'description', 'serviceCategory', 'suggestedRole', 'commonProviders'],
},
'country-risk-profiles': {