Audit log

Every decision Openavail makes is an immutable row in the audit log.

What is logged

ActionWhen it's recorded
acceptA booking request was approved and the hold created
rejectA request was denied (rule, priority, or conflict)
preemptA higher-priority request displaced an existing hold or committed meeting
counterOpenavail returned alternative slots instead of the requested one
hold_expiredAn agent never confirmed a hold before its TTL
undoA governance reviewer reversed a preemption via the undo link

Every row captures: decision_id, action, agent_id, api_key_id, calendar_owner, rule_fired, latency_ms, timestamp.

Reading the audit log

In the dashboard, go to Audit log. The log is paginated and sorted newest-first. Click any row to see the full decision record including the raw request payload and the rule evaluation trace.

Filtering

Use the filter bar to narrow by:

  • Agent — show decisions from a specific agent
  • Calendar owner — show decisions affecting a specific person's calendar
  • Action — show only preemptions, only rejects, etc.
  • Time range — any ISO 8601 range

Filters compose (AND). URL query parameters are preserved so filtered views can be bookmarked or shared.

Exporting

The dashboard exports the visible (filtered) set as JSONL. Each line is one decision record. The export is gzip-compressed for large sets.

For programmatic access, use GET /v1/decisions — see the API reference for cursor-based pagination and field selection.

Signing

Each audit row includes an ed25519 signature over the decision payload using a key managed by Openavail. The public key is published at /v1/audit/public-key. You can verify the signature independently to prove a given decision was not tampered with after the fact.

Signature verification details are in the Retention page.