Skip to main content Skip to content

Audit logs

Find who changed what in ZopDay: filter the audit trail of every mutating call, isolate what an AI assistant did, export to CSV, and forward to your SIEM.

5 min read

ZopDay writes every mutating API call (POST, PUT, PATCH, DELETE) to an audit trail, with the actor, the resource, the redacted request and response, and the outcome. The same data feeds the in-app Audit Logs page and your compliance evidence.

ZopDay Audit Logs page with search and filters for action, resource, status, MCP only, user email, and date range, above entries showing action, resource and path, status code, user, timestamp, and a plain-language description

Activity → Audit Logs: every mutating call with who made it, what it touched, and whether it succeeded. Export CSV carries whatever filters are active.

Before you start

  • The audit-log:view policy. Custom roles need an explicit grant; many organisations restrict it to security and compliance teams.

How it works

What gets captured

Each audit entry records:

  • Actor: the signed-in user or the PAT that initiated the request.
  • Method and path: the HTTP verb and the URL, with IDs preserved.
  • Resource type and resource ID: the logical resource being acted on.
  • Request body: the full body, with secret-shaped fields redacted (passwords, tokens, secrets, API keys, etc.).
  • Response body: the full response, with the same redaction applied. MCP read entries are the exception: they keep the request only, and a failed read keeps its error message.
  • Status: HTTP response status.
  • Timestamp: server time of the request.

Read-only operations (GET, HEAD) are not captured. Their volume would swamp the mutation log without adding compliance value. Reads made through the MCP server are the exception, for the reason given in Isolating what an AI assistant did.

What’s redacted

Before storage, ZopDay redacts fields that look like secrets (such as passwords, tokens, and API keys) from request and response bodies, matching on the field name. Environment variable values are never written to the audit trail. A secret in a field whose name doesn’t mark it as one can pass through, so don’t put secrets in oddly named fields.

Bodies are also size-capped. A body over the cap is replaced with a truncation marker, so the audit log never turns into storage for large payloads.

Per-organisation isolation

Audit logs are per organisation. Each organisation’s audit trail is kept separately, and you see only your own organisation’s entries.

View audit logs

Open Activity → Audit Logs in the sidebar. Filter by action, resource, status, user, or date range, and search across users and resources. Expand any entry to see its full request and response body. Failed operations are marked in the description column so you can spot them quickly.

Isolating what an AI assistant did

Every entry records where it came from. The MCP only filter narrows the log to calls made through the MCP server rather than by a person in the app, so you can see exactly what the assistant did, separate from the rest of the trail.

MCP reads are the one exception to the mutations-only rule above. An assistant reading your estate is worth a record, so ZopDay captures those reads too and labels each with the tool that ran. A read entry records the request, not the response. A burst of reads in the same instant collapses into a single entry with a count, so one assistant question doesn’t bury a day of real changes.

Export to CSV

  1. Filter

    Set the filters for the entries you want.

  2. Export

    Click Export CSV. ZopDay downloads every entry matching the current filters, up to 10,000 rows, as a CSV file. Keep the tab open until the download finishes.

  3. Narrow if capped

    If the export hits the 10,000-row cap, ZopDay warns you. Narrow the filters or date range and export again.

Forward to your SIEM

You can forward the audit feed to your SIEM (Splunk, Datadog, Sumo Logic, generic syslog, or object storage). To enable forwarding and configure the destination, contact your account team.

Reference

Common queries

QuestionHow to find it
”Who deleted that environment yesterday?”Filter: Action = Deleted, Resource = Project (environments are logged under their project’s path), date range = yesterday
”What changed in production in the last hour?”Filter: date range = today, Status = Success, Resource = Deployment
”Did this user have access to do this?”Filter: User = their email; the request body shows the resource ID; verify the policy in Settings → Roles
”Why did this deploy fail?”Filter: Status = Failed, Resource = Deployment, date range = around the failure
”What did the IAM import wizard write?”Filter: Resource = Team, then Role, date range = around the import

Troubleshooting

My CSV export stopped at 10,000 rows

The export is capped at 10,000 rows. Narrow the filters or date range and export again in parts.

I can't open Audit Logs

Your role lacks audit-log:view. Ask an admin to grant it in Settings → Roles.

A read I made isn't in the log

Reads (GET, HEAD) aren’t captured, except reads made through the MCP server.

An entry's body shows a truncation marker

The body was over the audit size cap, so it was replaced with a marker. Very large payloads, such as big manifests, may not be captured in full.

Next steps

Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·