chore(release): v0.9.1
UI: system-page redesign, full-width lone firewall/fail2ban panel, mobile-scrollable settings tabs, instant lazy fail2ban-bans modal, file-manager image preview. Auth: SMTP-aware forgot-password (15-min link + 2FA fallback), Security-Keys copy fix, backup codes show-once. Security hardening: signed single-use confirm-action tokens; airtight backup-code reveal (transient, snapshot-replay-proof, grant-gated download). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>feat/v1-foundation v0.9.1
parent
fd3834731e
commit
02741539ca
18
CHANGELOG.md
18
CHANGELOG.md
|
|
@ -11,6 +11,10 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
_Keine offenen Änderungen — der nächste Stand wird hier gesammelt und als `vX.Y.Z` getaggt._
|
||||
|
||||
## [0.9.1] - 2026-06-15
|
||||
|
||||
### Geändert
|
||||
- **Passwort-vergessen ist jetzt SMTP-bewusst.** Mit konfiguriertem SMTP ist der Standard ein
|
||||
**E-Mail-Reset-Link (15 Minuten gültig)**; ein Zweit-Schalter „Kein E-Mail-Zugang? Mit 2FA-Code
|
||||
|
|
@ -24,10 +28,16 @@ getaggte Releases (Kanal `stable`, optional `beta`) — niemals Entwicklungs-Bui
|
|||
interner 2-Spalten-Aufteilung (kein leerer Raum mehr); zwei Boxen weiterhin nebeneinander.
|
||||
|
||||
### Sicherheit
|
||||
- **Backup-Codes nur einmal sichtbar.** Codes werden ausschließlich direkt nach der Erzeugung
|
||||
(erster Faktor oder „Neu erzeugen") angezeigt — „Backup-Codes verwalten" zeigt sie NICHT mehr an,
|
||||
sondern bietet nur noch „Neu erzeugen". Serverseitig gated (`#[Locked]` + Einmal-Flags), und der
|
||||
Download-Endpunkt verlangt jetzt eine frische Berechtigung statt jederzeitigen Zugriffs.
|
||||
- **Backup-Codes nur einmal sichtbar — wasserdicht.** Codes werden ausschließlich direkt nach der
|
||||
Erzeugung (erster Faktor oder „Neu erzeugen") angezeigt; „Backup-Codes verwalten" zeigt sie NICHT
|
||||
mehr an, sondern bietet nur „Neu erzeugen". Der Reveal läuft über einen transienten Kanal (nicht über
|
||||
eine persistierte Livewire-Property), sodass ein abgefangener/replayter Snapshot sie nicht erneut
|
||||
rendert; das Reveal-Flag hat eine 10-Minuten-TTL, und der Download-Endpunkt verlangt eine frische,
|
||||
einmalige Berechtigung.
|
||||
- **Bestätigungs-Dialoge signiert & einmalig.** Destruktive Aktionen (Konto/Session/2FA/Hardening/…)
|
||||
laufen über server-ausgestellte, einmal gültige, signierte Tokens statt client-manipulierbarer
|
||||
Event-/Audit-Felder — Bestätigungs-Bypass und Audit-Fälschung sind ausgeschlossen; per-Aktion
|
||||
server-seitig auf das Ziel beschränkt.
|
||||
|
||||
### Behoben
|
||||
- **fail2ban „Gesperrte IPs"-Modal öffnet sofort** — Skeleton + Lazy-Load statt blockierendem
|
||||
|
|
|
|||
|
|
@ -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.9.0',
|
||||
'version' => '0.9.1',
|
||||
|
||||
// Default user channel. Only 'stable' and 'beta' are ever offered to users.
|
||||
'channel' => 'stable',
|
||||
|
|
|
|||
Loading…
Reference in New Issue