Zum Inhalt

DiveLogix360 – Projektstatus

Stand: 16.10.2026 11:12 Branch: main Status: Aktiv

Änderungshistorie anzeigen


Zweck: Verbindliche Übersicht über den aktuellen Projekt- und Bearbeitungsstand.
Abgrenzung: Der geplante Produktumfang und strategische Meilensteine stehen in der Produkt-Roadmap, der zeitliche Verlauf in der Projekt-Historie. KIToDo.md ist eine abgeleitete Übergabeunterlage und keine zweite Aufgabenquelle.

Statusmodell

Die drei Dimensionen werden unabhängig voneinander geführt:

Dimension Leitfrage Mögliche Angaben
Produkt-Scope In welcher Produktversion ist die Funktion vorgesehen? V1, V2, V3, nicht zugeordnet
Spezifikationsstand Wie weit sind Fachkonzept, Regeln und Screens ausgearbeitet? Offen, in Bearbeitung, abgeschlossen
Implementierungsstand Wie weit sind Backend, Frontend und Tests umgesetzt? Offen, in Bearbeitung, abgeschlossen, blockiert

Eine Funktion kann beispielsweise zum V2-Scope gehören, fachlich bereits abgeschlossen, aber noch nicht implementiert sein.

Gesamtstatus

Bereich Produkt-Scope Spezifikationsstand Implementierungsstand
UC00 – Tenant-Onboarding und Schulverwaltung V1 In Bearbeitung; Kernfachregeln, Prisma-v4-Zielschema sowie OpenAPI- und Testvertrag abgestimmt, Oberflächenkonsolidierung offen In Bearbeitung (ca. 25 %, Berechnung); Datenbank, Basis-Seed, Prisma-Kontextwrapper und Runtime-Logins nachgewiesen; vollständiger Auth-Flow T-01 bis T-11 manuell bestätigt; persistentes Vier-Schritt-OnboardingService umgesetzt; MailService gemäss ADR-016 gehärtet und SMTP-Laufzeitnachweis erbracht (STARTTLS, Zertifikat, Auth, Zustellung bestätigt); SPF, DKIM und DMARC an zugestellten Nachrichten bei Hostpoint und Microsoft 365 nachgewiesen; Rücklauf an bounces@ belegt; Bounce-Verarbeitung gemäss ADR-024 umgesetzt und End-to-End nachgewiesen (14.10.2026); NotificationLog-Versandnachweise umgesetzt; Frontend und vollständige Integrationstests offen
UC01 – Equipment erfassen V1 Weitgehend abgeschlossen; Review und Datenmodell-Entscheide offen Offen (ca. 10 %, Berechnung)
UC02 – TÜV-Inspektion einreichen V1 Weitgehend abgeschlossen; Review offen; Fachfragen F1–F4 offen Offen (ca. 5 %, Berechnung)
UC03 – Füll-Abo und Füllkarten-Verwaltung V1 Weitgehend abgeschlossen; einzelne Punkte offen Offen (ca. 5 %, Berechnung)
UC04 – Inhouse-Service erfassen V1 Weitgehend abgeschlossen; Review offen Offen (ca. 5 %, Berechnung)
UC05 – Fristen-Dashboard V1 Weitgehend abgeschlossen; Review offen Offen (ca. 5 %, Berechnung)
UC06 – Kunden einladen und Portal V1 Weitgehend abgeschlossen; Review offen Offen (ca. 10 %, Berechnung)
UC07 – Benachrichtigungen V1 vereinfacht Weitgehend abgeschlossen; Review offen Offen (ca. 5 %, Berechnung)
UC08 – Benutzerverwaltung V1 Weitgehend abgeschlossen; Review offen Offen (ca. 5 %, Berechnung)
UC09 – Berichte und Export V1 vereinfacht Offen; Spezifikation noch nicht erstellt Offen (ca. 5 %, Berechnung)
UC-SA – Superadmin-Panel V1 Weitgehend abgeschlossen; Review offen Offen (ca. 5 %, Berechnung)
UC18 – Equipment-Verleih V2 Spezifikation abgeschlossen; Screens offen Offen (ca. 5 %, Berechnung)
UC19 – Kurs- und Brevetverwaltung V2 Konzept in der Roadmap; Dossier und Spezifikation noch nicht erstellt Nicht gestartet (keine Fortschrittsschätzung, da noch keine Abschlusscheckliste)

Die Zuordnung zum Produkt-Scope ersetzt keine Aussage zum Spezifikations- oder Implementierungsstand.

Aktueller Arbeitsschwerpunkt

UC00 bleibt der aktive Arbeitsschwerpunkt. Fachlich verantwortlich ist David Mittig als Product Owner und Fachverantwortlicher; technisch verantwortlich ist David Mittig als Technische Leitung. Die interne Security- und Compliance-Koordination liegt vorläufig ebenfalls bei David Mittig. Ausdrücklich geforderte Rechts-, Datenschutz- und Sicherheitsprüfungen bleiben unabhängigen externen Experten vorbehalten.

Die modellrelevante UC00-Nachverfolgbarkeit, ADR-009, ADR-010, ADR-012, das Prisma-v4-Zielschema sowie der kanonische OpenAPI- und Testvertrag sind abgeschlossen. Alle sechs versionierten Migrationen und der nicht personenbezogene Basis-Seed sind gegen Entwicklung nachgewiesen. Neun Datenbankschutzprüfungen waren am 14.10.2026 nach der sechsten Migration erfolgreich; sie laufen mit dem Migrationszugang aus DIRECT_URL. Alle Dienste greifen über den Kontextwrapper auf die Datenbank zu; die Runtime-Logins besitzen keine direkten Rechte mehr (ADR-012, Pakete 1 bis 4). Getrennte Prisma-Runtime-Clients verweigern fehlende oder identische Zugangskonfigurationen; der Kontextwrapper setzt Tenant, Benutzer, Request und optionalen Retention-Lauf parametrisiert innerhalb derselben Transaktion und wechselt die Rolle via SET LOCAL ROLE vor dem Kontextsatz. Globale E-Mail-Normalisierung, ausschliessliche Hashspeicherung von Einladungstoken, Tenant-Vorbereitung mit Pflicht-Plan, getrennte Vertragskontaktdaten, kontrollierte Einladungssperren und der AWS-KMS-TOTP-Pfad sind als Teilpakete umgesetzt. Der Backend-Build und 149 Unit-Tests in 16 Testdateien sind am 14.10.2026 erfolgreich, ebenso die OpenAPI-Prüfung (35 Operationen, 68 Testfälle). Runtime-Logins dlx_login_platform und dlx_login_tenant sind in Supabase provisioniert und über DATABASE_URL bzw. DATABASE_TENANT_URL angebunden. Der vollständige Auth-Flow ist manuell mit T-01 bis T-11 nachgewiesen: Login (JWT RS256, 900 s TTL), Token-Rotation, Reuse-Detection, Logout, 2FA-Setup (AES-256-GCM Dev-Fallback), 2FA-Verify-Setup mit TOTP-Code und Recovery-Codes, Login mit 2FA-Pflicht, 2FA-Code-Verifikation und 2FA-Deaktivierung. JWT-TTL-Fix (parseInt), JwtStrategy mit withPlatformContext und AES-256-GCM Dev-Fallback für TOTP-Geheimnisse sind committed und gepusht. Vollständigkeitssperre beim Vertragsabschluss, sichere Benutzer-Voranlage und Einladung, beide Vertragsabschlusswege sowie vollständige Ressourcen-, Pooling-, Integrations- und Sicherheitstests bleiben offen. Der MailService ist code-seitig gehärtet (ADR-016), verknüpft Einladungen über invitation_token_id mit dem Versandprotokoll, speichert standardisierte Fehlercodes (SMTP_<Antwortcode>) und schreibt keine Adressen oder Providertexte ins Anwendungslog; Hostpoint-Postfächer sind konfiguriert (noreply, bounces, dev); der SMTP-Laufzeitnachweis ist erbracht: STARTTLS aktiv, Zertifikat akzeptiert, Auth erfolgreich, E-Mail an dev@divelogix360.ch zugestellt (10.10.2026). Jeder Versandversuch wird gemäss ADR-018 in notification_log mit SHA-256-Hash der Empfängeradresse, Provider-Message-ID, Status und Korrelations-ID protokolliert. SPF/DKIM/DMARC sind auf divelogix360.ch nachgewiesen (10.10.2026, Nachweis): SPF mit -all konfiguriert, DKIM mit drei Schlüsseltypen (Ed25519, RSA-1024, RSA-2048) unter Selector-Schema 20261010-*._domainkey.divelogix360.ch aktiv, DMARC p=quarantine aktiv. Seit 12.10.2026 ist der DMARC-Eintrag selbstverwaltet und meldet Sammelberichte an dmarc@divelogix360.ch, weil der Hostpoint-Systemeintrag keine Berichtsadresse erlaubt; DMARC unter «Erweiterter Schutz» bleibt deshalb deaktiviert. Am 12.10.2026 zeigte eine Prüfung bei Microsoft 365 spf=fail: Der Eintrag v=spf1 redirect=spf.mail.hostpoint.ch -all war wirkungslos, weil redirect neben all gemäss RFC 7208 ignoriert wird. Der Eintrag lautet seither v=spf1 include:spf.mail.hostpoint.ch -all; SPF, DKIM und DMARC bestehen bei Hostpoint und Microsoft 365. Der Rücklauf unzustellbarer Nachrichten an bounces@divelogix360.ch ist als Meldung nach RFC 3464 nachgewiesen. Die Verarbeitung von Rücklaufmeldungen ist mit ADR-024 entschieden: betrieblicher Ablauf gemäss Runbook und automatischer IMAP-Abruf; der Zustellstatus von Einladungen wird aus dem Versandprotokoll abgeleitet. Die Verarbeitung ist umgesetzt und am 14.10.2026 End-to-End nachgewiesen: Eine Rücklaufmeldung von Microsoft 365 wurde per IMAP abgerufen, über References: dem Versandeintrag zugeordnet (bounced, DSN_5.4.1) und danach aus dem Postfach gelöscht. Dabei wurde ein Fehler behoben, durch den Versandprotokolle an der Prüfregel notification_log_timestamps_chk scheitern konnten (queued_at aus der Datenbankuhr, sent_at aus der Anwendungsuhr). Die Produktivsperre (ADR-016 §8) verlangt noch: schriftliche Nutzungsbestätigung Hostpoint, AVV-Abschluss mit Hostpoint, Monitoring-Alerts einrichten; offen. Im produktiven Betrieb ist der Bounce-Abruf mit BOUNCE_POLL_ENABLED=true zu aktivieren.


Legende der Detailcheckliste

Priorität

Label Bedeutung
P0 Blocker – blockiert alles Weitere und ist sofort zu lösen
P1 Hoch – vor der nächsten Phase oder vor dem Go-live zu erledigen
P2 Mittel – wichtig, aber nicht unmittelbar blockierend
P3 Niedrig oder Backlog – kein akuter Zeitdruck

Bereichsstatus

Symbol Bedeutung
🔴 Blockiert oder kritisch offen
🟠 Offen mit ausstehenden Entscheidungen
🟡 In Bearbeitung
🟢 Abgeschlossen
⬜ Noch nicht gestartet

Aufgabenzustand

Symbol Bedeutung
[ ] Offen
[~] In Bearbeitung
[x] Erledigt

Fortschrittsschätzung je Use Case

Der Prozentwert im Implementierungsstand ist eine nachvollziehbare Schätzung, keine Messung. Er wird für jeden Use Case nach derselben Regel aus seiner Abschlusscheckliste berechnet, bei jeder Statusänderung der Checkliste neu ermittelt und auf 5 % gerundet.

Bereiche und Gewichtung: Die zehn Gates der Abschlusscheckliste werden zu fünf Bereichen zusammengefasst. Entspricht ein Bereich genau einem Gate, trägt er dessen Namen. Eigene Namen erhalten nur zusammengefasste Gates (1 bis 7) und das aufgeteilte Gate 8.

