Automated PR created by Codex via Gitea API. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #461
2.3 KiB
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_checkswrites current check basis into wizard state only after existing validation runs.run_restore_previewwrites 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
OperationRunqueueing.
Implementation Seams Selected
- Add Restore-local, non-persisted readiness derivation under
apps/platform/app/Support/RestoreReadinessResolution/. - Add
readinessGuidancetoRestoreRunCreatePresenter::contract()andRestoreRunDetailPresenter::forRun(). - Render guidance through existing Blade view fields/infolist entries.
- Disable
RestoreRunResourceglobal 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.