pub struct Meta {
pub recipients: HashMap<String, String>,
pub mac: String,
pub mac_key: Option<String>,
pub github_pins: HashMap<String, Vec<String>>,
pub groups: BTreeMap<String, Vec<String>>,
pub grants: BTreeMap<String, GrantEntry>,
}Fields§
§recipients: HashMap<String, String>Maps pubkey → display name. The only place names are stored.
mac: StringIntegrity MAC over secrets + schema.
mac_key: Option<String>BLAKE3 keyed MAC key (hex-encoded, 32 bytes). Generated at init, stored encrypted.
github_pins: HashMap<String, Vec<String>>Pinned GitHub key fingerprints: username → [SHA256:…].
Used for TOFU (Trust On First Use) verification on authorize github:user.
groups: BTreeMap<String, Vec<String>>Named recipient groups: group name → member pubkeys. Stored here (not in
the plaintext header) so org structure — who is in which group — does not
leak. Members are a subset of Vault::recipients. Covered by the keyed
MAC (blake3v4:) so membership cannot be tampered with undetected.
grants: BTreeMap<String, GrantEntry>Short-lived agent grants: grant name → metadata. Stored here (encrypted)
so an agent’s existence and scope do not leak. Covered by the keyed MAC
(blake3v5:) so TTL/scope/issuer are tamper-evident.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Meta
impl<'de> Deserialize<'de> for Meta
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Meta
impl RefUnwindSafe for Meta
impl Send for Meta
impl Sync for Meta
impl Unpin for Meta
impl UnsafeUnpin for Meta
impl UnwindSafe for Meta
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more