Bereich Gewicht Gates Grundlage
Spezifikation und Entwurf 20 % 1 bis 7 Mittelwert der Gates 1 bis 7; je Gate der Anteil seiner Kriterien
Implementierung Backend 35 % 8 Anteil der Kriterien mit der Kennzeichnung Backend:
Implementierung Frontend 25 % 8 Anteil der Kriterien mit der Kennzeichnung Frontend:
Tests und Abnahme 15 % 9 Anteil der Kriterien von Gate 9
Abschluss und Konsistenz 5 % 10 Anteil der Kriterien von Gate 10

Zählweise je Kriterium: Erledigt = 1; In Bearbeitung und Zur Prüfung = 0,5; Offen und Blockiert = 0; Nicht anwendbar wird nicht mitgezählt.

Umsetzung in einem anderen Use Case: Ein Kriterium darf mit einem Nachweis auf die Umsetzung in einem anderen Use Case als Erledigt gelten.

Widersprüche: Widersprechen sich Projektstatus und Abschlusscheckliste, gilt für die Berechnung die Checkliste. Der Widerspruch ist im Projektstatus zu bereinigen.

Detaillierter Arbeitsstand

Die folgende Checkliste wurde aus der bisherigen PROJECT-STATUS.md übernommen. Sie enthält die operativen Aufgaben und Detailstände der einzelnen Projektbereiche.

Kurzübersicht: Was als nächstes

Dieser Abschnitt zeigt die wichtigsten nächsten Schritte über alle Domänen hinweg.
Detailbegründungen stehen in den Domänen-Abschnitten weiter unten.

Prio Aufgabe Domäne
~~P0~~ ~~Supabase Dev-Datenbank verbinden (DATABASE_URL in .env)~~ ~~Backend~~ ✅
~~P0~~ ~~npx prisma validate lokal ausführen und Prisma-Schema technisch bestätigen~~ ~~Datenbank~~ ✅
~~P0~~ ~~Initiale Prisma-v4-Migration und überprüfte PostgreSQL-Ergänzungen erstellen~~ ~~Datenbank~~ ✅
~~P0~~ ~~Migrationsfolge gegen die PostgreSQL-Entwicklungsdatenbank ausführen und grundlegende RLS-Rollennachweise erbringen~~ ~~Datenbank~~ ✅
~~P0~~ ~~Backend-Build nach Zielmodellumstellung und erneuter Prisma-Client-Erzeugung wiederherstellen~~ ~~Backend~~ ✅
~~P1~~ ~~UC00 Backend: 2FA-Setup-Flow (3 fehlende Endpoints)~~ ~~Backend~~ ✅
~~P1~~ ~~OnboardingService auf verbindliches persistentes Vier-Schritt-Modell umstellen~~ ~~Backend~~ ✅
~~P1~~ ~~MailService-Abhängigkeiten reproduzierbar synchronisieren und sicheren Versand nach ADR-016 umsetzen~~ ~~Backend~~ ✅
~~P1~~ ~~Nicht personenbezogenen, idempotenten Basis-Seed erstellen und ausführen~~ ~~Backend~~ ✅
~~P1~~ ~~Prisma-Ausgangsbasis und Verantwortungsgrenzen formal als technische Wahrheit festlegen (ADR-009)~~ ~~Datenbank~~ ✅
~~P1~~ ~~User.email – global eindeutig oder tenant-bezogen? Entscheidung in ADR-011~~ ~~Datenbank~~ ✅
~~P1~~ ~~Globale E-Mail-Normalisierung, Konfliktbehandlung und sichere Einladungstoken umsetzen~~ ~~Backend/Datenbank~~ ✅
~~P1~~ ~~Prisma-Migrationen als führendes Deploymentverfahren festlegen (ADR-010)~~ ~~Datenbank~~ ✅
~~P1~~ ~~Providerneutrale RLS-Strategie festlegen (ADR-012)~~ ~~Datenbank~~ ✅
~~P1~~ ~~UC00-Zielschema aus Fachregeln, Nachverfolgbarkeitsmatrix und ADRs ableiten~~ ~~Datenbank~~ ✅
P1 ADR-016-Produktivsperre abbauen: Monitoring-Alerts, Nutzungsbestätigung und Auftragsbearbeitungsvereinbarung Hostpoint Backend/Compliance
P1 Sichere Benutzer-Voranlage und Tenant-Admin-Einladung vervollständigen (ADR-015), einschliesslich user_id in der Einladungsantwort gemäss UC00-OpenAPI Backend
P1 Elektronischen Vertragsabschluss und kontrollierten Upload extern unterzeichneter Dokumente umsetzen (ADR-015) Backend
P1 Vorhandene AVV-Arbeitsvorlage extern juristisch prüfen und produktiv freigeben Compliance
P1 GDPR-Consent-Felder in customers ergänzen (GEM 03) Compliance

1. Backend 🟡

NestJS-Grundstruktur und eine UC00-Teilimplementierung sind vorhanden. Nach aktueller Prisma-Client-Erzeugung ist der Backend-Build erfolgreich. Zielmodell, Entwicklungsdatenbank-Rollout mit allen sechs versionierten Migrationen und Basis-Seed sind nachgewiesen; fachliche Backend-Vervollständigung und vollständige Tests sind offen.

1.1 Infrastruktur & Konfiguration

Prio Status Aufgabe
P0 [x] Supabase Dev-Verbindung einrichten: DATABASE_URL und DIRECT_URL in .env setzen
P1 [ ] .env.example vollständig prüfen und dokumentieren (JWT, Cookie, CORS, DB-Trennung Dev/Prod)
P1 [x] Getrennte Plattform-, Tenant- und Migrationszugänge dokumentiert und im Backend erzwungen; Runtime-Logins dlx_login_platform und dlx_login_tenant provisioniert und mit HTTP 200 nachgewiesen
P1 [ ] backend/src/common/prisma/prisma.module.ts separat prüfen
P1 [ ] backend/src/common/prisma/prisma.service.ts separat prüfen
P1 [ ] backend/src/app.module.ts separat prüfen
P2 [ ] backend/package.json auf Abhängigkeiten und Schwachstellen prüfen; npm meldet am 09.08.2026 37 Befunde, davon einen kritischen; bei npm ci am 13.10.2026 77 Befunde, davon drei kritische, sowie veraltete Pakete (u. a. glob, tar, eslint 8, otplib 12)
P1 [~] Containerbetrieb des Backends: backend/Dockerfile (Node 22, OpenSSL, Laufzeit als Benutzer node), compose.yaml mit Healthcheck, Ressourcengrenzen und gehärteten Einstellungen sowie Health-Endpunkt GET /v1/health mit Unit-Test übernommen; NODE_ENV stammt aus backend/.env; Anleitung; Image-Build und Containerstart noch nicht nachgewiesen
P3 [ ] Vollständige Entwicklungsumgebung auf dem NAS (Docker, VS Code Remote oder Dev Containers) später prüfen; bis dahin je ein lokaler Klon auf Notebook und PC unter C:\03 Dev\divelogix360, Abgleich ausschliesslich über GitHub

1.2 Prisma

Prio Status Aufgabe
P0 [x] npx prisma validate lokal ausführen
P0 [x] npx prisma generate nach validate ausführen
P0 [x] Initiale Prisma-v4- und PostgreSQL-Schutzmigration erzeugen und mit npm run prisma:migrations:validate statisch prüfen
P1 [x] Historischen db pull-Nachweis durch aktuellen Inventur-, Migrations- und Laufzeitnachweis ersetzen
P0 [x] npm run build unmittelbar nach prisma generate am 10.08.2026 erfolgreich ausgeführt

1.3 UC00 Business-Logik

Prio Status Aufgabe
P1 [x] 2FA-Setup-Flow: Endpoint GET /auth/2fa/setup implementiert
P1 [x] 2FA-Setup-Flow: Endpoint POST /auth/2fa/verify-setup implementiert
P1 [x] 2FA-Setup-Flow: Endpoint POST /auth/2fa/disable implementiert
P1 [x] OnboardingService: persistentes Vier-Schritt-Modell umgesetzt (school_profile, contact_details, first_employee skippable, confirmation); TenantOnboarding + OnboardingStep-Records, sequenzielles Unlock, AVV-Prüfung
P1 [x] MailService gemäss ADR-016 gehärtet: requireTLS (STARTTLS), rejectUnauthorized, TLSv1.2 min, Verbindungs-Timeouts, Dev-Guard (MAIL_DEV_CATCH_ALL), sendRecoveryCodes() entfernt; .env.example aktualisiert
P1 [x] Hostpoint-Postfächer konfiguriert (noreply@, bounces@, dev@divelogix360.ch); SMTP-Laufzeitnachweis erbracht: STARTTLS aktiv, Zertifikat akzeptiert, Auth erfolgreich, E-Mail an dev@divelogix360.ch zugestellt (10.10.2026)
P1 [x] NotificationLog-Einträge im MailService gemäss ADR-018 umgesetzt (SHA-256-Empfängerhash, Provider-Message-ID, Status sent/failed, Korrelations-ID, Tenant-ID); Tests offen (UC00-08-35)
P1 [~] ADR-016 Produktivsperre heben: SPF/DKIM/DMARC auf divelogix360.ch nachgewiesen (10.10.2026, Nachweis) ✅; DMARC-Berichtsadresse seit 12.10.2026 gesetzt (eigener DNS-Eintrag, Postfach dmarc@divelogix360.ch) ✅; SPF-Eintrag am 12.10.2026 korrigiert und SPF/DKIM/DMARC bei Hostpoint und Microsoft 365 bestätigt ✅; Rücklauf an bounces@ nachgewiesen ✅; Bounce-Verarbeitung gemäss ADR-024 umgesetzt und End-to-End nachgewiesen (14.10.2026) ✅; schriftliche Nutzungsbestätigung Hostpoint offen; AVV Hostpoint offen; Monitoring-Alerts einrichten offen
P1 [x] Freigegebenes UC00-Zielschema nach ADR-009, ADR-010 und ADR-012 kontrolliert gegen die Entwicklungsdatenbank migrieren
P1 [x] Getrennte Prisma-Runtime-Clients und transaktionsgebundenen Datenbankkontext implementieren und unit-testen
P1 [x] Globale E-Mail-Normalisierung und Konfliktbehandlung sowie ausschliessliche Hashspeicherung von Einladungstoken implementieren und unit-testen
P1 [x] Manuelle Tests: Login, Token-Rotation, Reuse-Detection, Logout, vollständiger 2FA-Flow (T-01 bis T-11) nachgewiesen
P1 [~] ADR-015: Tenant-Vorbereitung mit Pflicht-Plan und ohne Sofort-Einladung umgesetzt; Vertragsabschluss, sichere Benutzer-Voranlage und Admin-Einladung offen
P1 [~] ADR-015: Admin-Einladung ohne gültigen Vertragsnachweis mit 409 contract_not_accepted und bis zur sicheren Benutzer-Voranlage kontrolliert mit 503 tenant_admin_invitation_not_ready gesperrt; vollständige Einladung offen
P1 [ ] ADR-015: elektronischen Vertragsabschluss und kontrollierten Upload extern unterzeichneter Dokumente implementieren
P1 [ ] Einheitliches Vertragsmodell mit sechs Statuswerten, unveränderlichem Parteiensnapshot, PDF-Objektschlüssel und SHA-256-Hash implementieren
P1 [ ] Gehashten einmaligen Vertragstoken mit sieben Kalendertagen Laufzeit und Widerruf bei Neuanforderung implementieren
P1 [ ] Externen Upload und separate auditierte Superadmin-Prüfung implementieren; dieselbe Person darf in V1 beide Aktionen ausführen

1.4 Seed & Testdaten

Prio Status Aufgabe
P1 [x] Sicheren Basis-Seed für drei globale Vorlagen und vier Plan-Features erstellt; keine Personen-, Tenant- oder Geheimnisdaten
P1 [x] Basis-Seed nach kontrolliertem Datenbankaufbau erfolgreich ausführen
P2 [ ] Fachliche UC00- und UC01-Testdaten getrennt und kontrolliert für die jeweiligen Integrationstests aufbauen
P2 [x] Seed idempotent gestalten (upsert, mehrfach ausführbar)

