photoncloud-monorepo/iam/crates/iam-audit/src/lib.rs
centra 8f94aee1fa Fix R8: Convert submodule gitlinks to regular directories
- Remove gitlinks (160000 mode) for chainfire, flaredb, iam
- Add workspace contents as regular tracked files
- Update flake.nix to use simple paths instead of builtins.fetchGit

This resolves the nix build failure where submodule directories
appeared empty in the nix store.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-09 16:51:20 +09:00

32 lines
973 B
Rust

//! Audit logging for IAM
//!
//! Provides structured audit logging for authentication and authorization events.
//!
//! ## Features
//!
//! - Multiple event types (authentication, authorization, policy changes)
//! - Pluggable sinks (file, memory, custom)
//! - Async-first design
//! - Structured JSON output
//!
//! ## Usage
//!
//! ```ignore
//! use iam_audit::{AuditLogger, AuditEvent, AuditEventKind, FileSink};
//!
//! let sink = FileSink::new("/var/log/iam-audit.jsonl").await?;
//! let logger = AuditLogger::new(sink);
//!
//! logger.log(AuditEvent::authn_success("alice", "jwt")).await?;
//! ```
mod event;
mod logger;
mod sink;
pub use event::{
AdminEventData, AuditEvent, AuditEventKind, AuthnEventData, AuthzEventData, PolicyChangeType,
PolicyEventData, TokenEventData, TokenEventType,
};
pub use logger::{AuditLogger, AuditLoggerConfig, BufferedAuditLogger};
pub use sink::{AuditError, AuditSink, FileSink, MemorySink, MultiSink, NullSink, Result};