Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/v06-session2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #153 and #154.
#153 — the port, via a path-binding shim. Instead of rewriting nine store structs,
statestoregainsBind/Read/Write: main binds each configured state path to the encryptedBackendat boot (s3 only), before any store opens; the stores' file I/O idiom (os.ReadFile+ temp-then-rename) is swapped forstatestore.Read/Write— one read-line and one write-block per store, nothing else touched. Unbound paths fall back to byte-identical local file behavior, so every existing test passes unchanged and posix instances are untouched. Bound against the RAW driver below all decorators (content encryption must not double-wrap state), sealed to recovery+deployment identities (legacy identities decrypt-only), with the ADR D3 refusal when an s3 instance has no identities. No boot reordering needed after all — the raw driver already exists before every store construction; the bind block slots right after driver creation.#154 — migration.
statestore.MigrateFileat boot, per path: local-only → upload + retire to.migrated; backend-only/fresh → no-op; identical → retire; differing → refuse to start with both SHA-256 digests and the exact operator instruction. Tested across all four cases; the shim's routing +os.IsNotExistcompatibility tested too.Also:
encrypt.RecipientOfexported (state seals to the same identities content encryption trusts). goimports pass grouped imports in the generated peerpb files — cosmetic only.Deploy note: the first boot of this release on the dogfood migrates its live state (license included) into the Garage bucket under
.cairn-state/as ciphertext, leaving.migratedfiles on the PVC.