1.5 UC00-Testfluss

Alle Schritte aus docs/developer/uc00/UC00-BACKEND-STABILISIERUNG.md Kap. 5.

Prio Status Aufgabe
P1 [ ] SuperAdmin Login / Logout / ungültiges Passwort
P1 [ ] Tenant erstellen, anzeigen, Status ändern, Plan abrufen/ändern
P1 [ ] Tenant-Admin-Einladung erzeugen, einlösen, bereits verwendete Einladung
P1 [ ] Refresh Token Rotation und Wiederverwendungserkennung
P1 [ ] Rollenprüfung SuperAdmin-Endpunkte + Tenant-Isolation

1.6 RLS & Sicherheit

Prio Status Aufgabe
P1 [x] Datenbankrollen ausgerollt, Prisma-Clients getrennt und Runtime-Logins dlx_login_platform / dlx_login_tenant provisioniert und gegen die RLS-Policies geprüft
P1 [x] Getrennte Tenant- und Plattform-Prisma-Clients, Kontextwrapper mit SET LOCAL ROLE und DATABASE_TENANT_URL umgesetzt; Login-Flow mit HTTP 200 nachgewiesen
P1 [~] Providerneutrale RLS-Policies mit ENABLE und FORCE ROW LEVEL SECURITY für 35 Tabellen ausgerollt; acht Basisprüfungen erfolgreich, vollständige Testmatrix offen
P1 [ ] RLS-, Rollen-, Negativ- und Pooling-Isolationstests RLS-01 bis RLS-12 automatisieren
P1 [x] Sicherheitsvorfall vom 14.10.2026 behoben: Eine Kopie der lokalen backend/.env wurde um 09:30 versehentlich in das private GitHub-Repository hochgeladen; der Dateiname mit Leerzeichen wurde von .gitignore nicht erfasst. Betroffen waren nur Geheimnisse der Entwicklungsumgebung (Datenbankzugänge postgres, dlx_login_platform, dlx_login_tenant, JWT-Schlüsselpaar, COOKIE_SECRET, DEV_TOTP_ENCRYPTION_KEY, Passwort von noreply@); keine Kunden- oder Produktivdaten, kein Konto mit 2FA-Geheimnis. Massnahmen: Datei entfernt und Regel .env * ergänzt; alle Geheimnisse bis 11:05 ersetzt (generate-secrets.mjs, Datenbankrollen per SCRAM-Prüfwert) und geprüft: SMTP-Versand, Login, beide Runtime-Verbindungen, migrate status, acht Datenbankschutzprüfungen, Backendstart auf PC und Notebook. Die Git-Historie wurde bewusst nicht umgeschrieben, weil die enthaltenen Werte ungültig sind
P1 [x] Entwicklungs-Superadmin absichern: prisma/seed-dev-superadmin.ts enthielt das Passwort im Klartext; das Skript liest es jetzt aus DEV_SUPERADMIN_PASSWORD und kann es mit --reset-password ersetzen ✅; bestehendes Konto in der Entwicklungsdatenbank vorhanden, Passwort am 14.10.2026 ersetzt und Anmeldung mit HTTP 200 geprüft ✅
P2 [ ] Rate Limiting auf allen API-Endpoints prüfen

1.7 Tests

Prio Status Aufgabe
P2 [ ] Unit-Tests AuthService schreiben
P2 [~] Drei Unit-Tests für Tenant-Vorbereitung mit Pflicht-Plan sowie beide Einladungssperren vorhanden; weitere Tenant-Service-Pfade offen
P2 [ ] Unit-Tests Guards und Rollenprüfung schreiben
P2 [ ] Unit-Tests InvitationRedeem + Refresh Token Rotation
P1 [x] Fünf Unit-Tests für getrennte Prisma-Zugänge, transaktionslokalen Kontext und Konfigurationsverweigerung
P1 [ ] Integration- und E2E-Tests für Vertragsstatus, Abschlussnachweis, Upload und Einladungssperre gemäss ADR-015
P1 [ ] Vertragstoken auf Sieben-Tage-Ablauf, Einmaligkeit und Widerruf sowie Statusersetzung erst nach neuer Annahme testen
P1 [ ] Vollständige rechtliche Bezeichnung und Vertragsanschrift vor AVV-Abschluss validieren; bei Lücke 409 contract_party_incomplete liefern
P1 [ ] Vertragskontakt, unterzeichnende Person und Tenant-Admin getrennt modellieren; dieselbe Person in mehreren Rollen zulassen
P2 [~] Veröffentlichungsfreigaben für Kontakt-E-Mail, Festnetz und Mobilnummer getrennt und standardmässig deaktiviert umsetzen; Datenmodell und Backend umgesetzt, Frontend offen (UC00-08-10)

1.8 Vorhandene und historisch ausgeführte Arbeiten

Status Aufgabe
[x] NestJS-Grundstruktur (Module Auth, Tenants, Users, Onboarding)
[x] Security-Basis: Helmet, CORS, Cookie Parser, ValidationPipe
[x] Auth-Logik: Login, Logout, Refresh Token, 2FA (Login-Flow), Invitation Redeem
[x] Tenant-Logik: Erstellung, Suche, Statuswechsel, Planverwaltung
[x] package.json, package-lock.json und lokale Installation sind einschliesslich Mail-, QR-Code- und AWS-KMS-Abhängigkeiten synchronisiert
[x] prisma validate am 09.08.2026 gegen die eingecheckte Prisma-Ausgangsbasis erfolgreich
[x] prisma generate am 09.08.2026 erfolgreich (Prisma Client 5.22.0)
[x] npm run build am 10.08.2026 nach prisma generate ohne TypeScript-Fehler erfolgreich
[x] (this.prisma as any).recoveryCode – dynamischer Cast bereinigt
[x] Supabase-Entwicklungszugang verbunden und PostgreSQL-17.6-Iststand kontrolliert inventarisiert
[x] Historischen prisma db pull durch aktuellen Migrations-, Inventur- und RLS-Laufzeitnachweis ersetzt
[x] Historischer Einsatz von prisma db push --accept-data-loss durch vier versionierte, kontrolliert angewendete Migrationen und aktuellen Zielmodellnachweis abgelöst
[x] 2FA-Setup-Flow: GET /auth/2fa/setup, POST /verify-setup, POST /disable
[~] MailService gemäss ADR-016 gehärtet, mit NotificationLog-Einträgen versehen und gegen Hostpoint mit SMTP-Laufzeitprüfung sowie SPF, DKIM und DMARC nachgewiesen; Bounce-Verarbeitung End-to-End nachgewiesen (14.10.2026); Monitoring und Produktivfreigabe bleiben offen
[x] OnboardingService persistentes Vier-Schritt-Modell umgesetzt; school_profile/contact_details schreiben in TenantProfile, first_employee überspringbar, confirmation prüft AVV
[x] Persistentes Vier-Schritt-Onboarding und TenantProfile sind im formal validierten Prisma-v4-Zielschema modelliert
[x] Initiale Prisma-v4- und PostgreSQL-Schutzmigration sind statisch geprüft und erfolgreich gegen Entwicklung ausgerollt
[x] Sicherer Basis-Seed in prisma/seed.ts idempotent ausgeführt; nur versionierte Referenzdaten
[x] PrismaService verwendet getrennte Plattform- und Tenant-Clients sowie parametrisierte, transaktionslokale Kontextwerte mit SET LOCAL ROLE; fünf Unit-Tests erfolgreich
[x] Runtime-Logins dlx_login_platform und dlx_login_tenant in Supabase provisioniert; DATABASE_URL und DATABASE_TENANT_URL konfiguriert; SuperAdmin-Login liefert HTTP 200 mit JWT und HttpOnly-Cookie
[x] Zentrale E-Mail-Normalisierung, globale Konfliktprüfung und Einladungstoken-Hashspeicherung mit elf Unit-Tests und Datenbankprüfung DB-RLS-B08 erfolgreich
[~] AWS-KMS-TOTP-Pfad mit drei Unit-Tests umgesetzt; AES-256-GCM Dev-Fallback für lokale Entwicklung ohne AWS KMS implementiert und mit T-07 bis T-11 nachgewiesen; produktive Schlüssel-, Rechte-, Rotations-, Integrations- und Ausfallnachweise offen
[~] Tenant-Vorbereitung mit Pflicht-Plan, getrennte Vertragskontaktdaten und kontrollierte Einladungssperren mit drei Unit-Tests umgesetzt; Vollständigkeitssperre und vollständiger Vertrags-/Einladungspfad offen

2. Datenbank / Schema 🟠

Das aktuelle backend/prisma/schema.prisma ist die technische Wahrheit des fachlich und technisch abgestimmten Prisma-v4-Zielmodells für UC00. Der kontrolliert ausgerollte Entwicklungsdatenbankstand ist im docs/developer/uc00/uc00-datenbank-iststand.md nachgewiesen. Referenzdokumente: docs/developer/uc00/uc00-prisma-v4-zielschema.md und docs/developer/uc00/prisma-v3-validierung-offen.md

2.1 Technische Validierung des Prisma-v4-Zielschemas

Prio Status Aufgabe
P0 [x] npx prisma validate lokal ausführen und Ergebnis dokumentieren
P0 [x] npx prisma generate nach validate ausführen
P0 [x] Initialmigration, PostgreSQL-Schutzmigration und statischen Migrationsvalidator erstellen
P0 [x] npm run build nach generate am 10.08.2026 erfolgreich bestätigt
P1 [x] Historischen db pull-Nachweis nach Freigabe des UC00-Zielmodells durch einen aktuellen Ist-Soll-Abgleich ersetzen

2.2 Offene Schema-Entscheidungen

Quelle: docs/developer/database/schema-abgleich/db-schema-gegencheck-checkliste.md
Hinweis: Frühere konzeptionelle Entscheidungen wurden gegen die akzeptierten UC00-Fachregeln und das Prisma-v4-Zielschema neu zugeordnet. Migration und Laufzeitverhalten bleiben getrennt nachzuweisen.

Prio Status Entscheidung
P1 [x] 17 modellrelevante UC00-Regelbereiche gegen Prisma, OpenAPI, Backend und Tests nachverfolgt
P1 [x] Prisma-Ausgangsbasis und Grenzen ihrer technischen Wahrheit gemäss ADR-009 formal festgelegt
P1 [x] recovery_codes speichert im Prisma-v4-Zielschema ausschliesslich codeHash
P1 [x] notification_templates ist im Prisma-v4-Zielschema modelliert
P1 [x] InvitationToken.tokenType, Hash, Status und Lifecycle-Zeitpunkte sind im Prisma-v4-Zielschema konsistent modelliert
P1 [~] User.email global eindeutig gemäss ADR-011; Normalisierung, Fehlerbehandlung und Unit-Tests umgesetzt, Integrations- und End-to-End-Tests offen
P1 [~] customers.organization_id → entschieden: raus aus V1 (laut roadmap-schema-sync-2026-05-08.md), ADR fehlt
P1 [x] Prisma-Migrationen mit überprüften PostgreSQL-Ergänzungen gemäss ADR-010 als führendes Deploymentverfahren festgelegt
P1 [x] Providerneutrale RLS-Strategie für Supabase-Entwicklung und generisches Produktions-PostgreSQL gemäss ADR-012 festgelegt
P2 [~] UC01-Felder sind teilweise modelliert; formale Zuordnung und ADR fehlen
P2 [x] refresh_tokens, recovery_codes, notification_templates, plan_features in roadmap.md V1-Tabellenliste ergänzt ✅

2.3 Schema-Dokumente nachführen

Prio Status Aufgabe
P2 [~] docs/developer/database/db-schema.md als historisch gekennzeichnet; nach Zielmodellfreigabe vollständig aktualisieren
P2 [x] database/README.md auf ADR-009 und ADR-010 ausgerichtet und vorhandene SQL-Dateien klassifiziert
P2 [x] database/schema-final.sql und weitere mutierende SQL-Dateien als historisch und nicht ausführbar gekennzeichnet
P2 [x] docs/developer/database/supabase-rls-strategy.md providerneutral neu gefasst und Policy-Matrix des aktuellen Schemas nachgeführt
P3 [x] Prisma-v4-Zielmodell, initiale Migration und PostgreSQL-Ergänzungen kontrolliert gegen Entwicklung ausgerollt

