armature-audit

Crates.ioarmature-audit
lib.rsarmature-audit
version0.1.1
created_at2025-12-26 20:42:16.599279+00
updated_at2025-12-29 00:25:49.935776+00
descriptionAudit logging and compliance for Armature
homepagehttps://pegasusheavy.github.io/armature
repositoryhttps://github.com/pegasusheavy/armature
max_upload_size
id2006224
size106,199
Joseph R. Quinn (quinnjr)

documentation

README

armature-audit

Audit logging and compliance for the Armature framework.

Features

  • Audit Trail - Track all changes
  • User Actions - Who did what, when
  • Data Changes - Before/after values
  • Compliance - GDPR, HIPAA, SOC 2 support
  • Multiple Sinks - Database, file, external services

Installation

[dependencies]
armature-audit = "0.1"

Quick Start

use armature_audit::{AuditLog, AuditEntry};

let audit = AuditLog::new()
    .sink(DatabaseSink::new(pool))
    .sink(FileSink::new("/var/log/audit.log"));

// Log an action
audit.log(AuditEntry {
    actor: "user123",
    action: "user.update",
    resource: "user/456",
    changes: json!({
        "before": {"email": "old@example.com"},
        "after": {"email": "new@example.com"}
    }),
}).await?;

Middleware

let app = Application::new()
    .with_middleware(AuditMiddleware::new(audit))
    .put("/users/:id", update_user);

Query Audit Logs

let logs = audit.query()
    .actor("user123")
    .action("user.*")
    .since(Utc::now() - Duration::days(30))
    .execute()
    .await?;

License

MIT OR Apache-2.0

Commit count: 0

cargo fmt