pub struct AuditEvent {Show 14 fields
pub timestamp: DateTime<Utc>,
pub user: String,
pub session_id: Option<String>,
pub event_type: AuditEventType,
pub resource: String,
pub outcome: AuditOutcome,
pub metadata: Option<Value>,
pub workspace_id: Option<String>,
pub tenant_id: Option<String>,
pub request_id: Option<String>,
pub ip_address: Option<String>,
pub resource_id: Option<String>,
pub action: Option<String>,
pub prev_hash: Option<String>,
}auth only.Expand description
An audit event with enterprise multi-tenant context.
All fields beyond timestamp, user, event_type, resource, and outcome
are optional for backward compatibility. Enterprise platforms populate the
additional context fields for multi-tenancy, tracing, and compliance.
Fields§
§timestamp: DateTime<Utc>Timestamp of the event.
user: StringUser ID (email, subject, or system identifier).
session_id: Option<String>Session ID (if available).
event_type: AuditEventTypeType of event.
resource: StringResource being accessed (tool name, agent name, or descriptive path).
outcome: AuditOutcomeOutcome of the operation.
metadata: Option<Value>Additional metadata (arbitrary JSON).
workspace_id: Option<String>Workspace ID for multi-tenant scoping.
tenant_id: Option<String>Tenant ID for multi-tenant scoping (higher level than workspace).
request_id: Option<String>Request ID for distributed tracing correlation.
ip_address: Option<String>Client IP address.
resource_id: Option<String>Resource UUID (distinct from the human-readable resource name).
action: Option<String>Action verb (e.g., “read”, “write”, “delete”, “execute”).
prev_hash: Option<String>SHA-256 hash of the previous event (for cryptographic chaining).
Implementations§
Source§impl AuditEvent
impl AuditEvent
Sourcepub fn new(
event_type: AuditEventType,
user: impl Into<String>,
resource: impl Into<String>,
outcome: AuditOutcome,
) -> AuditEvent
pub fn new( event_type: AuditEventType, user: impl Into<String>, resource: impl Into<String>, outcome: AuditOutcome, ) -> AuditEvent
Create a new audit event with the given type, user, resource, and outcome.
Sourcepub fn tool_access(
user: &str,
tool_name: &str,
outcome: AuditOutcome,
) -> AuditEvent
pub fn tool_access( user: &str, tool_name: &str, outcome: AuditOutcome, ) -> AuditEvent
Create a new tool access event.
Sourcepub fn agent_access(
user: &str,
agent_name: &str,
outcome: AuditOutcome,
) -> AuditEvent
pub fn agent_access( user: &str, agent_name: &str, outcome: AuditOutcome, ) -> AuditEvent
Create a new agent access event.
Sourcepub fn authentication(user: &str, outcome: AuditOutcome) -> AuditEvent
pub fn authentication(user: &str, outcome: AuditOutcome) -> AuditEvent
Create an authentication event.
Sourcepub fn resource_event(
event_type: AuditEventType,
user: &str,
resource: &str,
resource_id: &str,
outcome: AuditOutcome,
) -> AuditEvent
pub fn resource_event( event_type: AuditEventType, user: &str, resource: &str, resource_id: &str, outcome: AuditOutcome, ) -> AuditEvent
Create a resource lifecycle event.
Sourcepub fn secret_accessed(
user: &str,
secret_name: &str,
outcome: AuditOutcome,
) -> AuditEvent
pub fn secret_accessed( user: &str, secret_name: &str, outcome: AuditOutcome, ) -> AuditEvent
Create a secret access event.
Sourcepub fn config_changed(
user: &str,
config_key: &str,
outcome: AuditOutcome,
) -> AuditEvent
pub fn config_changed( user: &str, config_key: &str, outcome: AuditOutcome, ) -> AuditEvent
Create a configuration change event.
Sourcepub fn custom(
event_type: &str,
user: &str,
resource: &str,
outcome: AuditOutcome,
) -> AuditEvent
pub fn custom( event_type: &str, user: &str, resource: &str, outcome: AuditOutcome, ) -> AuditEvent
Create a custom event type for platform extensions.
Sourcepub fn with_session(self, session_id: impl Into<String>) -> AuditEvent
pub fn with_session(self, session_id: impl Into<String>) -> AuditEvent
Set the session ID.
Sourcepub fn with_metadata(self, metadata: Value) -> AuditEvent
pub fn with_metadata(self, metadata: Value) -> AuditEvent
Set metadata.
Sourcepub fn with_workspace(self, workspace_id: impl Into<String>) -> AuditEvent
pub fn with_workspace(self, workspace_id: impl Into<String>) -> AuditEvent
Set workspace ID for multi-tenant scoping.
Sourcepub fn with_tenant(self, tenant_id: impl Into<String>) -> AuditEvent
pub fn with_tenant(self, tenant_id: impl Into<String>) -> AuditEvent
Set tenant ID for multi-tenant scoping.
Sourcepub fn with_request_id(self, request_id: impl Into<String>) -> AuditEvent
pub fn with_request_id(self, request_id: impl Into<String>) -> AuditEvent
Set request ID for distributed tracing.
Sourcepub fn with_ip_address(self, ip: impl Into<String>) -> AuditEvent
pub fn with_ip_address(self, ip: impl Into<String>) -> AuditEvent
Set client IP address.
Sourcepub fn with_resource_id(self, id: impl Into<String>) -> AuditEvent
pub fn with_resource_id(self, id: impl Into<String>) -> AuditEvent
Set resource UUID.
Sourcepub fn with_action(self, action: impl Into<String>) -> AuditEvent
pub fn with_action(self, action: impl Into<String>) -> AuditEvent
Set action verb.
Sourcepub fn with_prev_hash(self, prev_event_json: &str) -> AuditEvent
pub fn with_prev_hash(self, prev_event_json: &str) -> AuditEvent
Compute and set the cryptographic hash chain link.
The hash is SHA-256 of the JSON-serialized previous event. Call this before logging to maintain an append-only chain.
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 more