Files
Benjamin Admin 57c0f940a2
CI / detect-changes (push) Successful in 11s
CI / branch-name (push) Has been skipped
CI / nodejs-build (push) Successful in 2m19s
CI / test-go (push) Has been skipped
CI / test-python-document-crawler (push) Has been skipped
CI / test-python-dsms-gateway (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 / validate-canonical-controls (push) Successful in 16s
CI / loc-budget (push) Failing after 15s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / iace-gt-coverage (push) Has been skipped
CI / test-python-backend (push) Successful in 37s
feat(consent+report): P56-P67 Mercedes-Audit-Cycle (Anti-Audit, Phase G Vendors, Cookie-Behavior-Validator + 5 Mail-Polish-Items) [migration-approved]
P56  Anti-Auditing-Detection als constructive Compliance-Finding (Audit-API-
     Empfehlung statt Anklage, weil Mercedes berechtigt Bots blockiert)
P57  Phase G vendor_details Union mit cmp_vendors -> 42 Anbieter sichtbar
P58  Anti-Audit-Detection robuster (Script-Domain-Check + Settings-spezifisch)
P59  Cookie-Behavior-Validator (4 Layer, 3-Tier-Severity: MEDIUM=Kategorie-
     Mismatch / HIGH=Zweck-Mismatch / CRITICAL=beide=Vorsatz-Indiz)
     + Open Cookie Database (CC0) als Library-Seed (2264 Cookies)
P59b Cookie-Behavior in Banner-Check verdrahtet + Mail-Block (BUGFIX:
     SessionLocal selbst oeffnen, db war im Background-Task nicht im Scope)

Mail-Polish nach Mercedes-Review:
P63  Banner-Footer-Links auch im wb7-link/role=link erkennen (Shadow-DOM-
     Walker label-based statt nur <a href>)
P64  Re-Access-Severity: MEDIUM statt HIGH, wenn Footer "Einstellungen" oder
     Mercedes-typisch existiert; OEM-Footer-Detection (wb7-footer)
P65  Text-Truncation: Word-Boundary statt Zeichen-Cut (kein "einfa"-Bruch
     mehr in Sofortmassnahmen)
P66  GF-Aktionen: Service-Zweck vs Cookie-Zweck explizit erklaert
     (haeufige Verwechslung Marketing/GF: "Akamai-Beschreibung" != Cookie-
     Zweck pro DSK-OH 2024)
P67  Stirring-Finding mit "Verlust-Framing"-Erklaerung + Alt-vs-Neutral-
     Beispiel, statt nur EDPB-Fachbegriff

Compliance-Advisor FAQ (admin agent-core/soul):
  + CNIL/EDPB Top-Bussgelder (Google 100M, Meta 60M, Amazon 35M)
  + Deutsche Praezedenz (LG Muenchen Google Fonts, EuGH Planet49, BGH I ZR 7/16)
  + 4 Risiko-Pfade (Bussgeld/Abmahnung/Sammelklage/NOYB) + Berechnungs-Methodik

Document-Generator Templates: AGB-DE (142), Impressum (140), Widerrufs-
formular-Anlage (143), DSR-Process-Dedup (139), Cookie-Library (144).

Architektur: doc_action_mappings.py + banner_dom_walkers.py +
cookie_behavior_validator.py + vendor_detail_extractor.py rausgezogen,
um die 500-LOC-Caps in agent_doc_check_report.py und
banner_text_checker.py einzuhalten.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 06:28:25 +02:00

96 lines
3.8 KiB
PL/PgSQL

-- Migration 143: Muster-Widerrufsformular (P45)
--
-- Die Widerrufsbelehrung (doc_type=widerruf) ist da, aber das separate
-- Muster-Widerrufsformular nach Anlage 2 zu Art. 246a §1 Abs. 2 EGBGB
-- fehlte. Das ist eine Pflichtanlage zur Widerrufsbelehrung —
-- ausfuellbares Standard-Formular, das jeder B2C-Anbieter beilegen muss.
BEGIN;
INSERT INTO compliance.compliance_legal_templates (
id, tenant_id, document_type, title, description, content,
placeholders, language, jurisdiction, license_name,
attribution_required, is_complete_document, version, status,
source_name
)
SELECT
gen_random_uuid(),
'9282a473-5c95-4b3a-bf78-0ecc0ec71d3e'::uuid,
'widerrufsformular',
'Muster-Widerrufsformular (Anlage 2 zu Art. 246a §1(2) EGBGB)',
'Standard-Widerrufsformular nach gesetzlicher Vorlage (Anlage 2 zu Art. 246a §1 Abs. 2 EGBGB). Pflicht-Anlage zur Widerrufsbelehrung im B2C-Online-Handel. Ausfuellbares Formular mit allen gesetzlich vorgesehenen Feldern.',
'# Muster-Widerrufsformular
*Wenn Sie den Vertrag widerrufen wollen, dann fuellen Sie bitte dieses Formular aus und senden Sie es zurueck.*
---
**An:**
{{company_legal_name}}
{{company_address}}
{{company_postal}} {{company_city}}
{{company_country}}
Telefax: {{company_fax}}
E-Mail: {{company_email}}
---
Hiermit widerrufe(n) ich/wir (*) den von mir/uns (*) abgeschlossenen Vertrag ueber den Kauf der folgenden Waren (*) / die Erbringung der folgenden Dienstleistung (*):
___________________________________________________________________
___________________________________________________________________
**Bestellt am (*):** _______________________
**Erhalten am (*):** _______________________
**Bestellnummer (falls vorhanden):** _______________________
**Name des/der Verbraucher(s):**
___________________________________________________________________
**Anschrift des/der Verbraucher(s):**
___________________________________________________________________
___________________________________________________________________
**Datum:** _______________________
**Unterschrift des/der Verbraucher(s) (nur bei Mitteilung auf Papier):**
___________________________________________________________________
---
(*) Unzutreffendes streichen.
---
## Hinweise zur Verwendung
- Dieses Formular muss dem Verbraucher **vor Vertragsschluss** zur Verfuegung gestellt werden (§312d Abs. 1 BGB i.V.m. Art. 246a §1 Abs. 2 Nr. 1 EGBGB).
- Der Verbraucher ist **nicht verpflichtet**, dieses Formular zu nutzen — der Widerruf kann formfrei erklaert werden (z.B. per E-Mail, Brief, Fax).
- Bei Online-Vertrieb sollte das Formular ueber einen klar gekennzeichneten Link **direkt von der Widerrufsbelehrung aus erreichbar** sein.
- Bei Bereitstellung einer Online-Widerrufsfunktion (Kuendigungsbutton-aehnlich nach §312k BGB) muss der Anbieter den Eingang unverzueglich auf einem dauerhaften Datentraeger bestaetigen.
## Rechtsgrundlage
- **Art. 246a §1 Abs. 2 Nr. 1 EGBGB**: Pflicht zur Beifuegung des Muster-Widerrufsformulars als Anlage 2.
- **§312g BGB**: Widerrufsrecht des Verbrauchers bei Fernabsatzvertraegen.
- **§355 BGB**: Allgemeine Regelung zum Widerruf, Frist 14 Tage ab Erhalt der Ware.
---
*Anbieter: {{company_legal_name}} - Stand: {{date}}*',
'[{"name":"company_legal_name","label":"Firma","required":true},{"name":"company_address","label":"Anschrift","required":true},{"name":"company_postal","label":"PLZ","required":true},{"name":"company_city","label":"Ort","required":true},{"name":"company_country","label":"Land","required":true},{"name":"company_email","label":"E-Mail","required":true},{"name":"company_fax","label":"Fax (optional)","required":false}]'::jsonb,
'de', 'DE', 'MIT', false, true, '1.0.0', 'published',
'BreakPilot Compliance (Anlage 2 zu Art. 246a §1(2) EGBGB)'
;
COMMIT;