Audit log
Every decision Openavail makes is an immutable row in the audit log.
What is logged
| Action | When it's recorded |
|---|---|
accept | A booking request was approved and the hold created |
reject | A request was denied (rule, priority, or conflict) |
preempt | A higher-priority request displaced an existing hold or committed meeting |
counter | Openavail returned alternative slots instead of the requested one |
hold_expired | An agent never confirmed a hold before its TTL |
undo | An authorized dashboard user 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.
Test Flight receipts
Rows created by Agent Test Flight are normal audit rows with a structured Test Flight marker.
In the dashboard, those rows show a Test flight label. The receipt still records the normal actor, proposal, approval, booking, and side effects, including the Google Calendar write after approval.
Cleanup does not delete Test Flight receipts. It may revoke the internal Test Flight credential, disable the Test Agent, and cancel the test calendar event, but the audit history remains.
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/audit-logs — see the API reference for filtering and pagination.