chore(release): v0.5.0
Account recovery: 2FA backup codes (show-once/download/regenerate, usable at the login challenge), forgot-password via 2FA or backup code (email link gated on a configured mailer), and a clusev:reset-admin CLI lockout fallback. Resets rotate remember_token; codes consumed atomically. WebAuthn/YubiKey remains a Phase-2 spec. See CHANGELOG. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>feat/v1-foundation v0.5.0
parent
197e6f7e49
commit
7faa5c7d00
20
CHANGELOG.md
20
CHANGELOG.md
|
|
@ -13,6 +13,26 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui
|
|||
|
||||
_Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als `vX.Y.Z` getaggt._
|
||||
|
||||
## [0.5.0] - 2026-06-14
|
||||
|
||||
### Hinzugefügt
|
||||
- **Kontowiederherstellung.**
|
||||
- **2FA-Backup-Codes:** 8 Einmal-Codes werden bei der 2FA-Einrichtung erzeugt, einmalig
|
||||
angezeigt und als `.txt` herunterladbar; in den Einstellungen (Sicherheit) neu erzeugbar.
|
||||
Beim Login-2FA-Schritt als Alternative zum Authenticator-Code verwendbar.
|
||||
- **„Passwort vergessen":** Reset über einen 2FA-Code oder Backup-Code (ohne E-Mail nötig).
|
||||
Zusätzlich ein E-Mail-Reset-Link, sobald ein echter Mailer konfiguriert ist
|
||||
(`mail.default` ≠ `log`/`array`).
|
||||
- **CLI-Notfall:** `php artisan clusev:reset-admin` setzt das Admin-Passwort (und optional 2FA
|
||||
+ Backup-Codes) per Server-Shell zurück — der Last-Resort bei kompletter Aussperrung.
|
||||
|
||||
### Sicherheit
|
||||
- Passwort-Resets (Formular, E-Mail-Link, CLI) rotieren das `remember_token` — eine gestohlene
|
||||
„Angemeldet bleiben"-Cookie überlebt einen Reset nicht.
|
||||
- Backup-Codes werden atomar (Row-Lock) verbraucht (kein Replay).
|
||||
- Der Notify-Toaster liegt jetzt auch auf den Auth-Seiten; alle Reset-/Backup-Aktionen werden im
|
||||
Audit-Log erfasst.
|
||||
|
||||
## [0.4.6] - 2026-06-14
|
||||
|
||||
### Behoben
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
return [
|
||||
// First tagged release is v0.1.0 (semantic, not -dev). The live build hash
|
||||
// is resolved from .git at runtime (see App\Livewire\Versions\Index).
|
||||
'version' => '0.4.6',
|
||||
'version' => '0.5.0',
|
||||
|
||||
// Default user channel. Only 'stable' and 'beta' are ever offered to users.
|
||||
'channel' => 'stable',
|
||||
|
|
|
|||
|
|
@ -25,6 +25,12 @@ original foundational decisions doc (do not overwrite it).
|
|||
- `v0.4.4` — stop iOS zoom-on-focus: one unlayered `@media (pointer: coarse)` rule in `app.css`
|
||||
forces 16px on `input`/`textarea`/`select` on touch devices (phone + tablet any size), desktop
|
||||
sizing unchanged.
|
||||
- `v0.5.0` — **account recovery** (spec/plan in `docs/superpowers/`): 2FA backup codes
|
||||
(encrypted, shown once + downloadable + regenerable, usable at the login challenge),
|
||||
forgot-password via 2FA/backup code (email-link path gated on a configured mailer), and a
|
||||
`clusev:reset-admin` CLI lockout fallback. Resets rotate `remember_token`; codes consumed
|
||||
atomically. **Phase 2 still open: WebAuthn/YubiKey** as a login factor (needs `laragear/webauthn`,
|
||||
JS ceremonies, HTTPS/domain) — own spec.
|
||||
- `v0.4.6` — bilingual input validation: added `lang/{de,en}/validation.php` (full Laravel 13
|
||||
key set + localized `attributes`); previously all field-validation errors were English-only.
|
||||
- `v0.4.5` — branding: full favicon/PWA set (`public/favicon.*`, `icon-192/512`,
|
||||
|
|
|
|||
Loading…
Reference in New Issue