Skip to content

ui(migrations): Add migration and recovery controls - #116

Merged
nfebe merged 6 commits into
mainfrom
feat/migration-operations
Sep 27, 2026
Merged

nfebe merged 6 commits into
mainfrom
feat/migration-operations

Conversation

@nfebe

@nfebe nfebe commented Sep 27, 2026

Copy link
Copy Markdown
Contributor

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.

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.

@sourceant sourceant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. See the overview comment for a summary.

@sourceant

sourceant Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Code Review Summary

Adds 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

  • Migration readiness blockers surface clearly before source retirement, keeping it blocked until cutover checks pass.
  • Isolated restore lets operators verify a backup in a separate deployment without touching production.
  • Backup destinations, retention, and cleanup are configurable from one card with a preview.

💡 Minor Suggestions

  • 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.

Cleanup now uses the saved retention value shown in the preview.
Unsaved policy edits cannot delete more backups than the preview reports.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Deploying flatrun-ui with  Cloudflare Pages  Cloudflare Pages

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

View logs

@sourceant sourceant Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. See the overview comment for a summary.

const applyCleanup = async () => {
try {
if (!policy.value) return;
const response = await backupsApi.cleanupDeploymentBackups(

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@nfebe
nfebe merged commit 39cccd5 into main Sep 27, 2026
5 checks passed
@nfebe
nfebe deleted the feat/migration-operations branch September 27, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant