feat: Phase 5 — DB persistence for scan results + Phase 10 in plan

- Migration 086: compliance_agent_scans table (findings, services, corrections)
- agent_history_routes.py: POST /scans (save), GET /scans (list), GET /scans/{id}
- Scan results survive page reloads and can be reviewed later
- Phase 10 (Playwright website scanner) added to product roadmap

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benjamin Admin
2026-04-29 15:17:51 +02:00
parent 53774886e7
commit e35db90232
4 changed files with 262 additions and 0 deletions
+30
View File
@@ -509,6 +509,36 @@ und prueft den Kundenbereich auf Pflichtfunktionen:
| `consent-tester/main.py` | +30 | Neuer /authenticated-scan Endpoint |
| Frontend: AuthenticatedTestTab | ~150 | Credential-Eingabe + Ergebnis |
---
## Phase 10: Website-Scan auf Playwright umstellen (P3, 1-2 Tage)
### Problem
Der Website-Scan nutzt httpx (wie curl) — bekommt nur initiales HTML.
SPAs (React, Angular, Vue) die Inhalte per JavaScript nachladen werden
unvollstaendig gescannt. Opodo-Stil Seiten liefern nur Shell-HTML.
### Loesung
Website-Scanner auf Playwright umstellen — gleicher Headless Browser
wie der Consent-Tester. Dann sieht der Scan ALLES was der Browser sieht.
| Technologie | Aktuell (httpx) | Nach Phase 10 (Playwright) |
|------------|-----------------|---------------------------|
| Statisches HTML | ✓ | ✓ |
| WordPress | ✓ | ✓ |
| React/Vue SPA | ✗ (nur Shell) | ✓ (rendert JS) |
| Angular SSR | ✗/✓ | ✓ |
| JS-heavy (Opodo) | ✗ | ✓ |
### Implementierung
- `consent-tester` Service um `/website-scan` Endpoint erweitern
- Playwright navigiert zu jeder Seite, wartet auf JS, extrahiert HTML
- Backend-Scanner ruft consent-tester statt httpx auf
- Gleicher Output (DetectedService, ScanResult) — nur bessere Eingabedaten
## Investoren-Demo Szenario
Nach Phase 2 (Woche 2) koennen wir folgende Demo zeigen: