mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-03 11:57:43 +00:00
6900e67d32
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)