#[non_exhaustive]pub struct ApiKeyEntry {
pub name: String,
pub hash: String,
pub role: String,
pub expires_at: Option<String>,
}Expand description
A single API key entry (stored as Argon2id hash in config).
The Debug impl is manually written to redact the Argon2id hash.
Although the hash is not directly reversible, treating it as a secret
prevents offline brute-force attempts from leaked logs and matches the
defense-in-depth posture used for AuthIdentity.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: StringHuman-readable key label (used in logs and audit records).
hash: StringArgon2id hash of the token (PHC string format).
role: StringRBAC role granted when this key authenticates successfully.
expires_at: Option<String>Optional expiry in RFC 3339 format.
Implementations§
Trait Implementations§
Source§impl Clone for ApiKeyEntry
impl Clone for ApiKeyEntry
Source§fn clone(&self) -> ApiKeyEntry
fn clone(&self) -> ApiKeyEntry
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ApiKeyEntry
impl Debug for ApiKeyEntry
Source§impl<'de> Deserialize<'de> for ApiKeyEntry
impl<'de> Deserialize<'de> for ApiKeyEntry
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 ApiKeyEntry
impl RefUnwindSafe for ApiKeyEntry
impl Send for ApiKeyEntry
impl Sync for ApiKeyEntry
impl Unpin for ApiKeyEntry
impl UnsafeUnpin for ApiKeyEntry
impl UnwindSafe for ApiKeyEntry
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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