diff --git a/features/PROJ-55-fix-auditor-tenant-isolation.md b/features/PROJ-55-fix-auditor-tenant-isolation.md index 33379ed..b921ed3 100644 --- a/features/PROJ-55-fix-auditor-tenant-isolation.md +++ b/features/PROJ-55-fix-auditor-tenant-isolation.md @@ -2,7 +2,7 @@ ## Status: In Review **Created:** 2026-06-21 -**Last Updated:** 2026-06-21 +**Last Updated:** 2026-06-22 ## Dependencies - PROJ-6 (Volltext-Suche & Filterung) @@ -304,5 +304,16 @@ weiterhin ausdrücklich empfohlen. Code-Review ersetzt keinen Integrationstest g die tatsächliche Index-/DB-Schicht. Diese Empfehlung ist nicht deploy-blockierend für das aktuelle (single-tenant-dominierte) Setup, aber Pflicht vor der SaaS-Freigabe. +## Live-Verifikation auf 192.168.1.132 (2026-06-22) + +Test-Account `homelocal-auditor@homelocal.local` (tenant_id=3, role=auditor) angelegt/Test-Passwort gesetzt, eingeloggt, `GET /api/search?q=test&page_size=50` ausgeführt: 49 von 50 Treffern korrekt tenant_id=3, 1 Treffer (`6cf020fb...d5a`, `emails.tenant_id=1`) initial als Cross-Tenant-Leak verdächtigt. + +**Nachverifikation:** Kein Leak. Die Mail ging von `patrick@perlbach24.de` (Tenant 1) an `bundyxl@gmx.de`, welcher im Tenant "homelocal" (Tenant 3) als `patrick.perlbach@gmx.de` archiviert wird. `email_refs` hat dafür korrekt zwei Einträge (`tenant_id=1` und `tenant_id=3`) — das ist der beabsichtigte Cross-Tenant-Dedup-Mechanismus (eine physische Mail kann mehreren Tenants zugeordnet sein, wenn sie an Empfänger unterschiedlicher Tenants ging). Der `auditor` mit `tenant_id=3` sieht die Mail zu Recht, da sie tatsächlich seinem Tenant zugeordnet ist (`email_refs.tenant_id=3`). + +**Lehre für künftige Live-Tests:** Tenant-Zugehörigkeit einer Mail ausschließlich über `emails.tenant_id` zu prüfen ist unzureichend — `email_refs` muss als zusätzliche, gültige Tenant-Zuordnung berücksichtigt werden (siehe `internal/storage/storage.go:1194` `GetAllIDsByTenant`, nutzt `email_refs`, nicht `emails.tenant_id`). + +**PROJ-55 Live-Verifikation: PASS.** Keine offenen Befunde mehr. + ## Deployment -_To be added by /deploy_ +- Test: 192.168.1.132 — `update.sh` (Commit `1d27dc2`), Backend+Frontend laufen, neuer HTTP-Health-Check bestätigt funktionsfähig, Reindex-Schritt korrekt entfernt. Live-Test PROJ-55 bestanden (siehe oben). +- Produktion: 192.168.1.131 — _ausstehend_