pub struct AuditEvent {Show 15 fields
pub event_id: String,
pub timestamp_unix: u64,
pub outcome: AuditOutcome,
pub principal_pk_hex: String,
pub executor_pk_hex: String,
pub chain_depth: usize,
pub chain_fingerprint: Option<String>,
pub intent_hex: String,
pub error_message: Option<String>,
pub policy_name: Option<String>,
pub request_id: Option<String>,
pub trace_id: Option<String>,
pub span_id: Option<String>,
pub batch_size: Option<usize>,
pub batch_outcomes: Option<Vec<AuditOutcome>>,
}Expand description
A structured record of a single authorization attempt.
Every call to [DyoloChain::authorize] or [DyoloChain::authorize_async]
produces an AuditEvent. Pass an AuditSink implementation to
[DyoloChain::authorize_with_audit] to capture these events.
The wire format is NDJSON-compatible: each event serializes to a single JSON object on one line. Feed directly into Splunk, Datadog Logs, Elasticsearch, or any SIEM that accepts NDJSON.
§NDJSON example
{"event_id":"a1b2c3d4...","timestamp_unix":1700000000,"outcome":"AUTHORIZED","principal_pk":"...","executor_pk":"...","chain_depth":2,"chain_fingerprint":"...","intent":"...","policy_name":"fintech-trading"}Fields§
§event_id: String§timestamp_unix: u64§outcome: AuditOutcome§principal_pk_hex: String§executor_pk_hex: String§chain_depth: usize§chain_fingerprint: Option<String>§intent_hex: String§error_message: Option<String>§policy_name: Option<String>§request_id: Option<String>§trace_id: Option<String>§span_id: Option<String>§batch_size: Option<usize>§batch_outcomes: Option<Vec<AuditOutcome>>Implementations§
Source§impl AuditEvent
impl AuditEvent
pub fn new( outcome: AuditOutcome, principal_pk_hex: String, executor_pk_hex: String, chain_depth: usize, intent: &IntentHash, timestamp_unix: u64, ) -> Self
pub fn with_fingerprint(self, fp: [u8; 32]) -> Self
pub fn with_error(self, msg: impl Into<String>) -> Self
pub fn with_policy(self, name: impl Into<String>) -> Self
pub fn with_request_id(self, id: impl Into<String>) -> Self
pub fn with_trace( self, trace_id: impl Into<String>, span_id: impl Into<String>, ) -> Self
pub fn with_batch_info(self, size: usize, outcomes: Vec<AuditOutcome>) -> Self
Trait Implementations§
Source§impl Clone for AuditEvent
impl Clone for AuditEvent
Source§fn clone(&self) -> AuditEvent
fn clone(&self) -> AuditEvent
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 AuditEvent
impl Debug for AuditEvent
Source§impl<'de> Deserialize<'de> for AuditEvent
impl<'de> Deserialize<'de> for AuditEvent
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 AuditEvent
impl RefUnwindSafe for AuditEvent
impl Send for AuditEvent
impl Sync for AuditEvent
impl Unpin for AuditEvent
impl UnsafeUnpin for AuditEvent
impl UnwindSafe for AuditEvent
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