3.2 KiB
UI Rework 22: Sicherheit und Anwendungsschlüssel
Epic: Epic 1
Abhängigkeiten: Issue 6, Issue 7, Issue 21
Ziel und Grenzen
Sicherheit und Anwendungsschlüssel als abgegrenzten Teil des vollständigen Frontend-Neubaus umsetzen. Grundlage: Vue 3/Inertia 2 mit Laravel, Tauri 2 für Apps, gemeinsames Repository, servergeladene Oberfläche, HTTPS, Hell/Dunkel/System und englische Texte über Übersetzungsschlüssel. Bestehende Fachlogik bleibt maßgeblich; Resources und Routen nur soweit für diese Oberfläche erforderlich anpassen. Keine zusätzlichen Produktmodule.
Einstieg
Gezielt prüfen: resources/js/pages/settings/Security.vue; resources/js/pages/settings/Applications.vue; resources/js/components/TwoFactorSetupModal.vue; resources/js/components/TwoFactorRecoveryCodes.vue. Die Pfade sind Einstiegspunkte, keine Erlaubnis zu fachlichen Umbauten. AGENTS.md und die für den tatsächlich geänderten Bereich geltenden Skills beachten. Vor Codeänderungen die zur installierten Version passende Dokumentation prüfen.
Design: Fluid Emerald Kanban
Implementierungsweg
- Passwortverwaltung, 2FA-Einrichtung, Recovery-Codes und vorhandene Anwendungsschlüssel neu darstellen.
- Sensible Bestätigungsabläufe erhalten.
- Zustände vor und nach 2FA-Bestätigung sowie beim Anzeigen und Erneuern von Recovery-Codes anhand der bestehenden Endpunkte abbilden. Schlüsselanzeige und Kopierfunktion an die vorhandene Freigabelogik binden; fehlgeschlagene Bestätigungen direkt am Formular erklären.
Akzeptanzkriterien
- 2FA-Aktivieren/Deaktivieren und Recovery-Codes funktionieren.
- Schlüssel werden weiterhin nur nach bestehender Logik angezeigt.
- Abbruch und Fehler sind sicher.
Prüfung
Vorhandene gezielte Abdeckung: tests/Feature/Settings/SecurityTest.php, tests/Feature/Settings/UserApplicationTest.php. Nur bei Berührung des jeweiligen Verhaltens aktualisieren bzw. ausführen.
Gezielte Verhaltenstests für die Änderung; betroffene PHPUnit-Featuretests bei Controller-/Resource-/Route-Anpassungen. Oberfläche mit Tastatur und bei mobiler Breite in beiden Themes prüfen. Projektvorgaben für Lint/Build und bei Vue/TypeScript abschließend npm run types:check erfüllen. Keine ausschließlich optischen Momentaufnahmen als Ersatz für Verhaltenstests.
Grenze der Agentensitzung
Nur dieses Ticket und bereits erfüllte Abhängigkeiten bearbeiten. Ein zusammenhängendes Ergebnis mit passenden Tests liefern; keine Nachbartickets mitziehen. Die Aufteilung zielt auf eine begrenzte Sitzung mit Reserve für Prüfung, garantiert aber kein festes Zeit- oder Tokenbudget. Wenn unerwartete Voraussetzungen den Umfang wesentlich vergrößern, rechtzeitig den Stand, betroffene Dateien, bereits ausgeführte Prüfungen und den konkret nötigen Folgeschritt festhalten.