pub struct Identity {
pub id: String,
pub tenant: Option<String>,
pub email: Option<String>,
pub email_verified: bool,
pub phone: Option<String>,
pub phone_verified: bool,
pub status: AccountStatus,
pub roles: Vec<String>,
pub perms: Vec<String>,
pub mfa: MfaState,
pub attributes: Map<String, Value>,
}Expand description
The canonical user record. PII fields (email, phone) are expected to be
encrypted at rest by the app’s UserStore via the
compliance CryptoVault; this struct is the decrypted view a handler sees.
Fields§
§id: String§tenant: Option<String>Home tenant (B2B). None for a global / B2C consumer.
email: Option<String>§email_verified: bool§phone: Option<String>§phone_verified: bool§status: AccountStatus§roles: Vec<String>§perms: Vec<String>Fine-grained resource:action permissions embedded in the access token.
mfa: MfaState§attributes: Map<String, Value>Progressive-profiling / custom claims surfaced to policies and OIDC.
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Identity
impl<'de> Deserialize<'de> for Identity
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Identity
impl RefUnwindSafe for Identity
impl Send for Identity
impl Sync for Identity
impl Unpin for Identity
impl UnsafeUnpin for Identity
impl UnwindSafe for Identity
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
Mutably borrows from an owned value. Read more
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<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request