diff --git a/backend-compliance/compliance/services/dsi_document_checker.py b/backend-compliance/compliance/services/dsi_document_checker.py index 4a90806..4d96544 100644 --- a/backend-compliance/compliance/services/dsi_document_checker.py +++ b/backend-compliance/compliance/services/dsi_document_checker.py @@ -60,7 +60,12 @@ ART13_CHECKLIST = [ r"rechtsgrundlage", r"art\.\s*6\s*(?:abs|absatz)?\s*\.?\s*1", r"legal\s+basis", r"berechtigtes\s+interesse", r"auf\s+grundlage\s+(?:von|des|der)\s+(?:art|§)", - r"lit\.\s*[a-f]\)", + r"lit\.\s*[a-f][\s\)]", + r"auf\s+(?:der\s+)?grundlage\s+(?:von\s+)?art", + r"gem(?:ae|ä)(?:ss|ß)\s+art", # gemäß Art. + r"(?:verarbeitung|erhebung).*(?:auf\s+grundlage|gem)", + r"§\s*\d+\s+(?:abs|ihkg|bdsg|ldsg|bbig|tdddg)", + r"einwilligung\s+gem", ], "severity": "HIGH", }, @@ -83,6 +88,9 @@ ART13_CHECKLIST = [ r"drittland", r"dritt\s*staat", r"drittl(?:ae|ä)nder", r"third\s+countr", r"angemessenheitsbeschluss", r"standard\s*vertragsklausel", r"scc", + r"(?:ueber|über)mittlung.*(?:ausserhalb|außerhalb)", + r"(?:europ(?:ae|ä)ischen\s+wirtschaftsraum|ewr|eea)", + r"privacy\s+shield", r"data\s+privacy\s+framework", ], "severity": "MEDIUM", }, @@ -91,11 +99,14 @@ ART13_CHECKLIST = [ "label": "Speicherdauer (Art. 13(2)(a))", "patterns": [ r"speicherdauer", r"aufbewahrungsfrist", - r"(?:wie\s+lange|dauer)\s+(?:werden|gespeichert)", + r"(?:wie\s+lange|dauer)\s+(?:der\s+)?(?:werden|gespeicher|speicherung)", r"retention\s+period", r"l(?:oe|ö)sch(?:ung|frist|konzept)", r"wie\s+lange\s+werden\s+die\s+daten\s+aufbewahrt", r"daten\s+werden\s+gel(?:oe|ö)scht", - r"(?:\d+\s+(?:tage|monate|jahre)|nach\s+\d+)", + r"(?:\d+\s+(?:tage|monate|jahre)|nach\s+\d+\s+(?:tag|monat|jahr))", + r"dauer\s+der\s+speicherung", + r"aufbewahrung(?:sdauer|spflicht|szeit)", + r"gesetzliche.*aufbewahrung", ], "severity": "HIGH", }, @@ -120,6 +131,9 @@ ART13_CHECKLIST = [ r"beschwerderecht", r"aufsichtsbeh(?:oe|ö)rde", r"right\s+to\s+lodge\s+a\s+complaint", r"supervisory\s+authority", r"datenschutzbeh(?:oe|ö)rde", + r"recht\s+auf\s+beschwerde", r"art\.\s*77", + r"beschwerde.*(?:wenden|einlegen|erheben)", + r"(?:zuständige|competent)\s+(?:behörde|beh(?:oe|ö)rde|authority)", ], "severity": "MEDIUM", },