372e1fe9e9
CI / detect-changes (push) Successful in 14s
CI / branch-name (push) Has been skipped
CI / guardrail-integrity (push) Has been skipped
CI / secret-scan (push) Has been skipped
CI / dep-audit (push) Has been skipped
CI / sbom-scan (push) Has been skipped
CI / build-sha-integrity (push) Failing after 7s
CI / validate-canonical-controls (push) Successful in 13s
CI / loc-budget (push) Failing after 15s
CI / go-lint (push) Has been skipped
CI / test-go (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / nodejs-build (push) Successful in 2m23s
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 34s
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (push) Has been skipped
Phase 2: Live-Filter an /sdk/master-controls (Use Case, Quell-Regulierung, Verifikations-Methode, Coverage, Primärzweck-Toggle, category via Member-EXISTS). API mit EXISTS-Filtern + gecachten Meta-Counts in master-controls/route.ts. Phase A: neue UseCase telekommunikation + Fix der Impressum-Fehlrouten im Register (TKG/AT-TKG->telekommunikation, telemedien->dse, GewO->handelsrecht); echte Impressum-Quellen (TMG/Mediengesetz) bleiben impressum. Deterministischer Seed aus source_regulation; Tests grün. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
// Display labels for the master-control mapping dimensions (use case +
|
|
// verification method). Keys mirror the backend use_case_registry; an unknown
|
|
// key humanizes gracefully so a newly-seeded use case still renders.
|
|
|
|
export const USE_CASE_LABELS: Record<string, string> = {
|
|
impressum: 'Impressum',
|
|
telekommunikation: 'Telekommunikation (TKG)',
|
|
dse: 'Datenschutzerklärung',
|
|
agb: 'AGB',
|
|
cookie_banner: 'Cookie-Banner',
|
|
widerruf: 'Widerruf',
|
|
dsr: 'Betroffenenrechte (DSR)',
|
|
loeschkonzept: 'Löschkonzept',
|
|
avv: 'Auftragsverarbeitung (AVV)',
|
|
dsfa: 'DSFA',
|
|
code_security: 'Code Security',
|
|
network_security: 'Network Security',
|
|
cra: 'Cyber Resilience Act',
|
|
isms: 'ISMS',
|
|
tisax: 'TISAX',
|
|
kritis: 'KRITIS',
|
|
dora: 'DORA',
|
|
ai_act: 'AI Act',
|
|
mica: 'MiCA',
|
|
mdr: 'Medizinprodukte (MDR)',
|
|
maschinen: 'Maschinenverordnung',
|
|
batterie: 'Batterieverordnung',
|
|
ehds: 'EHDS',
|
|
produktsicherheit: 'Produktsicherheit',
|
|
dsa: 'Digital Services Act',
|
|
dma: 'Digital Markets Act',
|
|
data_governance: 'Data Governance Act',
|
|
zahlungsdienste: 'Zahlungsdienste (PSD2)',
|
|
geldwaesche: 'Geldwäsche (GwG)',
|
|
lieferkette: 'Lieferkettengesetz',
|
|
whistleblowing: 'Whistleblowing',
|
|
barrierefreiheit: 'Barrierefreiheit (BFSG)',
|
|
verbraucherschutz: 'Verbraucherschutz',
|
|
urheberrecht: 'Urheberrecht',
|
|
wettbewerbsrecht: 'Wettbewerbsrecht',
|
|
gleichbehandlung: 'Gleichbehandlung (AGG)',
|
|
steuerrecht: 'Steuerrecht',
|
|
handelsrecht: 'Handelsrecht',
|
|
}
|
|
|
|
export const MC_VERIFICATION_LABELS: Record<string, string> = {
|
|
document: 'Dokument',
|
|
source_code: 'Source Code',
|
|
network: 'Netzwerk/Infra',
|
|
it_process: 'IT-Prozess',
|
|
hybrid: 'Hybrid',
|
|
manual: 'Manuell',
|
|
}
|
|
|
|
function humanize(key: string): string {
|
|
return key.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase())
|
|
}
|
|
|
|
export function useCaseLabel(key: string): string {
|
|
return USE_CASE_LABELS[key] || humanize(key)
|
|
}
|
|
|
|
export function mcVerificationLabel(key: string): string {
|
|
return MC_VERIFICATION_LABELS[key] || humanize(key)
|
|
}
|