Audit Trail & Export
An append-only record of every question, approval, and notification — filterable, exportable, tamper-evident
Pushary records every agent interaction — each question asked, each approval or denial, each notification — as an append-only audit trail. It's the paper trail for "what did my agents ask, and what did I let them do?"
What's recorded
Each row captures the agent type and name, the session, the tool involved, the question or notification content, your decision, and timestamps. You'll find it at Dashboard → Agent → Activity.
| Decision | Meaning |
|---|---|
approved | You answered yes |
denied | You answered no |
pending | Asked but not yet answered |
notification | One-way notification (no decision) |
Append-only by construction
The audit table is immutable at the database level, not just in the app:
UPDATEandDELETEare revoked from the application database role.- A
BEFORE UPDATEtrigger permits exactly one change to a row: writing the first answer (response+answered_at) to a previously unanswered question. Any other column edit is rejected with a hard error. Deletes are blocked outright.
In practice: once an interaction is written, it can never be altered or removed — the only permitted mutation is recording your answer once. This is what makes the trail trustworthy for compliance.
This guarantee ships before any compliance claim is made in the product — the database enforces it, so the audit trail can't be quietly edited even by Pushary's own app code.
Filtering
Pro feature
The filterable table and export are available on Agent Pro and Team. On lower tiers the Activity page shows a bounded recent-activity list with an upgrade prompt.
The audit view supports filtering by:
- Agent type (
claude_code,codex,hermes,cursor,windsurf) - Session — narrow to one agent run
- Decision —
approved,denied,pending, ornotification - Search — substring match on the question/notification content
- Date range —
from/to
Results are cursor-paginated (50 per page, up to 200).
Export (CSV / JSON)
Export the filtered trail for compliance, review, or your own warehouse. CSV is the default; pass format=json for JSON.
The CSV columns are:
createdAt, agentType, agentName, sessionId, type, content, decision, answeredAtExports respect a 365-day retention floor — the export window can't reach further back than one year. A single export streams up to 10,000 rows.