docs(quick-260909-ab3): Matrix-Suche und Sync-Meldungen — Plan, Bericht, Verifikation
Tessera CI/CD / Lint & Type Check (push) Successful in 48s
Tessera CI/CD / Tests (push) Successful in 56s
Tessera CI/CD / Build & Publish Images (push) Successful in 1m45s

Verifikation unabhaengig nachgemessen: 651/651 API-Tests, 233/233 Web-Tests,
beide Typpruefungen sauber.

Der Sicherheitsfund T-Q3-01 wurde nicht nur gruen getestet, sondern
falsifiziert: der Verifizierer hat die neue Besitzpruefung testweise
zurueckgebaut, woraufhin der Test fehlschlug und die fremde Adresse
tatsaechlich in prisma.user.update() landete. Danach sauber zurueckgesetzt.

Ebenso gegengeprueft: beide Anlege-Wege (Sync und Einzelimport) nutzen
denselben Kollisionsentscheider, im ausgelieferten Code stehen keine
kundenspezifischen Namen oder Adressen, rohe ORM-Texte erreichen die
Oberflaeche nicht mehr, und die Gruppensuche unter internem wie AD-Namen
(#6c) ist per Regressionstest gesichert.

Eine Abweichung des Ausfuehrenden ist dokumentiert und bestaetigt: die im
Plan vorgesehene Testvorlage war wegen Kurzschlussauswertung schon gegen den
unveraenderten Code gruen; mit einem zweiten, nicht passenden Konto
reproduziert sie den Absturz nun wirklich.

Status human_needed: die fuenf Browser-Pruefungen brauchen einen Neubau und
sind Sache des Users. WINDOWS #14 und #15 bleiben bis dahin offen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FYZcd3SSmo14QTqWx2KKzU
This commit is contained in:
2026-09-09 08:02:55 +02:00
parent 21670462dd
commit efcf11c988
3 changed files with 267 additions and 6 deletions
+7 -6
View File
@@ -5,10 +5,10 @@ milestone_name: Plattform-Berechtigungen
current_phase: 17
current_phase_name: eigene-ausschreibungs-quellen-je-nutzer
status: verified
stopped_at: "WINDOWS #16 am 2026-09-09 im Browser auf alpha abgenommen und geschlossen: Verbindungstest meldet mit leerem Passwortfeld Erfolg (belegt den Rueckgriff auf gespeicherte Zugangsdaten), falscher Server meldet die echte Fehlermeldung, keine Zugangsdaten im Protokoll, gespeicherte Konfiguration unveraendert. Nebenbei erstmals belegt, dass der handgeschriebene EWS-Weg gegen den echten Exchange laeuft. WINDOWS #12 zurueckgestellt — es gibt intern kein Postfach fuer Ausschreibungs-Alarme. Offen sind nur noch die zwei am 2026-09-07 gefundenen Defekte: #14 (Matrix-Suche leert die jeweils andere Achse) und #15 (rohe Techniktexte im Sync, vier AD-Konten wegen E-Mail-Kollision nie importiert)."
last_updated: "2026-09-09T07:20:00.000Z"
stopped_at: "Quick-Task 260909-ab3 abgeschlossen und verifiziert (8/8): Matrix-Suche leert die jeweils andere Achse nicht mehr (#14), AD-Konten mit doppelter Mailadresse werden ohne Adresse angelegt statt still zu scheitern, Sync-Bericht spricht Deutsch statt roher Prisma-Texte (#15). Dabei einen Sicherheitsfund geschlossen (T-Q3-01: bedingungsloses Ueberschreiben der Mailadresse haette Uebernahme einer fremden Adresse samt Passwort-Reset erlaubt) — per Rueckbau falsifiziert, nicht nur gruen getestet. User.email ist jetzt optional, die Migration laeuft beim naechsten API-Start automatisch mit (Dockerfile fuehrt migrate deploy aus). OFFEN: Browser-Abnahme der fuenf Punkte nach dem Neubau durch den User; #14 und #15 bleiben bis dahin im Ledger offen."
last_updated: "2026-09-09T09:30:00.000Z"
last_activity: 2026-09-09
last_activity_desc: Verbindungstest-Knopf live abgenommen (WINDOWS #16 zu), Postfach-Test #12 mangels Postfach zurueckgestellt
last_activity_desc: WINDOWS #14 und #15 repariert und verifiziert, Sicherheitsfund T-Q3-01 mitgeschlossen — Browser-Abnahme offen
progress:
total_phases: 17
completed_phases: 17
@@ -362,6 +362,7 @@ None yet.
| 260805-fok | Standardgruppe bei Mandanten-Anlage + Startup-Reparatur — GroupsService.ensureDefaultGroup(tenantId) mit D-13-Waechter (null Gruppen, nicht fehlende Markierung), verdrahtet in TenantService.create und AdminSeedService.ensureDefaultGroupsForAllTenants; schliesst die Migrations-Backfill-Luecke auf frischen Installationen (Testserver: tenants=1 users=4 groups=0) | 2026-08-05 | 9d1254c,0d7d8a5 | [260805-fok-standardgruppe-bei-mandanten-anlage-und-](.planning/quick/260805-fok-standardgruppe-bei-mandanten-anlage-und-/) |
| 21 | Verschluesselungsschluessel in den Beispiel-Umgebungsdateien dokumentiert: .env.example hatte gar keinen Eintrag, .env.prod.example nannte noch den alten Namen CALENDAR_ENCRYPTION_KEY. Compose-Teil des Backlog-Punkts war bereits mit 7bda56d erledigt (Vorgabewert raus, :?-Abbruch statt Ersatzwert) | 2026-08-11 | 379606e | — |
| 260907-let | Verbindungstest fuer das Postfach im Ausschreibungs-Radar nachgeruestet (WINDOWS #16): POST /modules/tender-radar/email-config/test plus Knopf "Verbindung testen" im Formular unter Meine Quellen. Nutzt die vorhandene testConnection() beider Inbox-Provider, Muster vom DKV-Modul. userId ausschliesslich aus dem Auth-Kontext (eigener IDOR-Test mit Koeder-userId), leerer Benutzername oder leeres Passwort faellt auf die gespeicherten verschluesselten Zugangsdaten desselben Nutzers zurueck, keine Zugangsdaten in Logs oder Antwort. Verifiziert: 646/646 API- und 228/228 Web-Tests, beide Typpruefungen sauber, Sprachschluessel-Gate von rot auf gruen. Offen: Browser-Abnahme gegen ein echtes Postfach (Ende-der-Phase, braucht Neubau durch den User) | 2026-09-07 | c4db3b2 | [260907-let-verbindungstest-fuer-das-postfach-im-aus](./quick/260907-let-verbindungstest-fuer-das-postfach-im-aus/) |
| 260909-ab3 | Zwei Befunde aus der Live-Pruefung behoben. **#14:** Die Suche in der Freigaben-Matrix filterte beide Achsen mit demselben Begriff und leerte dadurch die jeweils andere — jetzt bleibt die nicht getroffene Achse vollstaendig stehen, die Gruppensuche unter internem UND AD-Namen (#6c) ist per Regressionstest gesichert. **#15:** AD-Konten mit bereits vergebener Mailadresse werden nun angelegt, nur ohne Adresse (Produktentscheidung des Users vom 2026-09-09; der erste Anspruch behaelt die Adresse), auf BEIDEN Wegen — Sync und Einzelimport. Rohe Prisma-Texte gehen nur noch ins Log, der Bericht zeigt drei verstaendliche deutsche Abschnitte. **Sicherheitsfund nebenbei geschlossen (T-Q3-01):** der Update-Zweig schrieb die Mailadresse bedingungslos um, ein Verzeichniseintrag haette so die Adresse einer echten Person uebernehmen und deren Passwort-Reset empfangen koennen. `User.email` ist jetzt optional (Migration geschrieben, laeuft beim naechsten API-Start automatisch mit). Verifiziert 8/8: 651/651 API- und 233/233 Web-Tests, beide Typpruefungen sauber; die Sicherheitspruefung wurde durch Rueckbau falsifiziert (ohne Besitzpruefung schlaegt der Test fehl). Offen: Browser-Abnahme nach dem naechsten Neubau | 2026-09-09 | 2167046 | [260909-ab3-matrix-suche-und-sync-meldungen-reparier](./quick/260909-ab3-matrix-suche-und-sync-meldungen-reparier/) |
## Deferred Items
@@ -401,7 +402,7 @@ sind. Kein Anlass, sie vorher erneut vorzulegen.
## Session Continuity
Last session: 2026-09-09T07:20:00.000Z
Stopped at: Alle Pruefpunkte abgearbeitet. Offen sind nur noch zwei Reparaturen: WINDOWS #14 (Suche in der Freigaben-Matrix filtert beide Achsen und leert dadurch die jeweils andere) und #15 (Sync reicht rohe Prisma- und englische Techniktexte durch; vier AD-Konten aus OU=CTL_PWS_Gruppen werden wegen geteilter E-Mail-Adresse nie importiert). Zurueckgestellt: #12 (kein Alarm-Postfach vorhanden) und Abnahmeplan 02-05 (Mandantentrennung, intern zweitrangig).
Last session: 2026-09-09T09:30:00.000Z
Stopped at: Beide gefundenen Defekte repariert und verifiziert, gepusht. Es wartet nur noch die Browser-Abnahme durch den User nach dem naechsten Neubau (API + Web). Danach koennen #14 und #15 geschlossen werden. Zurueckgestellt bleiben #12 (kein Alarm-Postfach vorhanden) und Abnahmeplan 02-05 (Mandantentrennung, intern zweitrangig).
Resume file: None
Last activity: 2026-09-09 - WINDOWS #16 abgenommen und geschlossen, #12 zurueckgestellt
Last activity: 2026-09-09 - #14 und #15 repariert, T-Q3-01 geschlossen, verifiziert und gepusht