Skip to content
GitHub

Configuration

The config section is "audit". Environment variable prefix is LEX_AUDIT__.

audit:
store_backend: "sql"
table_name: "audit_log"
hmac_key: null
retention_policy:
name: "default"
default_retention_days: 365
severity_overrides:
critical: 2555
high: 1095
verification_schedule: "0 * * * *"
verification_batch_size: 100
enable_admin: true
KeyTypeDefaultEnv VarDescription
store_backendstr"sql"LEX_AUDIT__STORE_BACKENDBackend type — "sql" or "memory"
table_namestr"audit_log"LEX_AUDIT__TABLE_NAMESQL table name for the unified audit store
hmac_key`bytesNone`NoneLEX_AUDIT__HMAC_KEY
retention_policyRetentionPolicy(see below)Retention rules
verification_schedulestr"0 * * * *"LEX_AUDIT__VERIFICATION_SCHEDULECron expression for scheduled verification
verification_batch_sizeint100LEX_AUDIT__VERIFICATION_BATCH_SIZEEntries to verify per run
enable_adminboolTrueLEX_AUDIT__ENABLE_ADMINRegister the admin panel contributor
KeyTypeDefaultDescription
namestr"default"Policy identifier
default_retention_daysint365Default retention in days (0 = indefinite)
severity_overridesdict[str, int]{"critical": 2555, "high": 1095}Per-severity retention days
source_overridesdict[str, int]{}Per-source retention days
audit:
store_backend: "sql"
table_name: "audit_log"
hmac_key: "c2VjdXJlLWhtYWMta2V5"
retention_policy:
name: "compliance"
default_retention_days: 365
severity_overrides:
critical: 2555
high: 1095
medium: 730
verification_schedule: "0 2 * * *"
enable_admin: true
Terminal window
export LEX_AUDIT__STORE_BACKEND=sql
export LEX_AUDIT__HMAC_KEY=c2VjdXJlLWhtYWMta2V5
export LEX_AUDIT__VERIFICATION_SCHEDULE="0 */6 * * *"

Use AuditModule.configure() for a Python-native approach without YAML:

from lexigram.audit import AuditModule
app.add_module(AuditModule.configure(
hmac_key=b"my-key",
store_backend="sql",
retention_days=730,
enable_admin=True,
))