ui(migrations): Add migration and recovery controls - #116
Conversation
Application backup settings now choose the remote stores that receive future recovery points while preserving the existing all-destinations default.
Backup results now distinguish remote copies that passed checksum verification.
Operators can restore a backup under a new deployment name while keeping the recovered services off external networks.
The backup view now shows storage usage, failures, retention cleanup, exclusions, alerts, schedules, and destinations together.
Operators can record inventory, transfers, synchronization, DNS checks, cutover, and source retirement readiness in one workflow.
Code Review SummaryAdds a Migration tab where operators record source inventory, sites, transfer/sync/cutover milestones, and run DNS checks; retirement stays blocked until the deployment reports readiness. Backups gains destination/retention/size-alert policy editing with cleanup preview and apply, verified remote-copy badges, and restoring a backup into an isolated separate deployment. API client adds migration, backup-policy, and cleanup endpoints plus new types. 🚀 Key Improvements
💡 Minor Suggestions
|
Cleanup now uses the saved retention value shown in the preview. Unsaved policy edits cannot delete more backups than the preview reports.
Deploying flatrun-ui with
|
| Latest commit: |
33a4ab2
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://22098cc1.flatrun-ui.pages.dev |
| Branch Preview URL: | https://feat-migration-operations.flatrun-ui.pages.dev |
| const applyCleanup = async () => { | ||
| try { | ||
| if (!policy.value) return; | ||
| const response = await backupsApi.cleanupDeploymentBackups( |
There was a problem hiding this comment.
Apply cleanup now passes policy.cleanup_preview.keep_count instead of the operator's retention field, so the two "keep" values can diverge. If the preview is stale or the field was edited without saving, cleanup deletes down to the preview count, removing backups the operator meant to keep. Use the current retention value, or refresh the preview before applying.
Give operators one place to manage migration readiness and recovery safeguards. The interface keeps source retirement blocked until the deployment is synchronized and cutover checks pass.