Split loader.ts (3163 LOC) into categories/ subdir (8 files, each <500 LOC): - access.ts (ACCESS_CONTROL + ADMISSION_CONTROL + ACCESS_AUTHORIZATION) - transfer-input.ts (TRANSFER_CONTROL + INPUT_CONTROL) - order-availability.ts (ORDER_CONTROL + AVAILABILITY) - separation-encryption.ts (SEPARATION incl. DL-* + ENCRYPTION) - pseudonymization.ts (PSEUDONYMIZATION) - resilience-recovery.ts (RESILIENCE + RECOVERY) - review.ts (REVIEW + training/TR-* controls) - category-map.ts (category metadata Map) Split controls-library.ts (943 LOC) into domain files: - transfer-audit.ts (TRANSFER + AUDIT) - deletion-incident.ts (DELETION + INCIDENT) - subprocessor-tom.ts (SUBPROCESSOR + TOM) - contract-data-subject.ts (CONTRACT + DATA_SUBJECT) - security-governance.ts (SECURITY + GOVERNANCE) Both barrel files preserved their full public API. No consumer imports changed. Zero new TypeScript errors introduced (305 pre-existing errors unchanged). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
127 lines
3.5 KiB
TypeScript
127 lines
3.5 KiB
TypeScript
/**
|
|
* Security and Governance Controls
|
|
* Domains: SECURITY, GOVERNANCE
|
|
*/
|
|
|
|
import { Control } from '../types'
|
|
|
|
export const SECURITY_CONTROLS: Control[] = [
|
|
{
|
|
id: 'VND-SEC-01',
|
|
domain: 'SECURITY',
|
|
title: {
|
|
de: 'Sicherheitsbewertung',
|
|
en: 'Security assessment',
|
|
},
|
|
description: {
|
|
de: 'Regelmäßige Sicherheitsbewertung des Vendors',
|
|
en: 'Regular security assessment of the vendor',
|
|
},
|
|
passCriteria: {
|
|
de: 'Sicherheitsfragebogen ausgefüllt, keine kritischen Lücken',
|
|
en: 'Security questionnaire completed, no critical gaps',
|
|
},
|
|
requirements: ['Art. 32 DSGVO', 'ISO 27001 A.15.2.1'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-SEC-02',
|
|
domain: 'SECURITY',
|
|
title: {
|
|
de: 'Vulnerability Management',
|
|
en: 'Vulnerability management',
|
|
},
|
|
description: {
|
|
de: 'Etabliertes Vulnerability Management beim Vendor',
|
|
en: 'Established vulnerability management at the vendor',
|
|
},
|
|
passCriteria: {
|
|
de: 'Regelmäßige Schwachstellen-Scans, Patch-Management dokumentiert',
|
|
en: 'Regular vulnerability scans, patch management documented',
|
|
},
|
|
requirements: ['ISO 27001 A.12.6'],
|
|
isRequired: false,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-SEC-03',
|
|
domain: 'SECURITY',
|
|
title: {
|
|
de: 'Mitarbeiter-Schulung',
|
|
en: 'Employee training',
|
|
},
|
|
description: {
|
|
de: 'Datenschutz-Schulung für Mitarbeiter des Vendors',
|
|
en: 'Data protection training for vendor employees',
|
|
},
|
|
passCriteria: {
|
|
de: 'Regelmäßige Schulungen (mind. jährlich), Nachweis verfügbar',
|
|
en: 'Regular training (at least annually), proof available',
|
|
},
|
|
requirements: ['Art. 39 Abs. 1 lit. b DSGVO'],
|
|
isRequired: false,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
]
|
|
|
|
export const GOVERNANCE_CONTROLS: Control[] = [
|
|
{
|
|
id: 'VND-GOV-01',
|
|
domain: 'GOVERNANCE',
|
|
title: {
|
|
de: 'Datenschutzbeauftragter benannt',
|
|
en: 'Data protection officer appointed',
|
|
},
|
|
description: {
|
|
de: 'Vendor hat DSB benannt (wenn erforderlich)',
|
|
en: 'Vendor has appointed DPO (if required)',
|
|
},
|
|
passCriteria: {
|
|
de: 'DSB benannt und Kontaktdaten verfügbar',
|
|
en: 'DPO appointed and contact details available',
|
|
},
|
|
requirements: ['Art. 37 DSGVO'],
|
|
isRequired: false,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-GOV-02',
|
|
domain: 'GOVERNANCE',
|
|
title: {
|
|
de: 'Verzeichnis der Verarbeitungstätigkeiten',
|
|
en: 'Records of processing activities',
|
|
},
|
|
description: {
|
|
de: 'Vendor führt eigenes Verarbeitungsverzeichnis',
|
|
en: 'Vendor maintains own processing records',
|
|
},
|
|
passCriteria: {
|
|
de: 'Verzeichnis nach Art. 30 Abs. 2 DSGVO vorhanden',
|
|
en: 'Records according to Art. 30(2) GDPR available',
|
|
},
|
|
requirements: ['Art. 30 Abs. 2 DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-GOV-03',
|
|
domain: 'GOVERNANCE',
|
|
title: {
|
|
de: 'Unterstützung bei DSFA',
|
|
en: 'Support for DPIA',
|
|
},
|
|
description: {
|
|
de: 'Vendor unterstützt bei Datenschutz-Folgenabschätzung',
|
|
en: 'Vendor supports data protection impact assessment',
|
|
},
|
|
passCriteria: {
|
|
de: 'Unterstützungspflicht bei DSFA vertraglich vereinbart',
|
|
en: 'Support obligation for DPIA contractually agreed',
|
|
},
|
|
requirements: ['Art. 28 Abs. 3 lit. f DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
]
|