pub struct CrossCommunitySessionMintedData {
pub outcome: String,
pub foreign_issuer_did: String,
pub foreign_role: Option<String>,
pub mapped_role: Option<String>,
pub ttl_seconds: Option<u64>,
pub reason: Option<String>,
}Expand description
Payload for AuditEvent::CrossCommunitySessionMinted.
Phase 3 M3.10. The envelope’s actor_did (HMAC-hashed per
§11.1) is the bearer of the foreign credentials — i.e. the
caller of POST /v1/auth/recognise. The envelope’s
target_did is the local subject DID the session was minted
to (same value on minted; absent on denied because no
local subject was established).
Fields§
§outcome: String"minted" or "denied". Stable wire form so SIEM
rules can key on it.
foreign_issuer_did: StringForeign community’s issuer DID (e.g.
did:webvh:peer.example.com:abc).
foreign_role: Option<String>Role claim from the foreign VEC — present even on
denied so operators can see what was attempted.
mapped_role: Option<String>Local role the foreign role mapped onto. Populated on
minted only.
ttl_seconds: Option<u64>Clamped session TTL in seconds. min(jwt_default, vec.validUntil - now, vmc.validUntil - now). Populated
on minted only.
reason: Option<String>On denied: a short reason code from
[RecognitionError::reason_code] or
"role-mapping-denied" for the policy-rejection arm.
Trait Implementations§
Source§impl Clone for CrossCommunitySessionMintedData
impl Clone for CrossCommunitySessionMintedData
Source§fn clone(&self) -> CrossCommunitySessionMintedData
fn clone(&self) -> CrossCommunitySessionMintedData
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'de> Deserialize<'de> for CrossCommunitySessionMintedData
impl<'de> Deserialize<'de> for CrossCommunitySessionMintedData
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>,
impl Eq for CrossCommunitySessionMintedData
impl StructuralPartialEq for CrossCommunitySessionMintedData
Auto Trait Implementations§
impl Freeze for CrossCommunitySessionMintedData
impl RefUnwindSafe for CrossCommunitySessionMintedData
impl Send for CrossCommunitySessionMintedData
impl Sync for CrossCommunitySessionMintedData
impl Unpin for CrossCommunitySessionMintedData
impl UnsafeUnpin for CrossCommunitySessionMintedData
impl UnwindSafe for CrossCommunitySessionMintedData
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> BorrowUnordered for T
impl<T> BorrowUnordered for T
fn as_unordered(&self) -> &Unordered<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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<'de, T, C> DeserializeTyped<'de, C> for Twhere
T: Deserialize<'de>,
impl<'de, T, C> DeserializeTyped<'de, C> for Twhere
T: Deserialize<'de>,
fn deserialize_typed<S>(
_: &C,
deserializer: S,
) -> Result<T, <S as Deserializer<'de>>::Error>where
S: Deserializer<'de>,
impl<T, U> DeserializeTypedOwned<T> for Uwhere
U: for<'de> DeserializeTyped<'de, T>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
fn equivalent(&self, key: &K) -> bool
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
impl<T, U, C> IntoWithContext<U, C> for Twhere
U: FromWithContext<T, C>,
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> ResourceProvider<()> for T
impl<T> ResourceProvider<()> for T
Source§fn get_resource(&self) -> &()
fn get_resource(&self) -> &()
T.