6.3 KiB
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.
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
- npm ci
- npx prisma generate
- npm run typecheck
- npm run lint
- npm test
- npx playwright install chromium
- npm run test:e2e:prod
- npm audit --audit-level=high
- npm audit --prefix docker/prisma-cli --audit-level=high
- docker build -t syncova-policies:review-20260911 .
Die Markdown-Vorlagen und redaktionellen Hinweise liegen in docs/review-2026-09-09.