-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathellmos-module.json
More file actions
111 lines (101 loc) · 3.57 KB
/
Copy pathellmos-module.json
File metadata and controls
111 lines (101 loc) · 3.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
{
"$schema": "ellmos-module-v1",
"name": "anonymizer",
"display_name": "Anonymizer",
"version": "0.3.0",
"kind": "standalone-module",
"visibility": "public",
"repository": "https://github.com/ellmos-ai/anonymizer",
"description": "Fail-closed Pseudonymisierung personenbezogener Dokumente (Text, DOCX, PDF, XLSX) mit lokaler authentifiziert verschlüsselter Schlüsselspeicherung.",
"origin": {
"source": "BACH hub/_services/document/anonymizer_service.py v1.2.0",
"extracted": "2026-06-27",
"neutralization": "BACH-Pfadbezüge entfernt (bach_paths, BACH/keys, BACH-Whitelist-Pfad); ENV-Override-Mechanismus eingeführt (ANONYMIZER_HOME, ANONYMIZER_KEYS_DIR)"
},
"authors": ["ellmos", "BACH Contributors"],
"license": "MIT",
"privacy": {
"level": "public-code-sensitive-data",
"client_data": true,
"note": "Der Modulcode ist öffentlich (MIT). Die damit verarbeiteten Daten sind klientenbezogen und dürfen nicht veröffentlicht werden; keys/ und *.enc sind aus VCS ausgeschlossen."
},
"capabilities": [
"anonymize-text",
"anonymize-docx",
"anonymize-pdf",
"anonymize-excel",
"anonymize-filename",
"deanonymize",
"authenticated-key-storage",
"tarnname-generator",
"gender-detection",
"sensitive-data-scanner"
],
"required_dependencies": {
"cryptography": "Fernet-authentifizierte Schlüsselverschlüsselung mit PBKDF2-HMAC-SHA256",
"defusedxml": "gehärtetes OOXML-Parsing (DOCX/XLSX) gegen XML-Entity-Angriffe"
},
"optional_dependencies": {
"python-docx": {
"purpose": "Word-Dokument-Anonymisierung",
"license": "MIT",
"extra": "docx"
},
"pypdf": {
"purpose": "PDF-Scan (Erkennung sensibler Daten)",
"license": "BSD-3-Clause",
"extra": "pdf"
},
"pikepdf": {
"purpose": "PDF-AES-256-Verschlüsselung",
"license": "MPL-2.0",
"extra": "pdf"
},
"openpyxl": {
"purpose": "Excel-Anonymisierung",
"license": "MIT",
"extra": "excel"
},
"PyMuPDF": {
"purpose": "PDF-Schwärzung (Content-Stream-Redaktion, _anonymize_pdf)",
"license": "AGPL-3.0",
"extra": "pdf-redact",
"note": "Bewusst NICHT Teil von 'pdf' oder 'all' (Entscheidung E08, 2026-08-18). Wer diese Funktion braucht, installiert das Extra ausdruecklich und bindet sich damit an die AGPL fuer diese eine Funktion, nicht implizit fuers ganze Modul. Siehe README, Abschnitt 'PDF-Schwaerzung: Lizenzgrenze'."
}
},
"entrypoints": {
"main": "anonymizer_modul.core",
"cli": "anonymizer_modul.core:main",
"class_anonymizer": "anonymizer_modul.core.DocumentAnonymizer",
"class_deanonymizer": "anonymizer_modul.core.DocumentDeanonymizer"
},
"storage": {
"keys": {
"env": "ANONYMIZER_KEYS_DIR",
"default_windows": "%LOCALAPPDATA%\\anonymizer\\keys",
"default_unix": "~/.local/share/anonymizer/keys",
"note": "Schlüssel (.schluessel.enc) dürfen NICHT in OneDrive sein"
},
"output": {
"env": "ANONYMIZER_HOME",
"default": "~/.anonymizer",
"note": "Anonymisierte Klienten-Ausgabe"
},
"whitelist": {
"path": "${ANONYMIZER_HOME}/anonymizer_whitelist.json",
"required": false
}
},
"boundaries": {
"no_bach_imports": true,
"no_cloud_sync_for_keys": true,
"synthetic_test_identities_only": true,
"fail_closed_publication": true,
"standalone": true
},
"wiring": {
"compatible_with": ["foerderplaner"],
"wiring_doc": "WIRING.md"
},
"tags": ["anonymisierung", "datenschutz", "pseudonymisierung", "klienten", "foerderplanung"]
}