feat: define complete backup contract#10
Merged
Conversation
# Why Stabilize a generic, versioned and directly restorable backup format before replacing the mutable transaction engine or introducing new remote writes. # What changed - add dedicated complete-backup types, strict canonical JSON parsers and cross-validation for metadata, manifests and tar archives - validate persisted identifiers and reject ambiguous scope ownership in version 2 configuration - add deterministic retention and legacy namespace classification helpers - cover the contract with a reproducible two-scope golden bundle and negative regression tests - document the format as implemented but not yet connected to apply or rollback
# Why PR 2.1 must reject ambiguous ownership for the future complete-backup contract without changing which configurations the existing mutable and read-only engines can parse. # What changed - move overlapping-target validation from global config parsing to complete-backup scope digest calculation - keep immediate bounded validation for the persisted baseline identifier - add a contract-level overlap regression while preserving the existing root-plus-nested E2E fixture - verify both qualified GNU tar suites and the released-shape PEX E2E flow
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Safety boundary
This PR does not perform SSH, create remote state, or change apply, rollback, the CLI, or the Action. Existing configurations remain accepted by the current engine; overlapping targets are rejected only when entering the future complete-backup contract. The public format documentation states that the mutable engine does not use this format yet.
Validation
Follow-up
PR 2.2 will introduce the static remote executor against this contract.