pub struct AuditLogEntry {Show 18 fields
pub timestamp: String,
pub trace_id: String,
pub event_type: String,
pub method: String,
pub path: String,
pub client_ip: String,
pub route_id: Option<String>,
pub reason: Option<String>,
pub agent_id: Option<String>,
pub rule_ids: Vec<String>,
pub tags: Vec<String>,
pub action: Option<String>,
pub status_code: Option<u16>,
pub user_id: Option<String>,
pub session_id: Option<String>,
pub metadata: HashMap<String, String>,
pub namespace: Option<String>,
pub service: Option<String>,
}Expand description
Audit log entry for security events
Fields§
§timestamp: StringTimestamp in RFC3339 format
trace_id: StringTrace ID for correlation
event_type: StringEvent type (blocked, agent_decision, waf_match, etc.)
method: StringHTTP method
path: StringRequest path
client_ip: StringClient IP
route_id: Option<String>Route ID
reason: Option<String>Block reason if blocked
agent_id: Option<String>Agent that made the decision
rule_ids: Vec<String>WAF rule IDs matched
Additional tags
action: Option<String>Action taken (allow, block, challenge, redirect)
status_code: Option<u16>Response status code
user_id: Option<String>User ID if authenticated
session_id: Option<String>Session ID if available
metadata: HashMap<String, String>Additional metadata as key-value pairs
namespace: Option<String>Namespace (for scoped requests)
service: Option<String>Service (for scoped requests)
Implementations§
Source§impl AuditLogEntry
impl AuditLogEntry
Sourcepub fn new(
trace_id: impl Into<String>,
event_type: AuditEventType,
method: impl Into<String>,
path: impl Into<String>,
client_ip: impl Into<String>,
) -> Self
pub fn new( trace_id: impl Into<String>, event_type: AuditEventType, method: impl Into<String>, path: impl Into<String>, client_ip: impl Into<String>, ) -> Self
Create a new audit log entry with required fields
Sourcepub fn with_namespace(self, namespace: impl Into<String>) -> Self
pub fn with_namespace(self, namespace: impl Into<String>) -> Self
Builder: set namespace
Sourcepub fn with_service(self, service: impl Into<String>) -> Self
pub fn with_service(self, service: impl Into<String>) -> Self
Builder: set service
Sourcepub fn with_scope(
self,
namespace: Option<String>,
service: Option<String>,
) -> Self
pub fn with_scope( self, namespace: Option<String>, service: Option<String>, ) -> Self
Builder: set scope from namespace and service
Sourcepub fn with_route_id(self, route_id: impl Into<String>) -> Self
pub fn with_route_id(self, route_id: impl Into<String>) -> Self
Builder: set route ID
Sourcepub fn with_reason(self, reason: impl Into<String>) -> Self
pub fn with_reason(self, reason: impl Into<String>) -> Self
Builder: set reason
Sourcepub fn with_agent_id(self, agent_id: impl Into<String>) -> Self
pub fn with_agent_id(self, agent_id: impl Into<String>) -> Self
Builder: set agent ID
Sourcepub fn with_rule_ids(self, rule_ids: Vec<String>) -> Self
pub fn with_rule_ids(self, rule_ids: Vec<String>) -> Self
Builder: add rule IDs
Builder: add tags
Sourcepub fn with_action(self, action: impl Into<String>) -> Self
pub fn with_action(self, action: impl Into<String>) -> Self
Builder: set action
Sourcepub fn with_status_code(self, status_code: u16) -> Self
pub fn with_status_code(self, status_code: u16) -> Self
Builder: set status code
Sourcepub fn with_user_id(self, user_id: impl Into<String>) -> Self
pub fn with_user_id(self, user_id: impl Into<String>) -> Self
Builder: set user ID
Sourcepub fn with_session_id(self, session_id: impl Into<String>) -> Self
pub fn with_session_id(self, session_id: impl Into<String>) -> Self
Builder: set session ID
Sourcepub fn with_metadata(
self,
key: impl Into<String>,
value: impl Into<String>,
) -> Self
pub fn with_metadata( self, key: impl Into<String>, value: impl Into<String>, ) -> Self
Builder: add metadata
Sourcepub fn blocked(
trace_id: impl Into<String>,
method: impl Into<String>,
path: impl Into<String>,
client_ip: impl Into<String>,
reason: impl Into<String>,
) -> Self
pub fn blocked( trace_id: impl Into<String>, method: impl Into<String>, path: impl Into<String>, client_ip: impl Into<String>, reason: impl Into<String>, ) -> Self
Create an entry for a blocked request
Sourcepub fn rate_limited(
trace_id: impl Into<String>,
method: impl Into<String>,
path: impl Into<String>,
client_ip: impl Into<String>,
limit_key: impl Into<String>,
) -> Self
pub fn rate_limited( trace_id: impl Into<String>, method: impl Into<String>, path: impl Into<String>, client_ip: impl Into<String>, limit_key: impl Into<String>, ) -> Self
Create an entry for rate limit exceeded
Sourcepub fn waf_blocked(
trace_id: impl Into<String>,
method: impl Into<String>,
path: impl Into<String>,
client_ip: impl Into<String>,
rule_ids: Vec<String>,
) -> Self
pub fn waf_blocked( trace_id: impl Into<String>, method: impl Into<String>, path: impl Into<String>, client_ip: impl Into<String>, rule_ids: Vec<String>, ) -> Self
Create an entry for WAF block
Sourcepub fn config_change(
trace_id: impl Into<String>,
change_type: impl Into<String>,
details: impl Into<String>,
) -> Self
pub fn config_change( trace_id: impl Into<String>, change_type: impl Into<String>, details: impl Into<String>, ) -> Self
Create an entry for configuration change
Sourcepub fn cert_reload(
trace_id: impl Into<String>,
listener_id: impl Into<String>,
success: bool,
) -> Self
pub fn cert_reload( trace_id: impl Into<String>, listener_id: impl Into<String>, success: bool, ) -> Self
Create an entry for certificate reload
Trait Implementations§
Source§impl Debug for AuditLogEntry
impl Debug for AuditLogEntry
Auto Trait Implementations§
impl Freeze for AuditLogEntry
impl RefUnwindSafe for AuditLogEntry
impl Send for AuditLogEntry
impl Sync for AuditLogEntry
impl Unpin for AuditLogEntry
impl UnwindSafe for AuditLogEntry
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> 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 moreSource§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>
T in a tonic::RequestSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more