clusev/resources/views
boban 57a3dd51b6 feat(security): signed confirm-action tokens + airtight backup-code reveal
Two hardening features completed in parallel (each with its own spec + tests),
sharing call sites (TwoFactorSetup, WebauthnKeys, routes) so committed together:

- ConfirmAction token hardening: destructive confirm flows now carry a server-issued,
  single-use, signed token (App\Support\Confirm\ConfirmToken) instead of trusting a
  client-mutable event/params/auditTarget. Every #[On] apply handler consumes + validates
  the token (forged/replayed/direct-bypass calls no-op). Server-scoped per action; closes
  the codebase-wide confirm-bypass + audit-forgery vector across Security, Sessions, Users,
  WebauthnKeys, Servers\Show, Services, System, Files.
- Backup-code airtight reveal: codes are revealed via a transient channel, not a persisted
  Livewire property, so a captured/replayed snapshot can't re-render them; the recovery
  download is grant-gated.

Full suite green (162).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 18:35:33 +02:00
..
components refactor(settings): split into per-tab nested components (Profile, Security) + tab hosts for Users/Sessions/Email 2026-06-14 23:23:25 +02:00
errors feat(branding): favicons + PWA manifest, and custom branded error pages 2026-06-14 15:27:49 +02:00
layouts fix(auth): toaster on auth pages + audit email-link resets 2026-06-14 17:07:52 +02:00
livewire feat(security): signed confirm-action tokens + airtight backup-code reveal 2026-06-15 18:35:33 +02:00
partials fix(auth): toaster on auth pages + audit email-link resets 2026-06-14 17:07:52 +02:00
vendor/wire-elements-modal fix(modal)+ux: panel above backdrop, one <x-btn> style, SSH credential form 2026-06-12 23:32:28 +02:00