T-GHKW-backup-rust-arm-flip
State: closed/done · Impact: medium · Complexity: large
The node arm cannot run from an installed app: the vault-backup CLI resolves a repo checkout and
throws without one. crates/determined-backup already ports it. This task makes the Rust arm serve
backup and deletes the node arm in the same change, as rust-backends/ARCHITECTURE.md section 3
requires.
Proposed
Section titled “Proposed”AppState::backupreturnsdetermined_backup::Backup, hand-written besideAppState::polishlike the other Rust-only accessors. The Rust arm owns backup operations; the retired vault-engine task is not retained as a competing execution path.CAPABILITY_DEFAULTShas(Capability::Backup, Backend::Rust).- On first use, a store at the node arm’s location (keyed by
vaultScopeKeyof the vault path) is moved to the Rust arm’s location (keyed by minted id) when the latter is empty. - The backup half of B-DQXW is deleted:
backends/node/backup.rs,SidecarApp::Backup, thebackupentry inpackages/family-cli/cli.ts,apps/vault-backup/, its.moon/workspace.ymlentry, and thebackupscript insolutions/determined/package.json. - The
vault-git-backupvault task is retired in favour of the in-app schedule; the change notes how to remove it from an existing vault. A vault served only by the full platform or an engine therefore has no scheduled backups unless Determined Backup is running.
Acceptance criteria
Section titled “Acceptance criteria”- AC-1: With no
DETERMINED_BACKEND*override, every backup endpoint is served bydetermined-backup, and the Backups page works as before. - AC-2: A vault with node-arm history shows the same snapshot list after the flip.
- AC-3: No live backup source, build configuration, or runtime registration under
solutions/determinedreferencesapps/vault-backuporSidecarApp::Backup. Historical planning and closed-task records may retain those names. - AC-4: B-DQXW is updated to cover only the flows half.
Out of scope
Section titled “Out of scope”- The flows half of B-DQXW.
- Restore (T-7PT3).
Dependencies
Section titled “Dependencies”- T-EQ0H: parity proof before the flip.
- T-FJOX: the in-app schedule replaces the engine task this deletes.
Depends on
Section titled “Depends on”T-EQ0H-backup-parity-cases, T-FJOX-backup-in-app-schedule