2.4 Historische Schemaarbeiten

Die folgenden Angaben beschreiben nachweisbare Arbeiten aus Mai 2026. Sie bestätigen weder die Vollständigkeit des aktuellen UC00-Zielmodells noch einen aktuellen Datenbankstand.

Status Aufgabe
[x] 18 Tabellen auf Supabase Dev installiert
[x] Damaligen Schemaentwurf konzeptionell gegen UC00–UC09, UC-SA und UC18-Kompatibilität geprüft
[x] db-schema.md v6 erstellt
[x] db-schema-gegencheck-checkliste.md – 11 Prüfschritte durchgeführt
[x] roadmap-schema-sync-2026-05-08.md – Roadmap-Korrekturbedarf dokumentiert
[x] Damaligen Stand mit npx prisma validate technisch geprüft
[x] Damaligen Ist-Soll-Diff zwischen Supabase und Schema analysiert
[x] Damaligen Schemastand mit npx prisma db push auf Supabase synchronisiert
[x] Schema um RecoveryCode, NotificationTemplate und PlanFeature ergänzt
[x] Fachlich beschlossenes TenantProfile, TenantOnboarding, Schrittmodell und Tenant-Lifecycle in Prisma umgesetzt und formal validiert

3. Use Cases ⬜

Die UC-Spezifikationen UC01 bis UC08, UC-SA und UC18 sind ausgearbeitet, teilweise mit offenem Review; die UC09-Spezifikation ist noch nicht erstellt. Für UC01–UC09 und UC-SA sind Backend und Frontend noch nicht gestartet; für UC00 ist das Backend in Bearbeitung und das Frontend noch nicht gestartet.
UC00 ist der aktive Use Case — alle anderen warten auf UC00-Abschluss.

3.1 UC00 – Tenant-Onboarding & Schulverwaltung 🟡

Schritt Status
Steckbrief [x] Abgeschlossen
Screen-Flow & Wireframes (11 Screens) [x] Abgeschlossen
Datenmodell / Prisma-Zielschema [x] Fachlich und technisch abgestimmt, statisch validiert und kontrolliert gegen die Entwicklungsdatenbank ausgerollt
GEM-Reviews (Quality Gate) [x] 13/15 DONE → GO für Schritt 4
OpenAPI 3.1 Spezifikation [x] Kanonischer UC00-Vertrag (UC00-OpenAPI 1.3.0) mit 35 Operationen, 68 Testfall-IDs und automatischer Strukturprüfung abgeschlossen; frühere vier Blöcke historisch
Backend Scaffolding [x] Abgeschlossen
Backend Business-Logik [~] In Bearbeitung – Auth-Flow T-01–T-11 nachgewiesen, persistentes Vier-Schritt-Onboarding umgesetzt, MailService gehärtet und gegen Hostpoint nachgewiesen; Vertragsabschluss, Benutzer-Voranlage, Admin-Einladung und Tests offen
Frontend (React) [ ] Offen
Testing (Jest + Cypress) [ ] Offen

Fortschrittsschätzung UC00 (Stand 15.10.2026): ca. 25 % – berechnet nach der Regel in der Legende aus der UC00-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 46 5 8 80 % 16,0 %
↳ Gate 1 Überblick 5 0 0 100 %
↳ Gate 2 Fachliche Dokumentation 9 0 1 90 %
↳ Gate 3 Benutzerabläufe und Oberflächen 1 0 4 20 %
↳ Gate 4 Datenmodell 7 1 0 94 %
↳ Gate 5 Programmierschnittstellen 8 0 0 100 %
↳ Gate 6 Architekturentscheidungen 10 0 1 91 %
↳ Gate 7 Datenschutz und Compliance 6 4 2 67 %
Implementierung Backend (Gate 8, Gewicht 35 %) 8 9 49 19 % 6,6 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 2 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 1 4 37 7 % 1,1 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 2 4 17 % 0,8 %
Gesamt (175 Kriterien, Gewicht 100 %) 55 20 100 24,6 % ≈ 25 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC00 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.2 UC01 – Equipment erfassen ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; Review und Datenmodell-Entscheide (Schema-Prüfung Schritt 8, zehn offene Entscheidungsfragen) offen
Screens (EQ-01 bis EQ-10) [~] Vorhanden; fachliche Abnahme offen
Backend [ ] Offen – startet nach UC00-Stabilisierung
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC01 (Stand 15.10.2026): ca. 10 % – berechnet nach der Regel in der Legende aus der UC01-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 6 1 43 % 8,6 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 1 0 50 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 6 5 8,6 % ≈ 10 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC01 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.3 UC02 – TÜV-Inspektion einreichen ⬜

Schritt Status
Spezifikation v0.3 [~] Weitgehend abgeschlossen; Review offen; Fachfragen F1–F4 offen (inkl. Praxisdokument-Abgleich PD-01)
Screens (TÜV-01 bis TÜV-08) [~] Vorhanden; fachliche Abnahme offen
Praxisanalyse (PD-01) [x] Abgeschlossen
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Offene fachliche Fragen UC02 (Quelle: docs/developer/praxisdokumente/pd01-flaschenpruefung-real-workflow.md Kap. 10):

Prio Status Frage
P2 [ ] F1: Reparatur-/Füllauftrag als digitales Dokument in V1?
P2 [ ] F2: inspection_calendar_week als Batch-Gruppierung im UI nutzen?
P2 [ ] F3: wj_permanent_expansion_pct > 5% → auto-failed oder nur Warnung?
P2 [ ] F4: TÜV-Zeitraum-Symbol (◆) → ENUM oder Freitext?

Fortschrittsschätzung UC02 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC02-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 5 2 36 % 7,1 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 5 6 7,1 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC02 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.4 UC03 – Füll-Abo & Füllkarten-Verwaltung ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; einzelne Punkte offen
Fachentscheidungen v0.4 [x] Abgeschlossen
Screens (FA-01 bis FA-15) [~] Vorhanden; fachliche Abnahme offen
Self-Service-Ergänzung [x] Abgeschlossen
Offene Punkte (OP-RR5, OP-SS6, OP-OQ7, u.a.) [~] Teilweise offen – siehe docs/developer/uc03/uc03-offene-punkte.md
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC03 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC03-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 5 2 36 % 7,1 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 5 6 7,1 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC03 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.5 UC04 – Inhouse-Service erfassen ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; Review offen
Screens (IS-01 bis IS-08) [~] Vorhanden; fachliche Abnahme offen
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC04 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC04-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 5 2 36 % 7,1 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 5 6 7,1 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC04 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.6 UC05 – Fristen-Dashboard ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; Review offen
Screens (FR-01 bis FR-08) [~] Vorhanden; fachliche Abnahme offen
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC05 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC05-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 5 2 36 % 7,1 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 5 6 7,1 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC05 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.7 UC06 – Kunden einladen & Portal ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; Review offen
Screens (KP-01 bis KP-08) [~] Vorhanden; fachliche Abnahme offen
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC06 (Stand 15.10.2026): ca. 10 % – berechnet nach der Regel in der Legende aus der UC06-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 6 1 43 % 8,6 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 1 0 50 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 6 5 8,6 % ≈ 10 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC06 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.8 UC07 – Benachrichtigungen ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; Review offen
Screens (BN-01 bis BN-08) [~] Vorhanden; fachliche Abnahme offen
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC07 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC07-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 5 2 36 % 7,1 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 5 6 7,1 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC07 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.9 UC08 – Benutzerverwaltung ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; Review offen
Screens (BU-01 bis BU-08) [~] Vorhanden; fachliche Abnahme offen
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC08 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC08-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 5 2 36 % 7,1 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 5 6 7,1 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC08 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.10 UC09 – Berichte & Export ⬜

Schritt Status
Spezifikation [ ] Offen – noch nicht erstellt (frühere Angabe «Abgeschlossen» bezog sich auf das alte UC09, heute UC03 Füll-Abo)
Screens [ ] Nicht vorhanden
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC09 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC09-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 3 4 21 % 4,3 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 0 1 0 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 0 1 0 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 3 8 4,3 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC09 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.11 UC-SA – Superadmin-Panel ⬜

Schritt Status
Spezifikation [~] Weitgehend abgeschlossen; Review offen
Screens (SA-01 bis SA-08) [~] Vorhanden; fachliche Abnahme offen
Backend [ ] Offen
Frontend [ ] Offen
Testing [ ] Offen

