Audit Event Log

Goal: Set up an append-only, hash-chained audit trail over workspace configuration commits, with server timestamps, user attribution, and server-side digest verification.


What is an Audit Event Log?

AspectDescription
PurposeAppend-only, hash-chained record of workspace configuration-change events
ScopeWorkspace-wide — captures events across all nodes
ComplianceSatisfies 21 CFR Part 11, EU Annex 11 audit trail requirements
Events capturedCreate, Update, Delete, Scan, Transfer, Approve, Reject

Audit events are append-only: the write path creates, never updates, and a duplicate event ID is rejected. Any alteration breaks the hash chain and is detectable. Storage-level enforcement — where the service itself refuses a delete or overwrite — ships with the Provenance blob store.


Prerequisites

  • Workspace admin permissions
  • (Optional) Amendment Log for complete ALCOA+ coverage

Option A: Using the UI

Step 1: Add Audit Log to Workspace

  1. Open workspace canvas
  2. Find Audit Log in the Node Bank (shield icon, under Governance)
  3. Drag onto canvas
  4. Name it (e.g., "production-audit-trail")

Step 2: Configure Retention Policy

Open Inspector → Settings tab:

FieldDescriptionDefault
NameDisplay nameRequired
Retention PeriodHow long events are kept365 days
Export FormatDefault export formatJSON

Step 3: Commit

Commit to activate the audit trail. Events begin capturing immediately.

Thinking Tip:

The audit trail starts capturing from the moment of commit. It does not retroactively capture events from before activation.

Step 4: Browse Events

Click the Audit Log node → Inspector → Events tab:

ColumnDescription
TimestampServer-generated (UTC)
UserWho performed the action
ActionCreate, Update, Delete, etc.
Entity TypeConnection, Surface, WarmQuery, etc.
Entity KeySpecific resource identifier

Step 5: Filter Events

Use the filter controls at the top of the Events tab:

FilterOptions
Entity TypeConnection, Surface, WarmQuery, App, etc.
Action TypeCreate, Update, Delete, Approve, Reject
Date RangeStart date → End date
UserSpecific user or "All"

Step 6: View Event Details

Click any event row to expand:

  • Before state (JSON snapshot before the change)
  • After state (JSON snapshot after the change)
  • Diff view highlighting changed fields
  • E-signature hash for verification

Step 7: Export for Compliance

Inspector → Events tab → Export button:

  • CSV format (spreadsheet-friendly, includes all ALCOA+ fields)
  • JSON format (machine-readable, includes full before/after payloads)

Option B: Ask Azi

Example prompts:

  • "Add an audit log to this workspace"
  • "Show me all delete events from last week"
  • "Who modified the production-sensors connection yesterday?"
  • "Export audit events from March 2026 as CSV"

Chain Verification

Every audit event carries a SHA-256 digest (Hash) computed by the platform over the stored record, chained to its predecessor. To check that a log has not been tampered with:

  1. Inspector → Events tab → click event → Verify button
  2. Or use the REST API: POST /oi-api/provenance/events/verify
  3. The response reports ChainValid for the whole log, and Valid for one named record

Omit RecordID from the request and you verify the entire chain, genesis to tip — which is what a "verify this log" button does. See the REST API Reference for the full verdict shape, including why ChainValid: true with Empty: true means nothing was checked rather than everything is fine.

The digest is computed server-side, over the record as stored — not in the browser, and not over what a caller submitted. Each event's hash covers its payload (timestamp, user, action, before/after state) plus the previous event's hash, forming an append-only chain, so modifying any event invalidates every digest after it. Verification recomputes those digests independently and compares.

Storage-level enforcement backs it: records live in Azure Blob Storage under a time-based immutability policy, isolated per workspace and per scope by container. In production that policy is locked, so the service itself refuses a delete or an overwrite — the guarantee does not depend on application code behaving.


Best Practices

  • Activate the audit log before other workspace changes to capture everything from the start
  • Use Amendment Log alongside Audit Event Log for complete ALCOA+ coverage
  • Export regularly for off-platform archival (compliance teams often require this)
  • Set retention period based on your regulatory requirements (FDA: minimum 2 years; your organization may require longer)

Next Steps

If you want to...Go to...
Document corrections with traceabilityAmendment Log →
Query audit events via APIREST API → Audit Logs →
Understand ALCOA+ principlesGovernance Overview →
Learn about workspace securitySecurity → Secrets →

Audit trails are the foundation of regulated data integrity. Every recorded change attributed, timestamped, and chained. That's governance by design.

On this page