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>
165 lines
4.8 KiB
TypeScript
165 lines
4.8 KiB
TypeScript
/**
|
|
* Deletion and Incident Controls
|
|
* Domains: DELETION, INCIDENT
|
|
*/
|
|
|
|
import { Control } from '../types'
|
|
|
|
export const DELETION_CONTROLS: Control[] = [
|
|
{
|
|
id: 'VND-DEL-01',
|
|
domain: 'DELETION',
|
|
title: {
|
|
de: 'Löschung/Rückgabe nach Vertragsende',
|
|
en: 'Deletion/return after contract end',
|
|
},
|
|
description: {
|
|
de: 'Klare Regelung zur Löschung oder Rückgabe aller Daten nach Vertragsende',
|
|
en: 'Clear provision for deletion or return of all data after contract end',
|
|
},
|
|
passCriteria: {
|
|
de: 'Löschfrist max. 30 Tage, Löschbestätigung vorgesehen',
|
|
en: 'Deletion within max 30 days, deletion confirmation provided',
|
|
},
|
|
requirements: ['Art. 28 Abs. 3 lit. g DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-DEL-02',
|
|
domain: 'DELETION',
|
|
title: {
|
|
de: 'Löschbestätigung',
|
|
en: 'Deletion confirmation',
|
|
},
|
|
description: {
|
|
de: 'Schriftliche Bestätigung der vollständigen Datenlöschung',
|
|
en: 'Written confirmation of complete data deletion',
|
|
},
|
|
passCriteria: {
|
|
de: 'Löschbestätigung vertraglich vereinbart und einforderbar',
|
|
en: 'Deletion confirmation contractually agreed and enforceable',
|
|
},
|
|
requirements: ['Art. 28 Abs. 3 lit. g DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-DEL-03',
|
|
domain: 'DELETION',
|
|
title: {
|
|
de: 'Löschung bei Unterauftragnehmern',
|
|
en: 'Deletion at sub-processors',
|
|
},
|
|
description: {
|
|
de: 'Löschpflicht erstreckt sich auf alle Unterauftragnehmer',
|
|
en: 'Deletion obligation extends to all sub-processors',
|
|
},
|
|
passCriteria: {
|
|
de: 'Weitergabe der Löschpflicht an Unterauftragnehmer vertraglich vereinbart',
|
|
en: 'Transfer of deletion obligation to sub-processors contractually agreed',
|
|
},
|
|
requirements: ['Art. 28 Abs. 3 lit. g, d DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-DEL-04',
|
|
domain: 'DELETION',
|
|
title: {
|
|
de: 'Backup-Löschung',
|
|
en: 'Backup deletion',
|
|
},
|
|
description: {
|
|
de: 'Daten werden auch aus Backups gelöscht',
|
|
en: 'Data is also deleted from backups',
|
|
},
|
|
passCriteria: {
|
|
de: 'Backup-Löschung geregelt, max. Aufbewahrungsfrist für Backups definiert',
|
|
en: 'Backup deletion regulated, max retention period for backups defined',
|
|
},
|
|
requirements: ['Art. 28 Abs. 3 lit. g DSGVO'],
|
|
isRequired: false,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
]
|
|
|
|
export const INCIDENT_CONTROLS: Control[] = [
|
|
{
|
|
id: 'VND-INC-01',
|
|
domain: 'INCIDENT',
|
|
title: {
|
|
de: 'Meldepflicht bei Datenpannen',
|
|
en: 'Data breach notification obligation',
|
|
},
|
|
description: {
|
|
de: 'Unverzügliche Meldung von Datenschutzverletzungen',
|
|
en: 'Immediate notification of data protection violations',
|
|
},
|
|
passCriteria: {
|
|
de: 'Meldepflicht vereinbart, Frist max. 24-48h, Mindestinhalte definiert',
|
|
en: 'Notification obligation agreed, deadline max 24-48h, minimum content defined',
|
|
},
|
|
requirements: ['Art. 33 Abs. 2 DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-INC-02',
|
|
domain: 'INCIDENT',
|
|
title: {
|
|
de: 'Incident Response Plan',
|
|
en: 'Incident Response Plan',
|
|
},
|
|
description: {
|
|
de: 'Vendor hat dokumentierten Incident Response Plan',
|
|
en: 'Vendor has documented incident response plan',
|
|
},
|
|
passCriteria: {
|
|
de: 'Incident Response Plan liegt vor und wurde getestet',
|
|
en: 'Incident response plan exists and has been tested',
|
|
},
|
|
requirements: ['ISO 27001 A.16.1'],
|
|
isRequired: false,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
{
|
|
id: 'VND-INC-03',
|
|
domain: 'INCIDENT',
|
|
title: {
|
|
de: 'Kontaktstelle für Incidents',
|
|
en: 'Contact point for incidents',
|
|
},
|
|
description: {
|
|
de: 'Definierte Kontaktstelle für Datenschutzvorfälle',
|
|
en: 'Defined contact point for data protection incidents',
|
|
},
|
|
passCriteria: {
|
|
de: 'Kontaktdaten für Incident-Meldungen bekannt und aktuell',
|
|
en: 'Contact details for incident reporting known and current',
|
|
},
|
|
requirements: ['Art. 33 Abs. 2 DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'QUARTERLY',
|
|
},
|
|
{
|
|
id: 'VND-INC-04',
|
|
domain: 'INCIDENT',
|
|
title: {
|
|
de: 'Unterstützung bei Incident-Dokumentation',
|
|
en: 'Support with incident documentation',
|
|
},
|
|
description: {
|
|
de: 'Vendor unterstützt bei der Dokumentation von Vorfällen',
|
|
en: 'Vendor supports documentation of incidents',
|
|
},
|
|
passCriteria: {
|
|
de: 'Unterstützungspflicht bei Dokumentation vertraglich vereinbart',
|
|
en: 'Support obligation for documentation contractually agreed',
|
|
},
|
|
requirements: ['Art. 33 Abs. 5 DSGVO'],
|
|
isRequired: true,
|
|
defaultFrequency: 'ANNUAL',
|
|
},
|
|
]
|