Fortschrittsschätzung UC-SA (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC-SA-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 5 2 36 % 7,1 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 1 0 50 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 5 6 7,1 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC-SA derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.

3.12 UC18 – Equipment-Verleih ⬜ (V2/Backlog)

Schritt Status
Spezifikation [x] Abgeschlossen
Screens [ ] Nicht vorhanden
V2-Kompatibilität im bisherigen Schemaentwurf berücksichtigt [x] Ja (keine V1-Tabellen)
Umsetzung [ ] V2/Backlog

Fortschrittsschätzung UC18 (Stand 15.10.2026): ca. 5 % – berechnet nach der Regel in der Legende aus der UC18-Abschlusscheckliste.

Bereich Erledigt In Bearb.¹ Offen² Fortschritt Beitrag
Spezifikation und Entwurf (Gates 1–7, Gewicht 20 %) 0 4 3 29 % 5,7 %
↳ Gate 1 Überblick 0 1 0 50 %
↳ Gate 2 Fachliche Dokumentation 0 1 0 50 %
↳ Gate 3 Benutzerabläufe und Oberflächen 0 0 1 0 %
↳ Gate 4 Datenmodell 0 1 0 50 %
↳ Gate 5 Programmierschnittstellen 0 0 1 0 %
↳ Gate 6 Architekturentscheidungen 0 1 0 50 %
↳ Gate 7 Datenschutz und Compliance 0 0 1 0 %
Implementierung Backend (Gate 8, Gewicht 35 %) 0 0 1 0 % 0,0 %
Implementierung Frontend (Gate 8, Gewicht 25 %) 0 0 1 0 % 0,0 %
Tests und Abnahme (Gate 9, Gewicht 15 %) 0 0 1 0 % 0,0 %
Abschluss und Konsistenz (Gate 10, Gewicht 5 %) 0 0 1 0 % 0,0 %
Gesamt (11 Kriterien, Gewicht 100 %) 0 4 7 5,7 % ≈ 5 %

¹ Einschliesslich Zur Prüfung; zählt jeweils halb. ² Einschliesslich Blockiert. Kriterien mit Nicht anwendbar werden nicht gezählt (bei UC18 derzeit keine). Der Fortschritt von Spezifikation und Entwurf ist der Mittelwert der Gates 1 bis 7.


4. Compliance & GEM-Reviews 🟠

4.1 GEM-Reviews UC00 Quality Gate

GEM Rolle Status Datei
GEM 01 Software-Architekt [x] DONE gem01-review.md
GEM 02 Coding-Assistent [~] Business-Logik implementiert – Review ausstehend –
GEM 03 Compliance-Wächter [x] DONE v1.1 gem03-review_claude.md
GEM 04 Normen-Engine [x] DONE v2.0 gem04-review_claude.md
GEM 05 Mobile-Workflow-Experte [x] DONE gem05-review.md
GEM 06 QA-Engineer [x] DONE gem06-review.md
GEM 07 Localization-Experte [x] DONE gem07-review.md
GEM 08 Modul-Integrator [x] DONE gem08-review.md
GEM 09 UX/UI Designer [x] DONE gem09-review.md
GEM 10 SaaS-Business-Manager [x] DONE gem10-review.md
GEM 11 DevOps / Infrastruktur [x] DONE gem11-review.md
GEM 12 Security-Experte [x] DONE gem12-review.md
GEM 13 Datenbank-Administrator [x] DONE gem13-review.md
GEM 14 Dokumentations-Manager [x] DONE gem14-review.md
GEM 00 Projektleitung [ ] Nach Abschluss Schritt 4 –

4.2 GEM-Nacharbeiten (P1 – vor Go-Live)

Quelle: docs/developer/review/gem03-review_claude.md und gem04-review_claude.md

Prio Status Aufgabe Quelle
P1 [~] Modulare AVV-Vorlage erstellt; juristische Prüfung und Produktivfreigabe vor erstem produktivem Tenant abschliessen GEM 03
P1 [ ] GDPR-Consent-Felder in customers-Tabelle ergänzen (vor UC06) GEM 03
~~P1~~ [x] ~~ADR-015: Datenschutzrollen und Prozess des Auftragsverarbeitungsvertrags dokumentieren~~ GEM 03 ✅
~~P1~~ [x] ~~ADR-016: Hostpoint als V1-E-Mail-Provider auswählen und dokumentieren~~ GEM 03 ✅
P1 [~] Datenkatalog UC00 erstellt; Abschnitte 1 bis 11 und Speicherfristen fachlich geprüft, Gesamtabnahme offen GEM 03
P1 [ ] UC00-Authentifizierung auf Argon2id, verschlüsselte TOTP-Geheimnisse und gehashte Wiederherstellungscodes umstellen; Einladungstoken-Hashspeicherung ist abgeschlossen UC00 Abschnitt 7
P1 [ ] UC00-Konto erst nach erfolgreicher 2FA aktivieren und temporäre 2FA-Sitzungen zentral und kurzlebig speichern UC00 Abschnitt 7
P1 [~] Rechtliche Tenant-Daten und operatives Schulprofil mit TenantProfile trennen; Onboarding schreibt in TenantProfile, Trennungsnachweis und Tests offen UC00-08-22
P1 [~] Persistentes Vier-Schritt-Onboarding, Pflichtprüfungen und Drafts im Backend vereinheitlicht; Tenant-Lifecycle nur teilweise (Übergang nach active), Auditierung der Veröffentlichungsfreigaben und Tests offen UC00-08-23 bis UC00-08-27
P1 [ ] Plattform-, Tenant-, Auth-, Zugriffs-, System-, Lösch- und Versandprotokolle minimiert und manipulationsgeschützt vereinheitlichen UC00 Abschnitt 9
P1 [~] Wiederherstellungscodes aus dem E-Mail-Versand entfernt (UC00-08-28); Logausfälle überwachen und sicher nachliefern offen UC00 Abschnitte 7/9
P1 [~] Provider- und Unterauftragnehmerregister vollständig prüfen; aktuell kein produktiver Dienst approved UC00 Abschnitt 10
P1 [~] Hostpoint-Produktivfreigabe abschliessen: Nutzungsbestätigung, Auftragsbearbeitungsvereinbarung, Volumen, Standorte, Unterauftragnehmer, Aufbewahrung und Löschung UC00-07-12
P1 [~] Hostpoint-SMTP, STARTTLS, Zertifikatsprüfung, SPF, DKIM, DMARC und Absenderrichtlinie am 10.10.2026 nachgewiesen; DMARC-Berichtsadresse seit 12.10.2026 gesetzt; SPF-Eintrag am 12.10.2026 korrigiert; SPF, DKIM und DMARC an zugestellten Nachrichten bei Hostpoint und Microsoft 365 bestätigt; Rücklauf an bounces@ nachgewiesen; Bounce-Verarbeitung am 14.10.2026 End-to-End nachgewiesen; Wiederholung der Authentifizierungsprüfung vor p=reject offen ADR-016, UC00-08-54, UC00-08-55, UC00-09-32
P1 [ ] DMARC-Berichte von dmarc@divelogix360.ch auswerten und die DMARC-Richtlinie vor Produktivbetrieb von p=quarantine auf p=reject verschärfen, sobald nur Hostpoint als Versandquelle erscheint ADR-016
P1 [x] Bounce-Verarbeitung gemäss ADR-024 umsetzen: fünfte Migration für notification_log.invitation_token_id ✅, einheitliche SMTP-Fehlercodes ✅, Zustellstatus der Einladung in OpenAPI (GET /users/invitations, Vertrag 1.1.0) und Backend ✅; IMAP-Abruf mit Auswertung und Zuordnung ✅ (imapflow, mailparser, idempotent, standardmässig deaktiviert); End-to-End-Test am 14.10.2026 erfolgreich ✅ (Nachweis Abschnitt 7)
P1 [x] Backend an den UC00-Vertrag angleichen: Einladung über POST /users/invitations mit Rollen mitarbeiter und tenant_admin gemäss UC08-AC03 (Entscheid David Mittig vom 14.10.2026), Namen bis 100 Zeichen, Antwort gemäss InvitationResult ohne Adressen ✅; Widerruf mit 409 bei nicht mehr offener Einladung ✅; Vertrag 1.2.0 mit API-UC00-64 bis API-UC00-67 ✅; 71 Unit-Tests und OpenAPI-Prüfung am 14.10.2026 erfolgreich ✅; user_id in der Antwort folgt mit der sicheren Benutzer-Voranlage (ADR-015) und bleibt bis dahin dokumentierte Abweichung UC00-OpenAPI 1.2.0, UC08-AC03
P2 [ ] Zentralen Fehlerfilter einführen: Das Backend liefert Fehler als {error, message, status}, der UC00-Vertrag verlangt {code, message, status, request_id} UC00-OpenAPI ErrorResponse
P2 [ ] Antworten von Rollen- und Statusänderung (PATCH /users/:userId/role, /status) geben mit changed_by die E-Mail-Adresse der handelnden Person aus; auf eine Kennung reduzieren (Datenminimierung) UC08
P1 [x] Mitarbeitereinladung sperren, solange das Schulprofil unvollständig ist (Testfall T13 der UC00-Spezifikation, Regel G6): gemeinsame Pflichtfeldprüfung für Schulprofil, Kontaktdaten und mindestens eine Telefonnummer; POST /users/invitations antwortet mit 409 school_profile_incomplete, der Onboarding-Schritt first_employee mit 400 step_prerequisite_missing; UC00-OpenAPI 1.3.0 mit API-UC00-68; Unit-Tests sowie ISO-07 und ISO-08 am 14.10.2026 erfolgreich UC00-Spezifikation T13
P1 [x] Paket 1 (ADR-012): UsersService, InvitationService und Versandprotokoll auf den Kontextwrapper umgestellt; users im Tenant-Kontext, invitation_tokens und refresh_tokens im Plattform-Kontext mit ausdrücklicher Tenant-Grenze; Schutztest gegen direkte Zugriffe; 81 Unit-Tests und Kontextprüfung CTX-01 bis CTX-04 am 14.10.2026 erfolgreich ADR-012
P1 [x] Paket 2 (ADR-012): OnboardingService auf den Kontextwrapper umgestellt; Schritte in einer Tenant-Transaktion; Abschluss setzt Onboarding- und Tenant-Status gemeinsam im Plattform-Kontext (begründete Ausnahme); 8 neue Unit-Tests; 90 Unit-Tests und Kontextprüfung am 14.10.2026 erfolgreich (CTX-07 mangels Daten ohne Aussagekraft) ADR-012
P1 [x] Paket 3 (ADR-012): TenantsService im Plattform-Kontext mit Superadmin-ID, Prüfung und Änderung je Vorgang in einer Transaktion; Schutztest prüft alle Quelldateien unter src. Dabei gefunden und umgestellt: Anmeldeprotokoll (auth_log) im AuthService. Geprüft am 14.10.2026: Vor der Umstellung wurde keine einzige Anmeldung protokolliert (genau ein Eintrag in auth_log, die erste Anmeldung nach der Umstellung); seither wird eine erfolgreiche Anmeldung protokolliert. 139 Unit-Tests und Kontextprüfung (CTX-08 mangels Tenants ohne Aussagekraft) erfolgreich ADR-012
P1 [x] Paket 4 (ADR-012): direkte Rechte der Runtime-Logins entzogen (Migration 20261014111600_uc00_revoke_login_direct_privileges). Inventur vorher: Rechte auf allen 36 Tabellen, darunter _prisma_migrations ohne RLS, sowie auf Schema app und fünf Funktionen. Geprüft am 14.10.2026: DB-RLS-B09, CTX-00 (Zugriff ohne Kontext abgewiesen), 139 Unit-Tests, Anmeldung und Tenant-Liste über das Backend; Basis-Seed, Inventur und seed-dev-superadmin.ts verbinden sich über DIRECT_URL ADR-012
P1 [x] Positiver Laufzeitnachweis der Tenant-Isolation über die Anwendungsdienste: npm run isolation:check legt zwei Test-Tenants mit Admin, Mitarbeiter und Einladung kurzzeitig an, prüft ISO-01 bis ISO-08 über die Dienste mit den Runtime-Logins und entfernt die Testdaten wieder; am 14.10.2026 erfolgreich (Datenbank-Iststand 5.2) ADR-012
P1 [~] Hetzner Object Storage Nürnberg und AWS KMS Frankfurt vertraglich und datenschutzrechtlich prüfen; Support, Unterauftragnehmer, Löschung, Schlüsselbetrieb und Wiederherstellung vor Produktivbetrieb freigeben UC00-07-09, ADR-019
P1 [~] Hetzner Object Storage Falkenstein als getrennten Backupstandort vertraglich und technisch freigeben; RPO, RTO, Löschung und Restore nachweisen UC00-07-09, ADR-020
P1 [~] Grafana Cloud Pro Frankfurt vertraglich und datenschutzrechtlich freigeben; Data Processing Agreement (DPA, Auftragsverarbeitungsvertrag), Unterauftragnehmer, Support, Retention, Löschung, Filter und Alarmkette nachweisen UC00-07-09, ADR-021
P1 [~] Eigenbetriebenen ClamAV-Scanservice gemäss ADR-022 härten und nachweisen; Support-, Notfall- und Auslandszugriffe gemäss ADR-023 umsetzen und dienstbezogen nachweisen UC00-07-09, ADR-022, ADR-023
P1 [~] ADR-013 und ADR-019 umsetzen: private SSE-C-Ablage, AWS-KMS-Envelope-Encryption, 10-MB-Grenze, backendvermittelte Fünf-Minuten-Links und Malware-Prüfung UC00
P1 [~] Alle 33 TOM umsetzen und vor Produktivbetrieb mit vollständigem Nachweisdatensatz wirksam prüfen; kritische Abweichungen vor Freigabe beheben UC00-07-10, UC00 Abschnitt 11
P1 [ ] Zugriffsschutz, RLS, aktive Ratenbegrenzung, CSRF, zentrale Geheimnisverwaltung, TLS, Verschlüsselung und Serverhärtung umsetzen UC00 Abschnitt 11
P1 [ ] PDF-Upload auf 10 MB begrenzen, in Quarantäne prüfen und über höchstens fünf Minuten gültige signierte Anwendungslinks backendvermittelt bereitstellen UC00 Abschnitt 11
P1 [ ] ADR-020 umsetzen: WAL-PITR, tägliche und wöchentliche Sicherungen, RPO ≤ 1 Stunde, RTO ≤ 8 Stunden, tägliche Überwachung sowie quartalsweisen Restore betreiben UC00 Abschnitt 11
P1 [ ] Vertragsabschluss erst nach dauerhafter konsistenter Speicherung von SQL-Datensatz, PDF-Objekt und Auditnachweis bestätigen; Teilausfälle kompensieren und alarmieren ADR-020
P1 [ ] Grafana Alloy und Grafana Cloud Pro mit minimierten Metriken und Logs, externer Prüfung, vollständiger Alarmkette und monatlicher Kostenkontrolle umsetzen ADR-021
P1 [~] Speicher- und Aufbewahrungsfristen fachlich festgelegt; Retention-Klassen, tägliche Löschläufe, Provider- und Backup-Löschung technisch umsetzen UC00-07-02
P1 [~] Prüfbriefing für vorläufige zehnjährige RF-03-Vertragsfrist erstellt; endgültige Firma und Schweizer Einzelunternehmen sowie Pflichten für Deutschland, Schweiz und Österreich schriftlich juristisch bestätigen UC00-07-11
P1 [ ] cylinder_details-Schema um EN 1802/1968-Pflichtfelder erweitern GEM 04
P2 [x] DSFA-Schwellenprüfung für UC00 durchführen GEM 03
P1 [ ] UC00-Schwellenprüfung vor Produktivbetrieb durch Datenschutzfachperson bestätigen und jährlich sowie bei Auslösern neu bewerten UC00-07-07
P1 [ ] ADR-018 umsetzen: Audit-Schema bereinigen, Positivlisten erzwingen und täglichen kryptografischen Versiegelungsjob betreiben UC00-07-08
P2 [x] Tenant-Offboarding-Flow mit ADR-017 fachlich definieren GEM 03
P1 [ ] ADR-017 technisch umsetzen: Lifecycle, tenantweite Sperrung, Exportpaket, Benachrichtigungen, Löschlauf und Backup-Kontrolle UC00-07-04
P2 [ ] GEM 12 + GEM 13 nach Recovery-Codes-Entscheidung erneut bewerten GEM Reviews

5. Dokumentation 🟠

Mehrere historische Datenbankdokumente sind noch nicht mit dem Prisma-v4-Zielschema und dem tatsächlichen Datenbankstand konsolidiert.

5.1 Roadmap & Index

Prio Status Aufgabe
P2 [x] docs/management/roadmap.md: V1-Tabellenliste erweitern – refresh_tokens, recovery_codes, notification_templates, plan_features ✅ erledigt; fill_subscriptions, fill_cards, fill_card_transactions, equipment_notes, equipment_identifiers am 15.10.2026 mit Status OFFEN ergänzt (im Prisma-v4-Zielschema noch nicht enthalten)
P2 [x] docs/management/roadmap.md: customers.organization_id Aussage korrigieren (ist nicht in V1) – am 15.10.2026 korrigiert
P2 [x] docs/management/roadmap.md: UC18 als V2-Kompatibilitätsanforderung markieren – am 15.10.2026 in Kapitel 3.3 ergänzt
P2 [x] docs/management/roadmap.md: Nächste-Schritte-Tabelle (Kap. 6) aktualisieren – entfällt: Kapitel 6 seit 12.08.2026 durch «Meilensteine und Prioritäten» ersetzt
P2 [x] docs/index.md: UC02–UC09 und UC-SA als Einträge ergänzen – vorhanden (Tabelle «Use Cases» mit allen zwölf Use Cases)
P2 [x] docs/index.md: UC00-Datenmodell-Status korrigieren (nicht abgeschlossen) – entfällt: docs/index.md führt keine Statusangaben mehr; der Status steht ausschliesslich im Projektstatus
P2 [x] docs/index.md: UC01-Status mit Schema-Prüfhinweis ergänzen – entfällt in docs/index.md (keine Statusangaben); Hinweis auf die Schema-Prüfung Schritt 8 steht seit 15.10.2026 in Abschnitt 3.2 und im UC01-Dossier
P2 [x] Verbindlichen Aufbau, Terminologie und Statuswerte für UC-Dossiers definieren
P2 [x] Repository-weites UC-Artefaktinventar und wiederverwendbare Dossier-Vorlage erstellen
P2 [x] UC00 als Pilot-Dossier erstellen und im Dokumentationsindex verlinken
P2 [x] Automatisierte Struktur- und Linkprüfung für UC-Dossiers ergänzen
P1 [x] Verbindliche UC00-Abschlusscheckliste mit zehn Prüfgates und Nachweispflicht erstellen
P1 [x] Modellrelevante UC00-Nachverfolgbarkeitsmatrix gegen Prisma, OpenAPI, Backend und Testkriterien erstellen
P1 [x] Kanonischen UC00-OpenAPI-Vertrag und zentralen Testvertrag mit lückenloser automatischer Testfallzuordnung erstellen
P1 [~] UC00-Agenda UC00-07-03 bis UC00-07-11 fachlich bearbeitet; UC00-07-11 bleibt bis zur externen schriftlichen Rechtsfreigabe offen
P2 [ ] UC00-Pilot fachlich und redaktionell abnehmen
P2 [x] Dossiers für UC01 bis UC08, UC-SA und UC18 aus derselben Vorlage erstellen – am 12.08.2026 erstellt (jeweils Version 1.0 der Dossiers)
P2 [ ] Kanonischen Ordner und Spezifikationsablage für UC09 festlegen und Dossier erstellen
~~P1~~ [x] ~~tools/validate-uc-dossiers.ps1 -Strict lokal mit PowerShell ausführen und Ergebnis hier nachführen~~ – am 12.10.2026 lokal durch David Mittig ausgeführt (UC-Dossier-Prüfung 1.1.0): 0 Fehler, 0 Warnungen ✅
P2 [ ] Nach vollständigem Rollout die Dossier-Prüfung im strikten Modus verbindlich ausführen

5.2 Datenbankdokumentation

Prio Status Aufgabe
P2 [~] docs/developer/database/db-schema.md als historisch gekennzeichnet; nach Zielmodellfreigabe vollständig aktualisieren
P2 [x] database/README.md auf ADR-009 und ADR-010 ausgerichtet; Zielmodell- und Migrationsdetails werden über das UC00-Dossier geführt
P2 [x] database/schema-final.sql und weitere mutierende SQL-Dateien als historisch und nicht ausführbar gekennzeichnet
P3 [x] Alte Verweise auf docs/developer/uc00-spezifikation.md (ohne Unterordner) prüfen – geprüft am 15.10.2026: keine Links auf den alten Pfad mehr vorhanden; verbleibende Nennungen nur in historischen Prüfdokumenten

5.3 CLAUDE.md

Prio Status Aufgabe
~~P2~~ [x] ~~CLAUDE.md: Abschnitt 'Nächste Schritte', UC-Status und Arbeitsbranch-Hinweis aktualisieren~~ – entfällt: CLAUDE.md ist seit Version 2.0 eine reine Steuerungsdatei ohne Projektinformationen ✅

5.4 Offene Backend-Dateiprüfungen

Quelle: docs/developer/database/schema-abgleich/db-schema-gegencheck-checkliste.md Kap. 4.2
Die offenen Dateiprüfungen (prisma.module.ts, prisma.service.ts, app.module.ts, .env.example, package.json) werden ausschliesslich in Abschnitt 1.1 «Infrastruktur & Konfiguration» geführt. Die frühere Schema-Konsistenzprüfung von CLAUDE.md entfällt aus demselben Grund wie in Abschnitt 5.3.

5.5 Abschlusschecklisten und Fortschrittsschätzung

Prio Status Aufgabe
P2 [x] Universelle Regel zur Fortschrittsschätzung je Use Case, einheitlicher Aufbau aller Abschlusschecklisten mit Backend-/Frontend-Kennzeichnung in Gate 8, Menü je Use Case und Schnellzugriff in den Dossiers (15.10.2026)
P2 [x] UC00-Fortschrittsschätzung nach der universellen Regel berechnet und eingetragen (ca. 25 %)
P2 [x] UC01: Kriterien der Gates 1 bis 7 in der UC01-Abschlusscheckliste anhand der vorhandenen Artefakte nachführen und Fortschrittstabelle in Abschnitt 3.2 eintragen
P2 [x] UC02 bis UC09, UC-SA und UC18: Artefakte je Use Case prüfen, Abschlusschecklisten nachführen und Fortschrittstabellen eintragen
P2 [x] UC09: Widerspruch bereinigen – Projektstatus und Zusammenfassung führen die Spezifikation als abgeschlossen, laut Dossier-Inventar fehlt die Spezifikationsdatei
P3 [x] Verweise auf UC00-08-08 in uc00-datenkatalog.md (DK-11), uc00-nachverfolgbarkeitsmatrix.md (M-02) und KIToDo.md um das aufgeteilte Frontend-Kriterium UC00-08-68 ergänzen
P2 [x] Fachliche und technische Verantwortung in den Dossiers UC01 bis UC18 zugeordnet (David Mittig, wie UC00; 15.10.2026)
P2 [x] UC02 bis UC08 und UC-SA: Spezifikationsstand im Projektstatus und in den Dossiers mit der Statusübersicht der Spezifikationen abgleichen (Kopfstatus «Abgeschlossen» bei UC05, UC06, UC07, UC-SA trotz Teilen in Bearbeitung und offenem Review) und Screen-Status im Abschnitt «Screen-Flow» der Spezifikationen nachführen, analog UC01
P2 [ ] Je Use Case vor dem Start des Backends die Schema-Detailprüfung gegen das Prisma-v4-Zielschema wiederholen; die vorhandenen Detailprüfungen beziehen sich auf das frühere Zielschema v3
---

6. Frontend ⬜

Frontend ist noch nicht gestartet. Startet nach UC00-Backend-Stabilisierung.

Prio Status Aufgabe
P2 [ ] React-Frontend Grundstruktur aufsetzen
P2 [ ] Routing-Konzept implementieren (UUID-basiert, keine sequenziellen IDs)
P2 [ ] Design-System erstellen (GEM 09)
P3 [ ] UC00 Frontend implementieren
P1 [ ] ADR-015: Superadmin-Oberfläche für Vertragsstatus, elektronischen Abschluss und Upload externer Vertragsdokumente entwerfen und implementieren
P3 [ ] UC01–UC09, UC-SA Frontend (nach UC00)

7. Offene Architekturentscheide (ADRs)

Prio Status ADR Thema
~~P1~~ [x] ADR-009 Prisma-Schema als technische Wahrheit der Anwendungsmodelle mit Grenzen zu Fachmodell, Migration und Datenbankstand akzeptiert ✅
~~P1~~ [x] ADR-010 Prisma-Migrationen mit überprüften PostgreSQL-Ergänzungen als führendes Deploymentverfahren akzeptiert ✅
P1 [~] ADR-011 Globale E-Mail-Eindeutigkeit, zentrale Normalisierung, Konfliktbehandlung und Einladungstoken-Hashspeicherung umgesetzt; vollständige Integrations- und End-to-End-Tests offen
~~P1~~ [x] ADR-012 Providerneutrale RLS mit getrennten Datenbankrollen und transaktionsgebundenem Tenant-Kontext akzeptiert ✅
P1 [~] ADR-013 Private PDF-Vertragsablage akzeptiert; Anbieterwahl gemäss ADR-019 entschieden, technische Umsetzung offen
P1 [~] ADR-015 Auftragsverarbeitungsvertrag und Datenschutzrollen akzeptiert; juristische Prüfung und technische Umsetzung offen
~~P1~~ [x] ADR-016 Hostpoint als V1-E-Mail-Provider akzeptiert; Produktivsperre und Umsetzung separat offen ✅
P1 [~] ADR-019 Hetzner Object Storage und AWS KMS akzeptiert; Produktivnachweise und technische Umsetzung offen
P1 [~] ADR-020 Backup und Wiederherstellung akzeptiert; Produktivnachweise, Umsetzung und Restore-Tests offen
P1 [~] ADR-021 Grafana Cloud Pro und Monitoringkostenkontrolle akzeptiert; Produktivnachweise, Umsetzung und Alarmtests offen
P1 [~] ADR-022 Eigenbetriebene Malware-Prüfung akzeptiert; Härtung, Umsetzung, Ressourcen- und Wirksamkeitsnachweise offen
P1 [~] ADR-023 Support-, Notfall- und Auslandszugriffsmodell akzeptiert; Provider-, Umsetzung- und Zugriffsnachweise offen
P1 [~] ADR-024 Verarbeitung von Rücklaufmeldungen akzeptiert; Rücklauf nachgewiesen, Runbook bestätigt; Migration, IMAP-Abruf und Tests offen

Das verbindliche Register wird unter docs/developer/adr/README.md geführt. ADR-006, ADR-007, ADR-008, ADR-011, ADR-013, ADR-015, ADR-016, ADR-017, ADR-018, ADR-019, ADR-020, ADR-021, ADR-022, ADR-023 und ADR-024 sind akzeptiert; Produktivnachweise, Implementierung und Tests werden getrennt nachgeführt.


Historische Arbeitsnotizen

Diese aus dem früheren Statusdokument übernommenen Notizen bleiben als historische Belege erhalten. Die verbindliche Änderungshistorie steht im Dokumentenkopf.

Datum, Uhrzeit Änderung
13.05.2026 20:08 Business-Logik UC00: 2FA-Setup-Flow (3 Endpoints), MailService (nodemailer), OnboardingService (vollständig), schema.prisma v4 (OnboardingStep + onboardingCompletedAt), Seed-Script erstellt
13.05.2026 17:30 Supabase verbunden, prisma validate/generate/db push erfolgreich, schema.prisma v3 um RecoveryCode/NotificationTemplate/PlanFeature ergänzt, roadmap.md V1-Tabellen nachgeführt, P0-Blocker geschlossen
Mai 2026 Initiale Erstellung – konsolidiert aus roadmap.md, GEM-REVIEW-STATUS.md, UC00-BACKEND-STABILISIERUNG.md, db-schema-gegencheck-checkliste.md, prisma-v3-validierung-offen.md, uc03-offene-punkte.md, pd01-flaschenpruefung-real-workflow.md

Änderungshistorie

Datum, Uhrzeit Version Änderung Autor
16.10.2026 11:12 5.70 Gesamtstatus: UC19 «Kurs- und Brevetverwaltung» (V2, Konzept) gemäss Roadmap 3.0 ergänzt Claude
15.10.2026 18:04 5.69 Abschnitt 5.2: Prüfung alter Verweise auf docs/developer/uc00-spezifikation.md erledigt Claude
15.10.2026 16:29 5.68 Abschnitt 5.1: vier Roadmap-Aufgaben erledigt bzw. entfallen Claude
15.10.2026 16:12 5.67 Abschnitt 5.1: drei Aufgaben zu docs/index.md geprüft und als erledigt bzw. entfallen nachgeführt Claude
15.10.2026 15:45 5.66 Spezifikations- und Screen-Status für UC02 bis UC08 und UC-SA an die Spezifikationen angeglichen («Weitgehend abgeschlossen; Review offen», Screens «Vorhanden; fachliche Abnahme offen»; Entscheid David Mittig vom 15.10.2026); Aufgabe in 5.5 erledigt Claude
15.10.2026 15:41 5.65 2 Verweise auf Kriterien der UC00-Abschlusscheckliste direkt verlinkt Claude
15.10.2026 15:37 5.64 Hinweis zu Beginn von Abschnitt 3 korrigiert: UC09-Spezifikation noch nicht erstellt (Entscheid David Mittig vom 15.10.2026) Claude
15.10.2026 15:28 5.63 Abschnitt 5.5: Aufgabe zu den Verweisen auf UC00-08-08/UC00-08-68 erledigt Claude
15.10.2026 15:24 5.62 UC09-Spezifikationsstand von «abgeschlossen» auf «Offen; Spezifikation noch nicht erstellt» korrigiert (frühere Angabe stammte vom alten UC09, heute UC03); Aufgabe in 5.5 erledigt (Entscheid David Mittig vom 15.10.2026) Claude
15.10.2026 15:18 5.61 Abschnitt 5.5: Zuordnung der Verantwortung als erledigt, Abgleich Spezifikations- und Screen-Status UC02–UC08/UC-SA sowie Schema-Prüfung gegen v4 vor Backend-Start als offene Aufgaben ergänzt (Entscheid David Mittig vom 15.10.2026) Claude
15.10.2026 15:17 5.60 Fortschrittsschätzungen für UC02 bis UC09, UC-SA und UC18 eingetragen (Abschnitte 3.3 bis 3.12 und Gesamtstatus: UC06 ca. 10 %, übrige ca. 5 %); Aufgabe in 5.5 erledigt Claude
15.10.2026 15:01 5.59 UC01-Fortschrittsschätzung eingetragen (ca. 10 %, Abschnitt 3.2 und Gesamtstatus); Aufgabe in 5.5 erledigt Claude
15.10.2026 14:55 5.58 Abschnitt 5.1: Aufgabe «Dossiers für UC01 bis UC08, UC-SA und UC18 erstellen» als erledigt nachgeführt (Dossiers seit 12.08.2026 vorhanden) Claude
15.10.2026 11:19 5.57 Abschnitt 5.5 «Abschlusschecklisten und Fortschrittsschätzung» mit erledigten und offenen Aufgaben ergänzt (Entscheid David Mittig vom 15.10.2026: offene Punkte zentral im Projektstatus führen) Claude
15.10.2026 10:15 5.56 Abschnitt 3.2: UC01-Screens von «Abgeschlossen» auf «Vorhanden; fachliche Abnahme offen» korrigiert (Entscheid David Mittig vom 15.10.2026) Claude
15.10.2026 10:06 5.55 UC01-Spezifikationsstand von «Abgeschlossen» auf «Weitgehend abgeschlossen; Review und Datenmodell-Entscheide offen» korrigiert (Review der Spezifikation offen, zehn offene Entscheidungsfragen aus Schema-Prüfung Schritt 8; Entscheid David Mittig vom 15.10.2026) Claude
15.10.2026 09:54 5.54 UC00-Fortschrittstabelle lesbarer gestaltet: Zahlenspalten je Status, Gates 1 bis 7 als Unterzeilen, Gates und Gewicht in der Spalte «Bereich» (sechs Spalten, ohne waagrechtes Scrollen), Fussnoten zur Zählweise; Werte unverändert (ca. 25 %) Claude
15.10.2026 09:40 5.53 UC00-Fortschrittsschätzung nach der universellen Regel aus der Abschlusscheckliste neu berechnet: ca. 25 % (bisher ca. 40 % nach der früheren Regel); Gesamtstatus nachgeführt Claude
15.10.2026 09:32 5.52 Fortschrittsschätzung je Use Case als universelle Regel auf Basis der Abschlusscheckliste neu gefasst (fünf Bereiche aus den zehn Gates, Namensgrundsatz, Zählweise; Entscheid David Mittig vom 15.10.2026); Werte je Use Case folgen separat Claude
14.10.2026 14:22 5.51 Fortschrittsschätzung je Use Case eingeführt (Gewichtung 20/35/25/15/5, Legende); UC00 mit ca. 40 % in Gesamtstatus und Abschnitt 3.1 ausgewiesen (Entscheid David Mittig vom 14.10.2026) Claude
14.10.2026 14:17 5.50 Abschnitt 3.1: veraltete Zählung des UC00-Vertrags (33 Operationen, 61 Testfall-IDs) auf den geprüften Stand 1.3.0 korrigiert (35 Operationen, 68 Testfall-IDs) Claude
14.10.2026 13:59 5.49 Aufgabe T13 abgeschlossen: Mitarbeitereinladung erst nach vollständigem Schulprofil (G6, UC00-OpenAPI 1.3.0, API-UC00-68, ISO-07/ISO-08); 149 Unit-Tests in 16 Testdateien Claude
14.10.2026 13:42 5.48 Positiven Isolationsnachweis über die Anwendungsdienste erbracht (Isolationsprüfung ISO-01 bis ISO-06) Claude
14.10.2026 13:32 5.47 Paket 4 der Umsetzung von ADR-012 abgeschlossen (direkte Login-Rechte entzogen); sechs Migrationen, neun Datenbankschutzprüfungen Claude
14.10.2026 13:06 5.46 Einträge der Änderungshistorie vom 14.10.2026 an die richtige Stelle verschoben und fehlerhafte Zeitangaben korrigiert; inhaltlich unverändert Claude
14.10.2026 13:03 5.45 Paket 3 der Umstellung auf den Kontextwrapper abgeschlossen (inklusive Anmeldeprotokoll); Teststand 139 Unit-Tests Claude
14.10.2026 12:40 5.44 Paket 2 der Umstellung auf den Kontextwrapper abgeschlossen; Teststand 90 Unit-Tests Claude
14.10.2026 12:15 5.43 Paket 1 der Umstellung auf den Kontextwrapper abgeschlossen; Befund zu direkten Login-Rechten (CTX-00) und Pakete 2 bis 4 sowie positiver Isolationsnachweis erfasst; Teststand 81 Unit-Tests Claude
14.10.2026 11:29 5.42 Passwort des Entwicklungs-Superadmins ersetzt und Anmeldung geprüft; Aufgabe abgeschlossen Claude
14.10.2026 11:06 5.41 Sicherheitsvorfall vom 14.10.2026 (hochgeladene .env-Kopie) mit Ursache, Betroffenheit und Massnahmen dokumentiert; Absicherung des Entwicklungs-Superadmins erfasst Claude
14.10.2026 10:14 5.40 Einladungsroute nach erfolgreichem Testlauf abgeschlossen; Teststand 71 Unit-Tests und OpenAPI-Prüfung mit 67 Testfällen; Aufgaben zu zentralem Fehlerformat und changed_by erfasst; user_id der Benutzer-Voranlage zugeordnet Claude
14.10.2026 10:07 5.39 Einladungsroute an den UC00-Vertrag angeglichen (UC00-OpenAPI 1.2.0, Rolle tenant_admin gemäss UC08-AC03); Aufgaben für Sperre nach T13 und Prüfung der Datenbankzugriffe im UsersService erfasst Claude
14.10.2026 09:17 5.38 Bounce-Verarbeitung End-to-End nachgewiesen (14.10.2026); P1-Aufgabe erledigt; Korrektur der Versandzeitpunkte im MailService; Produktivsperre ohne Bounce-Handler nachgeführt Claude
14.10.2026 08:10 5.37 Bounce-Abruf umgesetzt und unit-getestet; Teststand 59 Unit-Tests Claude
13.10.2026 14:20 5.36 Teststand nachgeführt: 43 Unit-Tests in 9 Testdateien und OpenAPI-Prüfung mit 63 Testfällen erfolgreich (13.10.2026) Claude
13.10.2026 14:15 5.35 Bounce-Verarbeitung: Zustellstatus in Vertrag und Backend umgesetzt; Aufgabe zur Angleichung der Einladungsroute an den Vertrag ergänzt Claude
13.10.2026 13:38 5.34 Containerbetrieb des Backends mit Health-Endpunkt aufgenommen; P3-Prüfaufgabe für eine Entwicklungsumgebung auf dem NAS ergänzt; npm-Befunde vom 13.10.2026 nachgeführt Claude
13.10.2026 00:34 5.33 Fünfte Migration angewendet, Datenbankschutzprüfungen nach der fünften Migration bestanden, 30 Unit-Tests, MailService mit Einladungsverweis, SMTP-Fehlercodes und minimiertem Anwendungslog nachgeführt Claude
12.10.2026 22:58 5.32 Abschnitt 3 präzisiert: Backend für UC00 in Bearbeitung, für die übrigen Use Cases wie das Frontend noch nicht gestartet; Runbook der Bounce-Verarbeitung als bestätigt nachgeführt Claude
12.10.2026 22:29 5.31 ADR-024 zur Verarbeitung von Rücklaufmeldungen aufgenommen: Entscheid im Sachstand, ADR-Tabelle und Register-Hinweis nachgeführt; P1-Aufgabe zur Umsetzung ergänzt Claude
12.10.2026 22:04 5.30 Zustell-, Bounce- und Authentifizierungsprüfung vom 12.10.2026 nachgeführt: SPF-Fehler bei Microsoft 365 gefunden und Eintrag auf include korrigiert, SPF/DKIM/DMARC bei Hostpoint und Microsoft 365 bestätigt, Rücklauf an bounces@ nachgewiesen; erledigte DMARC-Berichtsadresse aus der P1-Aufgabe entfernt Claude
12.10.2026 20:53 5.29 DMARC-Berichtsadresse über selbstverwalteten DNS-Eintrag umgesetzt; Aufgabe zur Verschärfung auf p=reject vor Produktivbetrieb ergänzt Claude
12.10.2026 19:06 5.28 Lauf von validate-uc-dossiers.ps1 -Strict als erledigt nachgeführt: 0 Fehler, 0 Warnungen Claude
12.10.2026 11:23 5.27 Schreibfehler im Historieneintrag 5.26 korrigiert («1 Eintrag») Claude
12.10.2026 11:01 5.26 Versionsnummern der Änderungshistorie chronologisch durchgehend nummeriert (1 Eintrag angepasst; Datum, Änderung und Autor unverändert) Claude
12.10.2026 09:58 5.25 Änderungshistorie ans Dokumentende verschoben und Sprunglink «Änderungshistorie anzeigen» unter dem Kopf ergänzt (einheitlicher Dokumentaufbau gemäss AGENTS.md) Claude
12.10.2026 09:39 5.24 Ausstehenden Lauf von validate-uc-dossiers.ps1 -Strict als P1-Aufgabe in Abschnitt 5.1 aufgenommen; UC00-08-10 in Abschnitt 1.7 auf in Bearbeitung gesetzt Claude
12.10.2026 09:08 5.23 Explizite Sprungmarke für Abschnitt 5.4 ergänzt, damit der Verweis der Abschlusscheckliste auch in MkDocs funktioniert Claude
12.10.2026 09:07 5.22 Platzhalter-Zeitstempel der Einträge 5.14, 5.16 und 5.17 auf die Commit-Zeiten korrigiert und Autor der Einträge 5.14 bis 5.21 auf den tatsächlichen Urheber Claude gesetzt Claude
12.10.2026 09:02 5.21 Konsistenzprüfung nachgeführt: Widersprüche in den Abschnitten 1.6, 1.8, 2.2, 3.1, 4.2, 5.3 und 5.4 bereinigt, Kurzübersicht um aktuelle P1-Schritte ergänzt, NotificationLog in Gesamtstatus und Checkliste aufgenommen, Nachweis Hostpoint-Mailversand verlinkt Claude
10.10.2026 15:16 5.20 SPF/DKIM/DMARC-Nachweis erbracht: SPF mit -all konfiguriert, DKIM mit drei Schlüsseln (Ed25519, RSA-1024, RSA-2048, Selector 20261010-*) im DNS aktiv, DMARC p=quarantine aktiv; ADR-016-Bedingung SPF/DKIM/DMARC erfüllt Claude
10.10.2026 13:58 5.19 NotificationLog-Einträge in MailService nach ADR-018 umgesetzt: SHA-256-Hash der Empfängeradresse, providerMessageId, Status sent/failed, correlationId; sendInvitation() mit tenantId ergänzt Claude
10.10.2026 13:54 5.18 Hostpoint-SMTP-Laufzeitnachweis erbracht: STARTTLS, Zertifikat, Auth und E-Mail-Zustellung an dev@divelogix360.ch erfolgreich nachgewiesen (ADR-016); Produktivsperre-Bedingungen erfasst Claude
10.10.2026 12:49 5.17 MailService gemäss ADR-016 gehärtet: requireTLS, rejectUnauthorized, Timeouts, Dev-Guard mit MAIL_DEV_CATCH_ALL, sendRecoveryCodes() entfernt (ADR-016-Verletzung), .env.example aktualisiert Claude
10.10.2026 12:37 5.16 OnboardingService auf verbindliches persistentes Vier-Schritt-Modell umgestellt: school_profile, contact_details, first_employee (skippable), confirmation; TenantOnboarding- und OnboardingStep-Records, sequenzielles Unlock, AVV-Prüfung, G28/G50-Konformität Claude
09.10.2026 18:52 5.15 Vollständiger Auth-Flow T-01 bis T-11 manuell nachgewiesen: Login, Token-Rotation, Reuse-Detection, Logout, 2FA-Setup, 2FA-Verify-Setup, Login mit 2FA, 2FA-Code-Verifikation, 2FA-Deaktivierung; JWT-TTL-Fix, JwtStrategy withPlatformContext, AES-256-GCM Dev-Fallback für TOTP Claude
09.10.2026 17:11 5.14 Runtime-Logins provisioniert, SET LOCAL ROLE im Transaktionswrapper ergänzt, Login-Flow mit HTTP 200 nachgewiesen und DATABASE_TENANT_URL konfiguriert Claude
12.08.2026 16:55 5.13 Aufgabenhoheit gegenüber Roadmap und KI-Übergabeunterlage klargestellt Codex
10.08.2026 20:00 5.12 Sicheren UC00-Merge-Stand nach main übernommen und Branch-Nachführung ergänzt Codex
10.08.2026 19:46 5.11 Sichere Tenant-Vorbereitung mit Pflicht-Plan und AWS-KMS-TOTP-Pfad umgesetzt, unsicheren Vertragszwischenstand entfernt, vierte Migration angewendet sowie erfolgreichen Backend-Build nachgeführt Codex
09.08.2026 19:35 5.10 Fehlenden Wrangler-Entry-Point für das Cloudflare-Workers-Projekt "divelogix360" ergänzt, damit die MkDocs-Dokumentation dort veröffentlicht werden kann; Deployment-Erfolg noch nicht im Dashboard geprüft Claude
09.08.2026 19:10 5.9 Vertragsgebundene Einladungssperre code-seitig umgesetzt (Backend-Build bis auf bekannte TOTP-Stelle wiederhergestellt); Datenbank- und Integrationsnachweis stehen aus Claude
09.08.2026 17:32 5.8 Globale E-Mail-Normalisierung, Konfliktbehandlung, Einladungstoken-Hashspeicherung und dritte Schutzmigration mit Tests umgesetzt Codex
09.08.2026 16:40 5.7 Getrennte Prisma-Runtime-Clients, Konfigurationssperren und transaktionsgebundenen RLS-Kontextwrapper mit fünf Unit-Tests umgesetzt Codex
09.08.2026 16:25 5.6 UC00-Entwicklungsdatenbank kontrolliert neu aufgebaut, sicheren Basis-Seed ausgeführt und sieben grundlegende RLS-Laufzeitprüfungen nachgewiesen Codex
09.08.2026 15:43 5.5 Kanonischen UC00-OpenAPI- und Testvertrag mit 33 Operationen und 61 Testfall-IDs abgeschlossen sowie Prüfabhängigkeit und Lockfile synchronisiert Codex
09.08.2026 15:22 5.4 Initiale UC00-Migrationsfolge, Datenbank-Constraints, RLS und statische Migrationsprüfung umgesetzt Codex
09.08.2026 14:41 5.3 Prisma-v4-Zielschema für UC00 abgeleitet, formal validiert und nachgelagerten Backend-Umstellungsbedarf erfasst Codex
09.08.2026 14:24 5.2 ADR-012 akzeptiert, providerneutrale RLS-Strategie festgelegt und Umsetzungsnachweise erfasst Codex
09.08.2026 14:10 5.1 ADR-010 akzeptiert, historische SQL-Ablage eingeordnet und führendes Prisma-Migrationsverfahren festgelegt Codex
09.08.2026 14:01 5.0 ADR-009 akzeptiert und Prisma-Schema mit abgegrenzten Nachweisrollen als technische Wahrheit festgelegt Codex
09.08.2026 13:54 4.9 Modellrelevante UC00-Nachverfolgbarkeit abgeschlossen und ADR-009 als nächsten Architekturentscheid festgelegt Codex
09.08.2026 13:43 4.8 UC00-Verantwortlichkeiten zugeordnet, reproduzierbare Prisma-Ausgangsbasis geprüft und widersprüchliche Fertigmeldungen korrigiert Codex
09.08.2026 13:04 4.7 UC00-07-11 mit vorläufiger RF-03-Frist und juristischem Prüfbriefing für DACH vorbereitet Codex
09.08.2026 12:55 4.6 TOM-Katalog und verbindliches Wirksamkeitsnachweismodell für UC00-07-10 vervollständigt Codex
09.08.2026 12:49 4.5 Zeitbegrenztes Support-, Notfall- und Auslandszugriffsmodell nach ADR-023 festgelegt Codex
09.08.2026 12:34 4.4 Eigenbetriebenen ClamAV-Scanservice und ausfallsichere Vertrags-PDF-Prüfung nach ADR-022 festgelegt Codex
09.08.2026 12:17 4.3 Grafana Cloud Pro Frankfurt sowie verbindliche Daten-, Sicherheits- und Kostenkontrollen nach ADR-021 festgelegt Codex
09.08.2026 11:52 4.2 Risikobasierte V1-Backup- und Wiederherstellungsarchitektur nach ADR-020 festgelegt Codex
09.08.2026 11:33 4.1 Hetzner Object Storage Nürnberg und AWS KMS Frankfurt als bevorzugte V1-Architektur festgelegt Codex
08.08.2026 14:48 4.0 Revisionsfähiges Auditmodell mit täglichen kryptografischen Sammelnachweisen nach ADR-018 festgelegt Codex
08.08.2026 14:43 3.9 DSFA-Schwellenprüfung für UC00 abgeschlossen; vollständige Folgenabschätzung derzeit nicht erforderlich Codex
08.08.2026 14:35 3.8 Modulare AVV-Arbeitsvorlage und kontrollierten Freigabeprozess erstellt; juristische Produktivfreigabe bleibt offen Codex
08.08.2026 13:40 3.7 Tenant-Offboarding mit Sperrung, 30 Tagen Exportzugang und operativer Löschung spätestens nach 90 Tagen freigegeben Codex
08.08.2026 13:28 3.6 Hostpoint als V1-E-Mail-Provider entschieden sowie Produktivsperre, sichere Linkübermittlung, SMTP- und Bounce-Aufgaben erfasst Codex
08.08.2026 11:57 3.5 UC00-Speicherfristen fachlich freigegeben sowie technische Löschung, Providerabgleich und juristische Länderprüfung erfasst Codex
08.08.2026 11:44 3.4 UC00-Schutzanforderungen, zentrale TOM-Übersicht, Wiederherstellungsziele sowie offene Sicherheits- und Prüfaufgaben aufgenommen Codex
07.08.2026 19:45 3.3 UC00-Empfänger und Übermittlungen entschieden sowie Provider- und Unterauftragnehmerregister eingeführt Codex
07.08.2026 19:34 3.2 UC00-Protokollarten, Kontexttrennung, Minimierung und Ausfallschutz entschieden sowie offene Umsetzung erfasst Codex
07.08.2026 19:22 3.1 UC00-Onboarding und Schulprofil fachlich vereinheitlicht sowie unzutreffende Fertigmeldungen zu Schema und Service korrigiert Codex
07.08.2026 19:15 3.0 UC00-Benutzer-, Einladungs- und Authentifizierungsregeln entschieden und offene Sicherheitsumsetzungen erfasst Codex
07.08.2026 18:57 2.9 Vertragsstatus, Parteiensnapshot, Sieben-Tage-Token und externer V1-Prüfprozess entschieden und Umsetzung erfasst Codex
07.08.2026 18:42 2.8 Kontaktrollen, Telefonpflicht und kontrollierte Veröffentlichung für UC00 entschieden und offene Umsetzung erfasst Codex
07.08.2026 18:38 2.7 Vollständige Vertragsanschrift als AVV-Sperrbedingung erfasst und Schweizer Schreibweise in aktuellen Aufgaben bereinigt Codex
07.08.2026 18:11 2.6 UC00-Datenkatalog zur Prüfung erstellt und private PDF-Vertragsablage im Objektspeicher mit ADR-013 akzeptiert Codex
07.08.2026 17:44 2.5 Verbindliche UC00-Abschlusscheckliste mit zehn Prüfgates, stabilen Kriterien-IDs und Nachweispflicht eingeführt Codex
07.08.2026 17:30 2.4 Verbindlichen UC-Dossier-Standard, Repository-Inventar, Vorlage, UC00-Pilot und automatisierte Strukturprüfung umgesetzt Codex
06.08.2026 19:08 2.3 ADR-015 akzeptiert; Vertragsabschluss vor Tenant-Admin-Einladung sowie elektronische und externe Abschlusswege für UC00 festgelegt Codex
06.08.2026 18:42 2.2 ADR-011 als akzeptiert dokumentiert und offene Umsetzungsschritte ausgewiesen Codex
03.08.2026 13:33 2.1 Datums- und Zeitangaben gegen Zeilenumbruch geschützt und chronologische Sortierung geprüft Codex
03.08.2026 13:06 2.0 Status aus PROJECT-STATUS.md überführt und nach Scope, Spezifikation und Implementierung getrennt Codex
01.08.2026 14:55 1.1 Kopfbereich vereinheitlicht David Mittig
01.08.2026 11:12 1.0 Kopfbereich ergänzt David Mittig