pub struct CredentialIssueRecord {
pub component_ref: String,
pub session_id: String,
pub key: String,
pub kind: String,
}Expand description
One credential handed over to a component.
Deliberately not a CapDecisionRecord. That one records what policy
decided; this one records that material actually crossed into the guest —
design §9 requires an entry for “every get-secret that returns material:
component, session, key, timestamp — never values”, and the two answer
different questions when read back.
component_ref and session_id are carried on the record itself rather
than inherited from an enclosing span: an audit record must identify what
it describes from its own fields, not from whatever happens to enclose the
call site. That keeps the record intact wherever the host later chooses to
serve a credential from, and keeps the layer’s decoding a function of the
event alone.
There is no field that could hold a value, and none is added: the type is
the enforcement. list-secrets has no record of its own on purpose —
design §9 again, “it would bury the one event that matters”.
Fields§
§component_ref: String§session_id: StringThe session the credential was issued under. Never empty in practice:
get-secret requires a session (design §3.3).
key: StringThe store lookup key, as the guest asked for it — untrusted input, so every renderer escapes it.
kind: StringTrait Implementations§
Source§impl Clone for CredentialIssueRecord
impl Clone for CredentialIssueRecord
Source§fn clone(&self) -> CredentialIssueRecord
fn clone(&self) -> CredentialIssueRecord
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for CredentialIssueRecord
impl RefUnwindSafe for CredentialIssueRecord
impl Send for CredentialIssueRecord
impl Sync for CredentialIssueRecord
impl Unpin for CredentialIssueRecord
impl UnsafeUnpin for CredentialIssueRecord
impl UnwindSafe for CredentialIssueRecord
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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