# Umsetzung vom 10.09.2026 – Abschlussprüfung am 11.09.2026 Ausgangspunkt: Commit 0134dd6 und Prüfbericht vom 09.09.2026. ## Änderungen - Next.js 15.5.25, React/React DOM 19.1.9, NextAuth beta.32, @auth/core 0.41.3 und aktualisierter Prisma-Adapter. - Prisma-Client und CLI einheitlich 6.19.3; gemeinsame Clientinstanz. Die Middleware verwendet die unterstützte Node.js-Laufzeit. PostCSS wird einheitlich auf eine gepatchte 8.5-Version aufgelöst. - Geschützte Zugriffe überprüfen das aktuelle Konto. Sperren und Kontoänderungen entziehen alten Sitzungen den Zugriff. - Benutzerverwaltung ausschließlich für Super-Admins; Eingabevalidierung und transaktionaler Schutz des letzten aktiven Super-Admins. - Neue Passwörter: mindestens 12 Zeichen und höchstens 72 UTF-8-Bytes wegen bcrypt. - Dauerhafte Suchstatusmeldung einschließlich null Treffern, Fokus ins Suchfeld beim Zurücksetzen. - Programmatisch gekennzeichnete Pflichtfelder, verknüpfte Fehler und fokussierte Fehlerzusammenfassung. Loginfehler als Alert; korrekte Anzeigen-/Verbergen-Beschriftung. - Dialoge mit Fokusrückgabe und durchgehend scrollbarem Inhalt. Der Formularbereich bleibt auch bei langen Fehlermeldungen erreichbar. - Responsive Admin-Kopfzeile, Tabs und Dialogköpfe; öffentliche Fließtexte mit Standardschriftgröße; lokale Inter-Schrift bleibt erhalten. - Tastaturzugängliche Tabellenbereiche, Umbruch langer Inhalte und Rücksicht auf reduzierte Bewegung. - Serverseitige Links zu gepflegten barrierefreien Angeboten in der öffentlichen Kopfzeile. - Vollständigkeitsprüfung der Seiten-Nutzdaten und Schutz vor dem Leeren veröffentlichter Seiten. Vorlagen mit unausgefüllten Platzhaltern werden nicht veröffentlicht. - Medienvalidierung für lokale Pfade und signlanguage.alangu.de; sichtbarer Video-Direktlink. - Drei neue Vorlagen im Admin bei leeren Textfeldern über „Vorlage einfügen“. Bestehende Inhalte bleiben erhalten. - Gitea prüft vor dem Image-Build TypeScript, Linting, Unit-Tests, beide npm-Abhängigkeitsbäume und Browser-/API-Regressionen am gebauten Standalone-Server. - Policy-APIs validieren Datentypen, Textlängen und fehlerhaftes JSON und antworten bei ungültigen Eingaben mit HTTP 400. - Die Prisma-CLI im Docker-Image erhält eine eigene gesperrte Abhängigkeitsliste. Der auf @prisma/config begrenzte Override auf deepmerge-ts 8.0.2 schließt die zuletzt gemeldete Abhängigkeitslücke. ## Nachweise - TypeScript und ESLint: keine Fehler. Die bisherigen any-Typwarnungen in den Policy-APIs wurden durch typisierte Eingabevalidierung beseitigt. - Sechs Unit-/Integrationstests erfolgreich: Sitzungswiderruf, Medienvalidierung, Seitenschutz, Benutzervalidierung, Policy-Eingaben und Prisma-Konfiguration einschließlich wiederholter Migrationen. - Acht Browser-/API-Tests im Gesamtlauf gegen den gebauten Produktions-Standalone-Server erfolgreich. Enthalten sind mobile Ansichten, Dunkelmodus, wiederholtes Öffnen/Schließen von Dialogen, Fokusrückgabe, Tastaturnavigation, vergrößerter Text und Textabstände sowie Berechtigungs- und API-Prüfungen. - Keine axe-Verstöße in den geprüften Beispielen für WCAG 2 A/AA und WCAG 2.1 AA. Geprüft: öffentliche Übersicht, Login, einzelne Erklärung, Informationsseiten und Adminformulare, unter anderem bei 320 Pixeln; ausgewählte Seiten und Benutzerdialog zusätzlich im Dunkelmodus. - Die Screenshotkontrolle fand trotz zunächst erfolgreichem axe-Test einen kollabierten mobilen Formularbereich. Dieser wurde korrigiert und mit einem tatsächlichen Fokus-/Eingabetest abgesichert. - Produktionsbuild und Linux-Docker-Build erfolgreich, einschließlich Node.js-Middleware. Lokales Image: syncova-policies:review-20260911. - Docker-Laufzeitprüfung mit eigener temporärer Datenbank: alle zehn Migrationen angewendet, Admin angelegt, /auth/signin liefert HTTP 200. Wiederholtes migrate deploy meldet keine ausstehenden Migrationen. Testcontainer und anonymes Testvolume anschließend entfernt. - npm audit: null bekannte Schwachstellen im Hauptprojekt und im gesonderten Prisma-CLI-Lockfile (Stand 11.09.2026). Das ist keine Prüfung der Betriebssystempakete im Container. - git diff --check ohne Fehler. Die Browser-Tests verwenden eine neue temporäre SQLite-Datenbank und eigene Ausgabeordner .next-e2e beziehungsweise .next-e2e-production auf Port 3219. Bestehende Daten und Zugangsdaten wurden nicht verändert. Kein Git-Push oder Deployment durchgeführt. ## Verbleibende Punkte Die ursprünglich drei hohen npm-Meldungen derselben Prisma-Abhängigkeitskette sind behoben. Der begrenzte Override auf deepmerge-ts 8.0.2 ist mit dem tatsächlichen Prisma-Konfigurationsloader und wiederholten Migrationen unter Windows sowie mit Migrationen im Linux-Container geprüft. Version 8 verändert unter anderem das Zusammenführen von Maps; die hier verwendete Konfiguration nutzt normale Objekte. Bei einem späteren Prisma-Update ist der Override erneut zu prüfen und möglichst zu entfernen. Siehe [offizielle Versionshinweise zu deepmerge-ts 8](https://github.com/RebeccaStevens/deepmerge-ts/releases/tag/v8.0.0). Docker meldet einen Hinweis zum bestehenden Build-Argument NEXTAUTH_SECRET. Sein Standardwert ist ausschließlich ein öffentlicher Build-Platzhalter; echte Secrets müssen weiterhin erst zur Laufzeit gesetzt und dürfen nicht als Build-Argument übergeben werden. Die Tests sind keine vollständige EN-301-549-/Screenreaderprüfung. Produktive Texte, Videoinhalt/-player, Leichte Sprache und gegebenenfalls PDFs benötigen weiterhin die fachliche und manuelle Abnahme. Kein Konformitätsstatus wurde automatisch bestätigt oder veröffentlicht. Ein eigenständiger redaktioneller Entwurfs-/Freigabeworkflow mit Versionierung ist nicht implementiert. Der neue Schutz verhindert unvollständige Aktualisierungen und das Leeren bereits veröffentlichter Seiten. Alte Sitzungen ohne den neuen Ausgabezeitpunkt werden nach dem Deployment abgewiesen: einmal neu anmelden. Bestehende Passwörter bleiben gültig. Auch Kontoänderungen erfordern eine neue Anmeldung. ## Befehle 1. npm ci 2. npx prisma generate 3. npm run typecheck 4. npm run lint 5. npm test 6. npx playwright install chromium 7. npm run test:e2e:prod 8. npm audit --audit-level=high 9. npm audit --prefix docker/prisma-cli --audit-level=high 10. docker build -t syncova-policies:review-20260911 . Die Markdown-Vorlagen und redaktionellen Hinweise liegen in docs/review-2026-09-09.