Repository navigation
Added
- Archives are encrypted at rest. Every snapshot, legacy backup and
pre-upgrade backup is now written as.tar.zst.age: age
with a post-quantum hybrid key (ML-KEM-768 + X25519) derived frommaster.key.
Someone who can read the backup directory or the offsite bucket but does not
havemaster.keylearns nothing about the contents, not even instance names.
There is no new secret: restore and apply use the--master-keythey already
take. There is no setting to turn it off. - A wrong master key is refused before anything changes, and the error names
the key the archive needs: the checksum that ends itsmaster.keyline.
snapshot applynow checks the key first, before any other preflight step. oddk snapshot decryptwrites the plain.tar.zstout of an encrypted
archive (verified first, mode 0600). With--print-age-identityit prints the
derived age secret instead, so the stockageCLI can decrypt with no ODDK
installed. It runs locally; no daemon needed.
Changed
- Archives written before this release keep their
.tar.zstname and stay
restorable through every path, unchanged. - An
--s3-uridownload that this host cannot decrypt is now discarded, because
it cannot be verified, rather than kept for a retry. Supply the source's
--master-keyand the retry downloads it again. - A legacy
backup restoreof a backup written on another host is refused:
backups have no--master-key. Snapshots are the cross-host path.
Action: without master.key, archives from this release on cannot be
restored or read. Confirm now that master.key is backed up somewhere other
than this host and its bucket.
Action: ODDK versions before 0.1.94 cannot read the new archives. Install
this release or later on any host you would restore or apply to.
Action (optional): archives already in your bucket stay unencrypted
until retention prunes them. To be rid of them sooner, delete them once a newer
encrypted complete snapshot exists (oddk snapshot list,
oddk snapshot remove-remote <id>).