TenantAtlas/specs/390-restore-readiness-resolution-adapter-v1/artifacts/current-restore-flow-inventory.md
ahmido c0c3286a80 feat: add restore readiness resolution adapter improvements (#461)
Automated PR created by Codex via Gitea API.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #461
2026-06-20 12:51:12 +00:00

2.3 KiB

Current Restore Flow Inventory

Verified Code Seams

Area Repo truth
Resource apps/platform/app/Filament/Resources/RestoreRunResource.php owns the existing list/create/view resource and environment-scoped routing.
Create page CreateRestoreRun requires tenant manage capability before the wizard is usable.
View page ViewRestoreRun resolves records through RestoreRunResource::resolveScopedRecordOrFail().
Create presenter RestoreRunCreatePresenter::contract() already produces passive wizard view data.
Detail presenter RestoreRunDetailPresenter::forRun() already owns decision-first detail/view state, OperationRun proof, and evidence links.
Safety truth RestoreSafetyResolver owns scope fingerprints, checks integrity, preview integrity, and execution safety.
Status truth RestoreRunStatus defines draft/scoped/checked/previewed, pending/queued/running, terminal, and legacy terminal statuses.
Operation links OperationRunLinks::tenantlessView() is the canonical link path for OperationRun detail.

Existing Safety Gates To Reuse

  • Scope and mapping changes call synchronizeRestoreSafetyDraft() and invalidate checks/preview basis.
  • run_restore_checks writes current check basis into wizard state only after existing validation runs.
  • run_restore_preview writes current preview basis into wizard state only after existing preview generation.
  • Real execution remains blocked by final confirmation, hard-confirm text, current checks, current preview, write gate, and OperationRun queueing.

Implementation Seams Selected

  • Add Restore-local, non-persisted readiness derivation under apps/platform/app/Support/RestoreReadinessResolution/.
  • Add readinessGuidance to RestoreRunCreatePresenter::contract() and RestoreRunDetailPresenter::forRun().
  • Render guidance through existing Blade view fields/infolist entries.
  • Disable RestoreRunResource global search explicitly because the resource is tenant-sensitive and this spec does not introduce a safe search contract.

Explicit Non-Seams

  • No database migration.
  • No review-publication resolution table/model reuse.
  • No generic resolution registry.
  • No new route, navigation item, dashboard widget, notification center intake, or Graph call.