pub struct AuditEvent {
pub seq: u64,
pub transaction_id: String,
pub action_name: String,
pub risk_level: RiskLevel,
pub summary: String,
pub approval_id: Option<String>,
pub created_at: String,
pub chain_hash: String,
pub key_id: String,
pub caller_role: Option<String>,
pub caller_principal: Option<String>,
pub final_status: Option<String>,
}Expand description
One audit event handed to the forwarder. Mirrors the chain content
captured at INSERT time so SIEM rules can correlate by transaction_id
and request_hash against the local hash-chained log.
final_status is None for the preview-time event (no terminal state yet)
and Some for the execute-time event emitted after update_status. SOC
analysts watching the SIEM can therefore tell from the same event stream
whether an action ran, succeeded, failed, or was rolled back.
Fields§
§seq: u64§transaction_id: String§action_name: String§risk_level: RiskLevel§summary: String§approval_id: Option<String>§created_at: String§chain_hash: String§key_id: String§caller_role: Option<String>§caller_principal: Option<String>Which account the daemon attributed the call to, taken from the signed
row rather than from the connection state, so the SIEM sees what the chain
says. None only for rows written before the principal existed.
Without this the whole point of the signed principal stops at the local database: a SOC watching this stream would still see only “an Admin did this”, and could not see an attribution failure at all.
final_status: Option<String>Trait Implementations§
Source§impl Clone for AuditEvent
impl Clone for AuditEvent
Source§fn clone(&self) -> AuditEvent
fn clone(&self) -> AuditEvent
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 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
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