Files
rustfs/crates/kms
overtrue 6900e67d32 feat(kms): record external Vault references in the backup manifest
A Vault-backed bundle never carries its cryptographic root: Transit keys
are non-exportable and KV2 records live in Vault's own storage. Record
instead which external state the bundle was captured against, so a
restore can prove the recovered Vault is the right one: cluster identity,
namespace, KV mount and path prefix, the Transit key with the version
window the bundle still needs, and the per-key KV generation.

The reference schema is required exactly for Vault backends, rejected for
the others, and its field set is pinned by a test so no credential-
carrying field can be added by accident.

Also split the bundle manifest reader so consumers of non-Local bundles
share the same decode path, and widen three artifact-framing items to
pub(crate) so producer and consumer cannot drift on the AEAD framing.

Refs rustfs/backlog#1572 (part of rustfs/backlog#1562)
2026-08-01 12:02:58 +08:00
..