feat(spec-091): BackupSchedule lifecycle + create-CTA placement rule #109

Merged
ahmido merged 2 commits from 091-backupschedule-retention-lifecycle into dev 2026-02-14 13:46:07 +00:00
Owner

Implements Spec 091 “BackupSchedule Retention & Lifecycle (Archive/Restore/Force Delete)”.

  • BackupSchedule lifecycle:

    • Archive (soft delete) with confirmation; restores via Restore action; Force delete with confirmation and strict gating.
    • Force delete blocked when historical runs exist.
    • Archived schedules never dispatch/execute (dispatcher + job guard).
    • Audit events emitted for archive/restore/force delete.
    • RBAC UX semantics preserved (non-member hidden/404; member w/o capability disabled + server-side 403).
  • Filament UX contract update:

    • Create CTA placement rule across create-enabled list pages:
      • Empty list: only large centered empty-state Create CTA.
      • Non-empty list: only header Create action.
    • Tests added/updated to enforce the rule.

Verification:

  • vendor/bin/sail bin pint --dirty
  • Focused tests: BackupScheduling + RBAC enforcement + EmptyState CTAs + Create CTA placement

Notes:

  • Filament v5 / Livewire v4 compliant.
  • Manual quickstart verification in specs/091-backupschedule-retention-lifecycle/quickstart.md remains to be checked (T031).
Implements Spec 091 “BackupSchedule Retention & Lifecycle (Archive/Restore/Force Delete)”. - BackupSchedule lifecycle: - Archive (soft delete) with confirmation; restores via Restore action; Force delete with confirmation and strict gating. - Force delete blocked when historical runs exist. - Archived schedules never dispatch/execute (dispatcher + job guard). - Audit events emitted for archive/restore/force delete. - RBAC UX semantics preserved (non-member hidden/404; member w/o capability disabled + server-side 403). - Filament UX contract update: - Create CTA placement rule across create-enabled list pages: - Empty list: only large centered empty-state Create CTA. - Non-empty list: only header Create action. - Tests added/updated to enforce the rule. Verification: - `vendor/bin/sail bin pint --dirty` - Focused tests: BackupScheduling + RBAC enforcement + EmptyState CTAs + Create CTA placement Notes: - Filament v5 / Livewire v4 compliant. - Manual quickstart verification in `specs/091-backupschedule-retention-lifecycle/quickstart.md` remains to be checked (T031).
ahmido added 2 commits 2026-02-14 13:45:18 +00:00
ahmido merged commit 1c098441aa into dev 2026-02-14 13:46:07 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: ahmido/TenantAtlas#109
No description provided.