From d942b21354f412d38c218c06ec28b6f40d5ecb4f Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Fri, 1 May 2026 10:19:56 +0200 Subject: [PATCH] feat: SCC + TIA templates for third-country transfers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit New templates for the Vendor Compliance module: - 105: Transfer Impact Assessment (TIA) — Schrems II risk assessment with country evaluation, government access assessment, supplementary measures, risk matrix, and go/conditional/deny decision - 105: SCC Companion Document — annexes to EU Decision 2021/914 (module selection C2C/C2P/P2P/P2C, party details, data description, TOMs, sub-processor list) Template recommendations: SCC+TIA triggered by tech_third_country answer Generator: New "Drittlandtransfer" category Co-Authored-By: Claude Opus 4.6 (1M context) --- .../app/sdk/document-generator/_constants.ts | 1 + .../templateRecommendations.ts | 20 ++ .../migrations/105_scc_tia_templates.sql | 309 ++++++++++++++++++ 3 files changed, 330 insertions(+) create mode 100644 backend-compliance/migrations/105_scc_tia_templates.sql diff --git a/admin-compliance/app/sdk/document-generator/_constants.ts b/admin-compliance/app/sdk/document-generator/_constants.ts index 1cac223..51f0ece 100644 --- a/admin-compliance/app/sdk/document-generator/_constants.ts +++ b/admin-compliance/app/sdk/document-generator/_constants.ts @@ -37,6 +37,7 @@ export const CATEGORIES: { key: string; label: string; types: string[] | null }[ { key: 'hr_policies', label: 'HR-Richtlinien', types: ['employee_security_policy', 'security_awareness_policy', 'remote_work_policy', 'offboarding_policy'] }, { key: 'data_policies', label: 'Datenrichtlinien', types: ['data_protection_policy', 'data_classification_policy', 'data_retention_policy', 'data_transfer_policy', 'privacy_incident_policy'] }, { key: 'vendor_policies', label: 'Lieferanten', types: ['vendor_risk_management_policy', 'third_party_security_policy', 'supplier_security_policy'] }, + { key: 'third_country', label: 'Drittlandtransfer', types: ['transfer_impact_assessment', 'scc_companion'] }, { key: 'bcm_policies', label: 'BCM/Notfall', types: ['business_continuity_policy', 'disaster_recovery_policy', 'crisis_management_policy'] }, ] diff --git a/admin-compliance/app/sdk/document-generator/templateRecommendations.ts b/admin-compliance/app/sdk/document-generator/templateRecommendations.ts index 2d2ecdc..489820f 100644 --- a/admin-compliance/app/sdk/document-generator/templateRecommendations.ts +++ b/admin-compliance/app/sdk/document-generator/templateRecommendations.ts @@ -213,6 +213,26 @@ const TEMPLATE_RULES: TemplateRule[] = [ condition: () => 'required', // Immer Pflicht bei Websites }, + // ── Drittlandtransfer (SCC + TIA) ─────────────────────────────────────── + { + templateType: 'transfer_impact_assessment', + label: 'Transfer Impact Assessment (TIA)', + condition: (answers) => { + const thirdCountry = answers.get('tech_third_country') + if (thirdCountry && thirdCountry !== 'no') return 'required' + return null + }, + }, + { + templateType: 'scc_companion', + label: 'Standardvertragsklauseln (SCC) — Anhaenge', + condition: (answers) => { + const thirdCountry = answers.get('tech_third_country') + if (thirdCountry && thirdCountry !== 'no') return 'required' + return null + }, + }, + // ── ISMS (nur bei Zertifizierungsziel) ───────────────────────────────── { templateType: 'isms_manual', diff --git a/backend-compliance/migrations/105_scc_tia_templates.sql b/backend-compliance/migrations/105_scc_tia_templates.sql new file mode 100644 index 0000000..1ab0e8f --- /dev/null +++ b/backend-compliance/migrations/105_scc_tia_templates.sql @@ -0,0 +1,309 @@ +-- Migration 105: SCC + TIA Templates +-- Standardvertragsklauseln (EU 2021/914) + Transfer Impact Assessment (Schrems II) +-- Logisch dem Vendor-Compliance-Modul zugeordnet (pro Drittland-Anbieter generiert) + +-- =========================================================================== +-- Template 1: Transfer Impact Assessment (TIA) +-- =========================================================================== +INSERT INTO compliance_legal_templates ( + id, tenant_id, document_type, title, description, content, + placeholders, language, jurisdiction, + license_id, license_name, source_name, + attribution_required, is_complete_document, version, status, + created_at, updated_at +) SELECT gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', + 'transfer_impact_assessment', + 'Transfer Impact Assessment (TIA) — Drittlandtransfer-Risikobewertung', + 'Risikobewertung fuer Datenuebermittlungen in Drittlaender nach EuGH Schrems II (C-311/18) und EDPB Empfehlungen 01/2020. Bewertet Rechtslage im Empfaengerstaat, Zugriffsbefugnisse von Behoerden, ergaenzende Massnahmen.', + $template$# Transfer Impact Assessment (TIA) + +Risikobewertung fuer die Uebermittlung personenbezogener Daten in ein Drittland + +--- + +## Dokumentenkontrolle + +| Feld | Wert | +|------|------| +| Verantwortlicher (Exporteur) | {{COMPANY_NAME}} | +| Datenimporteur | {{RECIPIENT_NAME}} | +| Empfaengerstaat | {{RECIPIENT_COUNTRY}} | +| Transfermechanismus | {{TRANSFER_MECHANISM}} | +| Erstellt von | {{DPO_NAME}} | +| Datum | {{VERSION_DATE}} | +| Version | {{DOCUMENT_VERSION}} | +| Naechste Pruefung | {{NEXT_REVIEW_DATE}} | + +--- + +## 1. Beschreibung der Datenuebermittlung + +### 1.1 Gegenstand und Zweck + +| Aspekt | Beschreibung | +|--------|-------------| +| **Zweck der Uebermittlung** | {{TRANSFER_PURPOSE}} | +| **Art der uebermittelten Daten** | {{DATA_CATEGORIES_TRANSFERRED}} | +| **Betroffene Personengruppen** | {{DATA_SUBJECTS}} | +| **Haeufigkeit der Uebermittlung** | {{TRANSFER_FREQUENCY}} | +| **Rolle des Importeurs** | {{RECIPIENT_ROLE}} | + +### 1.2 Transfermechanismus + +| Mechanismus | Status | +|-------------|:---:| +| Angemessenheitsbeschluss (Art. 45 DSGVO) | {{HAS_ADEQUACY_DECISION}} | +| EU-Standardvertragsklauseln (Art. 46 Abs. 2 lit. c) | {{HAS_SCC}} | +| Binding Corporate Rules (Art. 47) | {{HAS_BCR}} | +| Einwilligung der Betroffenen (Art. 49 Abs. 1 lit. a) | {{HAS_CONSENT_TRANSFER}} | +| EU-US Data Privacy Framework (DPF) | {{HAS_DPF}} | + +--- + +## 2. Bewertung der Rechtslage im Empfaengerstaat + +### 2.1 Allgemeine Datenschutzgesetzgebung + +| Frage | Bewertung | +|-------|-----------| +| Existiert ein umfassendes Datenschutzgesetz? | {{DS_LAW_EXISTS}} | +| Ist eine unabhaengige Datenschutzbehoerde eingerichtet? | {{DS_AUTHORITY_EXISTS}} | +| Sind Betroffenenrechte (Auskunft, Loeschung, etc.) gesetzlich verankert? | {{DS_RIGHTS_EXIST}} | +| Gibt es Sanktionsmechanismen bei Verstoessen? | {{DS_SANCTIONS_EXIST}} | + +### 2.2 Zugriffsbefugnisse staatlicher Behoerden + +| Frage | Bewertung | +|-------|-----------| +| Koennen Behoerden auf die uebermittelten Daten zugreifen? | {{GOV_ACCESS_POSSIBLE}} | +| Ist der Zugriff auf das notwendige Mass beschraenkt (Verhaeltnismaessigkeit)? | {{GOV_ACCESS_PROPORTIONAL}} | +| Unterliegt der Zugriff einer richterlichen Genehmigung? | {{GOV_ACCESS_JUDICIAL}} | +| Gibt es wirksame Rechtsbehelfe fuer Betroffene gegen behoerdlichen Zugriff? | {{GOV_ACCESS_REMEDIES}} | +| Existieren Massenueberwachungsprogramme, die die Daten betreffen koennten? | {{GOV_MASS_SURVEILLANCE}} | + +### 2.3 Gesamtbewertung der Rechtslage + +| Bewertung | Erlaeuterung | +|-----------|-------------| +| {{LEGAL_ASSESSMENT_RESULT}} | {{LEGAL_ASSESSMENT_REASONING}} | + +**Bewertungsskala:** +- **Im Wesentlichen gleichwertig:** Die Rechtslage bietet ein dem EU-Recht im Wesentlichen gleichwertiges Schutzniveau +- **Eingeschraenkt gleichwertig:** Es bestehen Defizite, die durch ergaenzende Massnahmen kompensiert werden koennen +- **Nicht gleichwertig:** Die Rechtslage bietet kein angemessenes Schutzniveau — Uebermittlung nur mit starken ergaenzenden Massnahmen oder gar nicht moeglich + +--- + +## 3. Ergaenzende Massnahmen (Supplementary Measures) + +### 3.1 Technische Massnahmen + +| Massnahme | Implementiert | Details | +|-----------|:---:|---| +| Verschluesselung der Daten bei der Uebermittlung (TLS 1.2+) | {{TM_ENCRYPTION_TRANSIT}} | | +| Verschluesselung der Daten im Ruhezustand (AES-256) | {{TM_ENCRYPTION_REST}} | | +| Pseudonymisierung vor der Uebermittlung | {{TM_PSEUDONYMIZATION}} | | +| Schluessel verbleiben ausschliesslich beim Exporteur | {{TM_KEY_CONTROL}} | | +| Zugriff des Importeurs auf das fuer den Zweck erforderliche Minimum beschraenkt | {{TM_ACCESS_LIMITATION}} | | + +### 3.2 Organisatorische Massnahmen + +| Massnahme | Implementiert | Details | +|-----------|:---:|---| +| Transparenzbericht des Importeurs ueber Behoerdenanfragen | {{OM_TRANSPARENCY_REPORT}} | | +| Verpflichtung zur Benachrichtigung bei Behoerdenzugriff | {{OM_NOTIFICATION}} | | +| Regelmässige Audits beim Importeur | {{OM_AUDITS}} | | +| Dokumentierte Datenschutzschulung beim Importeur | {{OM_TRAINING}} | | + +### 3.3 Vertragliche Massnahmen + +| Massnahme | Implementiert | Details | +|-----------|:---:|---| +| EU-Standardvertragsklauseln (aktueller Durchfuehrungsbeschluss 2021/914) | {{CM_SCC}} | | +| Zusaetzliche vertragliche Garantien ueber SCC hinaus | {{CM_ADDITIONAL_CLAUSES}} | | +| Pflicht des Importeurs, Behoerdenanfragen anzufechten | {{CM_CHALLENGE_OBLIGATION}} | | +| Kuendigungsrecht bei Aenderung der Rechtslage | {{CM_TERMINATION_RIGHT}} | | + +--- + +## 4. Risikobewertung + +### 4.1 Wahrscheinlichkeit eines behoerdlichen Zugriffs + +| Faktor | Bewertung | +|--------|-----------| +| Branche des Importeurs | {{RISK_INDUSTRY}} | +| Art der uebermittelten Daten | {{RISK_DATA_TYPE}} | +| Volumen der uebermittelten Daten | {{RISK_DATA_VOLUME}} | +| Bisherige Erfahrungen des Importeurs mit Behoerdenanfragen | {{RISK_PRIOR_REQUESTS}} | +| **Gesamtwahrscheinlichkeit** | {{RISK_PROBABILITY}} | + +### 4.2 Schwere eines moeglichen Eingriffs + +| Faktor | Bewertung | +|--------|-----------| +| Sensibilitaet der Daten | {{RISK_DATA_SENSITIVITY}} | +| Auswirkungen auf Betroffene bei Zugriff | {{RISK_IMPACT}} | +| **Gesamtschwere** | {{RISK_SEVERITY}} | + +### 4.3 Gesamtrisikobewertung + +| Gesamtrisiko | Bewertung | +|-------------|-----------| +| **{{OVERALL_RISK_LEVEL}}** | {{OVERALL_RISK_REASONING}} | + +--- + +## 5. Ergebnis und Entscheidung + +### 5.1 Fazit + +{{#IF TRANSFER_APPROVED}} +Die Datenuebermittlung an {{RECIPIENT_NAME}} in {{RECIPIENT_COUNTRY}} kann unter Einhaltung der beschriebenen ergaenzenden Massnahmen durchgefuehrt werden. Das Restrisiko wird als **akzeptabel** bewertet. +{{/IF}} + +{{#IF TRANSFER_CONDITIONAL}} +Die Datenuebermittlung ist nur unter der Bedingung zulaessig, dass die in Abschnitt 3 beschriebenen ergaenzenden Massnahmen **vollstaendig** implementiert werden. Vor Beginn der Uebermittlung ist die Implementierung zu bestätigen. +{{/IF}} + +{{#IF TRANSFER_DENIED}} +Die Datenuebermittlung an {{RECIPIENT_NAME}} in {{RECIPIENT_COUNTRY}} kann **nicht** durchgefuehrt werden. Die Rechtslage im Empfaengerstaat bietet kein dem EU-Recht im Wesentlichen gleichwertiges Schutzniveau, und die verfuegbaren ergaenzenden Massnahmen koennen die Defizite nicht ausreichend kompensieren. + +**Empfehlung:** Alternative Verarbeitungsmoeglichkeiten innerhalb der EU/des EWR pruefen. +{{/IF}} + +### 5.2 Ueberpruefungsintervall + +Dieses TIA ist bei wesentlichen Aenderungen der Rechtslage im Empfaengerstaat, spaetestens jedoch alle **12 Monate**, zu ueberpruefen. + +--- + +## 6. Unterschriften + +| Rolle | Name | Datum | +|-------|------|-------| +| Datenschutzbeauftragter | {{DPO_NAME}} | {{VERSION_DATE}} | +| Verantwortlicher | {{GF_NAME}} | | + +--- + +*Erstellt mit BreakPilot Compliance — {{COMPANY_NAME}} | Stand: {{VERSION_DATE}}* +$template$, + '["COMPANY_NAME","RECIPIENT_NAME","RECIPIENT_COUNTRY","TRANSFER_MECHANISM","TRANSFER_PURPOSE","DATA_CATEGORIES_TRANSFERRED","DATA_SUBJECTS","TRANSFER_FREQUENCY","RECIPIENT_ROLE","DPO_NAME","GF_NAME","DOCUMENT_VERSION","VERSION_DATE","NEXT_REVIEW_DATE"]'::jsonb, + 'de', 'DE', 'mit', 'MIT License', 'BreakPilot Compliance', + false, true, '1.0.0', 'published', NOW(), NOW() +WHERE NOT EXISTS (SELECT 1 FROM compliance_legal_templates WHERE document_type = 'transfer_impact_assessment' AND tenant_id = '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e'); + +-- =========================================================================== +-- Template 2: Standardvertragsklauseln (SCC) — Begleitdokument +-- =========================================================================== +INSERT INTO compliance_legal_templates ( + id, tenant_id, document_type, title, description, content, + placeholders, language, jurisdiction, + license_id, license_name, source_name, + attribution_required, is_complete_document, version, status, + created_at, updated_at +) SELECT gen_random_uuid(), '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e', + 'scc_companion', + 'Standardvertragsklauseln (SCC) — Begleitdokument und Anhaenge', + 'Begleitdokument zu den EU-Standardvertragsklauseln (Durchfuehrungsbeschluss 2021/914). Enthaelt die auszufuellenden Anhaenge (Parteien, Beschreibung der Uebermittlung, TOMs) und Modulauswahl (C2C, C2P, P2P, P2C). Der SCC-Kerntext ist EU-vorgegeben und wird nicht geaendert.', + $template$# Standardvertragsklauseln (SCC) — Begleitdokument + +Anhaenge zum Durchfuehrungsbeschluss (EU) 2021/914 der Kommission + +--- + +## Hinweis + +Der Kerntext der Standardvertragsklauseln ist durch den EU-Durchfuehrungsbeschluss 2021/914 vorgegeben und darf **nicht veraendert** werden. Dieses Dokument enthaelt die individuell auszufuellenden **Anhaenge** zu den SCC. + +Den vollstaendigen SCC-Text finden Sie unter: +[EU-Durchfuehrungsbeschluss 2021/914](https://eur-lex.europa.eu/eli/dec_impl/2021/914/oj) + +--- + +## Modulauswahl + +| Modul | Beschreibung | Gewaehlt | +|-------|-------------|:---:| +| **Modul 1** | Verantwortlicher → Verantwortlicher (C2C) | {{SCC_MODULE_1}} | +| **Modul 2** | Verantwortlicher → Auftragsverarbeiter (C2P) | {{SCC_MODULE_2}} | +| **Modul 3** | Auftragsverarbeiter → Auftragsverarbeiter (P2P) | {{SCC_MODULE_3}} | +| **Modul 4** | Auftragsverarbeiter → Verantwortlicher (P2C) | {{SCC_MODULE_4}} | + +--- + +## Anhang I — Verzeichnis der Parteien + +### A. Datenexporteur + +| Feld | Angabe | +|------|--------| +| Name | {{COMPANY_NAME}} | +| Anschrift | {{COMPANY_ADDRESS_FULL}} | +| Kontaktperson | {{DPO_NAME}} | +| E-Mail | {{DPO_EMAIL}} | +| Rolle | {{EXPORTER_ROLE}} | +| Taetigkeiten | {{EXPORTER_ACTIVITIES}} | + +### B. Datenimporteur + +| Feld | Angabe | +|------|--------| +| Name | {{RECIPIENT_NAME}} | +| Anschrift | {{RECIPIENT_ADDRESS}} | +| Kontaktperson | {{RECIPIENT_CONTACT}} | +| E-Mail | {{RECIPIENT_EMAIL}} | +| Rolle | {{RECIPIENT_ROLE}} | +| Taetigkeiten | {{RECIPIENT_ACTIVITIES}} | +| Land | {{RECIPIENT_COUNTRY}} | + +--- + +## Anhang I — Beschreibung der Uebermittlung + +### C. Beschreibung der Uebermittlung + +| Aspekt | Beschreibung | +|--------|-------------| +| **Kategorien betroffener Personen** | {{DATA_SUBJECTS}} | +| **Kategorien personenbezogener Daten** | {{DATA_CATEGORIES_TRANSFERRED}} | +| **Besondere Datenkategorien (Art. 9)** | {{SPECIAL_CATEGORIES}} | +| **Haeufigkeit der Uebermittlung** | {{TRANSFER_FREQUENCY}} | +| **Art der Verarbeitung** | {{PROCESSING_NATURE}} | +| **Zweck der Uebermittlung** | {{TRANSFER_PURPOSE}} | +| **Aufbewahrungsfrist** | {{RETENTION_PERIOD}} | +| **Unterauftragsverarbeiter** | {{SUB_PROCESSORS}} | + +--- + +## Anhang II — Technische und organisatorische Massnahmen + +*Die vom Datenimporteur getroffenen TOMs gemaess Klausel 8.6 (Modul 2) bzw. Klausel 9 (Module 1/3):* + +{{RECIPIENT_TOMS}} + +**Hinweis:** Die detaillierten TOMs des Datenexporteurs sind in der TOM-Dokumentation beschrieben. + +--- + +## Anhang III — Unterauftragsverarbeiter + +*Liste der vom Datenimporteur eingesetzten Unterauftragsverarbeiter (nur bei Modul 2 und 3):* + +{{SUB_PROCESSOR_LIST}} + +--- + +## Verweis auf Transfer Impact Assessment + +Fuer diese Datenuebermittlung wurde ein Transfer Impact Assessment (TIA) durchgefuehrt. Das TIA ist als separates Dokument verfuegbar und bewertet die Rechtslage im Empfaengerstaat sowie die Wirksamkeit der ergaenzenden Massnahmen. + +--- + +*Erstellt mit BreakPilot Compliance — {{COMPANY_NAME}} | Stand: {{VERSION_DATE}}* +$template$, + '["COMPANY_NAME","COMPANY_ADDRESS_FULL","DPO_NAME","DPO_EMAIL","RECIPIENT_NAME","RECIPIENT_ADDRESS","RECIPIENT_CONTACT","RECIPIENT_EMAIL","RECIPIENT_COUNTRY","RECIPIENT_ROLE","RECIPIENT_ACTIVITIES","EXPORTER_ROLE","EXPORTER_ACTIVITIES","DATA_SUBJECTS","DATA_CATEGORIES_TRANSFERRED","SPECIAL_CATEGORIES","TRANSFER_FREQUENCY","PROCESSING_NATURE","TRANSFER_PURPOSE","RETENTION_PERIOD","SUB_PROCESSORS","RECIPIENT_TOMS","SUB_PROCESSOR_LIST","VERSION_DATE","DOCUMENT_VERSION"]'::jsonb, + 'de', 'DE', 'mit', 'MIT License', 'BreakPilot Compliance', + false, true, '1.0.0', 'published', NOW(), NOW() +WHERE NOT EXISTS (SELECT 1 FROM compliance_legal_templates WHERE document_type = 'scc_companion' AND tenant_id = '9282a473-5c95-4b3a-bf78-0ecc0ec71d3e');