Quickstart
Install, wire, and record audit events in under 5 minutes.
Install
Section titled “Install”uv add oridecon-auditFor the SQL backend (recommended for production):
uv add "oridecon-audit[sql]"Minimal Wiring (Memory Backend)
Section titled “Minimal Wiring (Memory Backend)”import asynciofrom oridecon import Applicationfrom oridecon.audit import AuditBundleProvider, AuditConfig
config = AuditConfig(store_backend="memory")provider = AuditBundleProvider(config=config)
async def main() -> None: async with Application.boot( name="demo", providers=[provider], config=config, ) as app: print("Audit provider ready")
asyncio.run(main())Record and Query an Audit Entry
Section titled “Record and Query an Audit Entry”import asynciofrom datetime import UTC, datetimefrom oridecon import Applicationfrom oridecon.audit import AuditBundleProvider, AuditConfigfrom oridecon.contracts.audit import ( AuditEntry, AuditQuery, AuditEventSeverity, AuditLoggerProtocol,)
config = AuditConfig(store_backend="memory")provider = AuditBundleProvider(config=config)
async def main() -> None: async with Application.boot( name="demo", providers=[provider], config=config, ) as app: logger = await app.resolve(AuditLoggerProtocol)
await logger.log(AuditEntry( action="user.login", actor_id="user-42", severity=AuditEventSeverity.HIGH, metadata={"ip": "10.0.0.1"}, ))
results = await logger.query(AuditQuery(actor_id="user-42", limit=10)) print(f"Found {len(results)} entries")
asyncio.run(main())Next Steps
Section titled “Next Steps”- Guide — concepts and mental model
- Configuration — all config fields
- How-Tos — common recipes