Adds documentation pages for: - Document Crawler (architecture, API endpoints, gap analysis) - Academy/Schulungsmodul - Whistleblower/Hinweisgebersystem (HinSchG) - Incidents/Datenschutzvorfaelle (Art. 33/34 DSGVO) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
5.5 KiB
Document Crawler & Auto-Onboarding
Der Document Crawler ist ein eigenstaendiger Python/FastAPI-Microservice, der automatisch lokale Dateisysteme nach bestehenden Compliance-Dokumenten durchsucht, diese mittels LLM klassifiziert, in IPFS archiviert und eine Compliance-Lueckenanalyse durchfuehrt.
Architektur
graph LR
FE[Frontend Admin-v2] -->|API Proxy| DC[Document Crawler :8098]
DC -->|LLM Klassifizierung| SDK[AI Compliance SDK :8090]
DC -->|IPFS Archivierung| DSMS[DSMS Gateway :8082]
DC -->|Daten| PG[(PostgreSQL)]
| Eigenschaft | Wert |
|---|---|
| Service | document-crawler |
| Port | 8098 |
| Container | bp-compliance-document-crawler |
| Sprache | Python 3.11 / FastAPI |
| Datenbank | PostgreSQL (breakpilot_db) |
Features
- Filesystem Crawling — Automatisches Scannen lokaler Verzeichnisse und NAS-Shares
- Delta-Erkennung — SHA-256 Hash-basierte Aenderungserkennung, nur geaenderte Dateien werden erneut verarbeitet
- Text-Extraktion — PDF (PyMuPDF), DOCX (python-docx), XLSX (openpyxl), PPTX (python-pptx)
- LLM-Klassifizierung — Automatische Kategorisierung via AI Compliance SDK
- Keyword-Fallback — Heuristische Klassifizierung wenn LLM nicht verfuegbar (Confidence max 0.3)
- IPFS-Archivierung — Langzeit-Archivierung ueber DSMS Gateway
- Gap-Analyse — Vergleich gefundener Dokumente gegen Compliance-Matrix
- Onboarding-Report — Compliance-Score, fehlende Dokumente, Handlungsempfehlungen
Dokumentklassifizierungen
| Kategorie | Beschreibung |
|---|---|
| VVT | Verzeichnis von Verarbeitungstaetigkeiten |
| TOM | Technische und organisatorische Massnahmen |
| DSE | Datenschutzerklaerung |
| AVV | Auftragsverarbeitungsvertrag |
| DSFA | Datenschutz-Folgenabschaetzung |
| Loeschkonzept | Loeschfristen und -verfahren |
| Einwilligung | Einwilligungserklaerungen |
| Vertrag | Vertraege mit Datenschutzbezug |
| Richtlinie | Interne Datenschutzrichtlinien |
| Schulungsnachweis | Datenschutz-Schulungszertifikate |
| Sonstiges | Nicht klassifizierbare Dokumente |
Datenbank-Schema
4 Tabellen (Migration 014):
crawler_sources
Konfigurierbare Crawl-Verzeichnisse mit Pfad, Dateityp-Filter, Tiefenbegrenzung und Ausschlussmustern.
crawler_jobs
Jede Crawl-Ausfuehrung mit Status (pending/running/completed/failed), Typ (full/delta) und Statistiken.
crawler_documents
Jede entdeckte Datei mit Metadaten, extrahiertem Text, Klassifizierung, Confidence-Score und Archivierungsstatus.
crawler_onboarding_reports
Zusammenfassungsberichte mit Compliance-Score, Klassifizierungs-Aufschluesselung und Gap-Analyse.
API Endpoints
Alle unter /api/v1/crawler/, benoetigen X-Tenant-ID Header.
Quellen (Sources)
| Method | Endpoint | Beschreibung |
|---|---|---|
| GET | /sources |
Crawl-Quellen auflisten |
| POST | /sources |
Neue Quelle erstellen |
| PUT | /sources/{id} |
Quelle aktualisieren |
| DELETE | /sources/{id} |
Quelle loeschen |
| POST | /sources/{id}/test |
Konnektivitaet testen |
Jobs
| Method | Endpoint | Beschreibung |
|---|---|---|
| POST | /jobs |
Crawl starten (full/delta) |
| GET | /jobs |
Jobs auflisten |
| GET | /jobs/{id} |
Job-Details + Fortschritt |
| POST | /jobs/{id}/cancel |
Laufenden Job abbrechen |
Dokumente
| Method | Endpoint | Beschreibung |
|---|---|---|
| GET | /documents |
Dokumente auflisten (Filter: classification, status) |
| GET | /documents/{id} |
Dokument-Details + Text-Vorschau |
| PUT | /documents/{id}/classify |
Manuelle Klassifizierungs-Korrektur |
| POST | /documents/{id}/archive |
In IPFS archivieren |
| POST | /documents/archive-batch |
Bulk-Archivierung |
Reports
| Method | Endpoint | Beschreibung |
|---|---|---|
| POST | /reports/generate |
Onboarding-Report generieren |
| GET | /reports |
Reports auflisten |
| GET | /reports/{id} |
Report mit Gap-Analyse |
Gap-Analyse
Die Gap-Analyse vergleicht gefundene Dokumenttypen gegen eine Pflichtdokumenten-Matrix:
| Dokument | Pflicht fuer | Severity |
|---|---|---|
| VVT | Alle Unternehmen | CRITICAL |
| TOM | Alle Unternehmen | CRITICAL |
| DSE | Alle Unternehmen | CRITICAL |
| Loeschkonzept | Alle Unternehmen | HIGH |
| AVV | Auftragsverarbeiter | HIGH |
| DSFA | KI-Nutzer, Hochrisiko-Verarbeitung | HIGH |
| Schulungsnachweis | Alle Unternehmen | MEDIUM |
| Richtlinie | Alle Unternehmen | MEDIUM |
Frontend
4-Tab-Seite unter /sdk/document-crawler:
- Quellen — Crawl-Verzeichnisse konfigurieren, Konnektivitaet testen
- Crawl-Jobs — Crawl starten, Fortschrittsbalken mit Auto-Refresh, Job-Historie
- Dokumente — Tabelle mit Klassifizierungs-Badges, Confidence-Bars, Reklassifizierung, Archivierung
- Onboarding-Report — SVG Compliance-Score Ring, Gap-Analyse mit Severity-Cards
Konfiguration
| Umgebungsvariable | Standard | Beschreibung |
|---|---|---|
PORT |
8098 | Service-Port |
DATABASE_URL |
- | PostgreSQL Connection String |
LLM_GATEWAY_URL |
http://ai-compliance-sdk:8090 |
LLM Service URL |
DSMS_GATEWAY_URL |
http://dsms-gateway:8082 |
IPFS Service URL |
CRAWL_BASE_PATH |
/data/crawl |
Basis-Pfad im Container |
MAX_FILE_SIZE_MB |
50 | Maximale Dateigroesse |
Health Check
curl http://localhost:8098/health
# {status: healthy, service: document-crawler}