Prepare governed S1 offsite upload
Assistant: codex Assistant-Model: gpt-5.6-sol Assistant-Session: 01a02994-7685-7940-bf34-3555b8256018
This commit is contained in:
parent
2c92b97f37
commit
d0a5a27926
11 changed files with 844 additions and 11 deletions
|
|
@ -46,7 +46,50 @@ make s1-backup-prune APPROVE_S1_BACKUP_PRUNE=PRUNE-S1-BACKUPS-...
|
|||
|
||||
If the set changes between those commands, pruning fails closed. Candidates
|
||||
are atomically moved beneath a quarantine directory inside the declared backup
|
||||
root before removal; paths outside that root are never accepted.
|
||||
root before removal; paths outside that root are never accepted. Production
|
||||
pruning also refuses every candidate that lacks a passing off-site receipt
|
||||
bound to the current local manifest.
|
||||
|
||||
## Governed off-site owner interface
|
||||
|
||||
The upload contract is source-controlled in `spec/s1-offsite.yaml`. It packages
|
||||
the two encrypted artifacts and their metadata into one deterministic tar
|
||||
envelope, avoiding a remotely visible partial multi-object backup. Upload uses
|
||||
an immutable object name and `If-None-Match: *`; a collision fails without a
|
||||
success receipt. Neither the endpoint, response body, nor credential is placed
|
||||
in the receipt.
|
||||
|
||||
The contract is intentionally pending `railiance-platform` acceptance. Render
|
||||
the exact review phrase without credentials:
|
||||
|
||||
```bash
|
||||
make s1-offsite-review
|
||||
```
|
||||
|
||||
After the owner records acceptance of that exact digest, a fresh bundle can be
|
||||
planned without access to the lane:
|
||||
|
||||
```bash
|
||||
make s1-offsite-plan BUNDLE=/opt/backup/railiance/infra/s1-backup-...
|
||||
```
|
||||
|
||||
Only the exact resulting envelope approval can enter the contained upload
|
||||
path. `warden access` injects the primary token into the child environment; it
|
||||
is never accepted in argv, files, State Hub, or command output:
|
||||
|
||||
```bash
|
||||
make s1-offsite-upload \
|
||||
BUNDLE=/opt/backup/railiance/infra/s1-backup-... \
|
||||
APPROVE_S1_OFFSITE_UPLOAD=UPLOAD-S1-OFFSITE-...
|
||||
```
|
||||
|
||||
This command remains disabled while
|
||||
`spec/s1-offsite-owner-acceptance.yaml` is pending. Owner acceptance must also
|
||||
confirm that the secret-shaped default discovered in the owner repository is
|
||||
retired or rotated; its value must never be copied into this repository or an
|
||||
approval message. The current route still lacks an authoritative workload
|
||||
identity, so the reviewed interface is attended and is not attached to the
|
||||
systemd timer.
|
||||
|
||||
## Inspection and isolated restore
|
||||
|
||||
|
|
@ -90,6 +133,6 @@ checks the approval and pins the deployed wrapper to the reviewed 40-character
|
|||
source revision. This approval installs and enables the timer only; it does
|
||||
not authorize pruning, off-host upload, private-key access, or a restore.
|
||||
|
||||
Off-host transfer remains `RAIL-HO-WP-0012-T05` and belongs to the governed
|
||||
`railiance-backup-offsite-lane`. An attended off-host isolated drill remains
|
||||
`RAIL-HO-WP-0012-T06`; neither action is implemented or implied here.
|
||||
Off-host execution remains pending under `RAIL-HO-WP-0012-T05` and belongs to
|
||||
the governed `railiance-backup-offsite-lane`. An attended off-host isolated
|
||||
drill remains `RAIL-HO-WP-0012-T06`; neither live action is implied here.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue