Audit trail

An audit log of every change your team makes.

Who revoked that key, who changed a role, who moved production to v7. Every write the platform performs is recorded with the person behind it and the detail that makes it readable — and the whole team reads back as one list you can filter and share.

audit.shcurl
# a session cookie, not a Bearer key —
# the trail records what people did
curl "$ACRUX/teams/$TEAM/audit?limit=2" \
  -H "Cookie: $SESSION"
# → data[] plus page, limit and total

# filter by event, and by who did it
curl "$ACRUX/teams/$TEAM/audit?event=member_removed" \
  -H "Cookie: $SESSION"
# → total follows the filter, not the page

# everyone who appears in the trail
curl "$ACRUX/teams/$TEAM/audit/actors" \
  -H "Cookie: $SESSION"

What you get

Coverage, grouping, per-actor filters and role gating.

One list for the whole team

Thirty-four kinds of event across seven areas — keys, members and invites, gateway, secrets, settings, prompts and tools — newest first, in one place instead of one tab per resource.

A readable line, not a row of ids

Each event carries its own detail: the key name, the alias move as production · v1 → v2, the budget as team · monthly · $50.00. A member change names the person by email, including someone who has already left.

Filters that narrow, in the URL

Pick an area, then one event inside it, then the person who did it. Every filter and the page number live in the address, so a filtered view can be pasted into a ticket and opened by a teammate.

Owner and admin only

A member without the role never sees the screen or the nav item. The read takes a signed-in session rather than an API key, because a record of what people did should not be readable by a program holding a key.

Coverage

What the trail records.

Every write worth answering a question about, grouped the way you would ask about it. The filter offers these seven areas rather than one flat list of thirty-four event names.

AreaWhat it records
PromptsCreated, renamed, updated and deleted, plus every version commit, alias promotion and alias deletion.
ToolsCreated, version committed, alias promoted, version superseded, and every prompt binding set or removed.
Members & invitesInvited, joined, role changed, removed, invite revoked — each naming the person it happened to.
API keysGenerated, with the name the key was given, and revoked.
GatewayProvider credentials, gateway models, virtual keys and budgets — added, updated, deleted or revoked.
SecretsCreated, rotated and deleted. The name is recorded and the value never is, so the trail cannot leak what it protects.
SettingsTrace payload capture switched on or off for the team.

This is the record of changes people made, not a log of your traffic. Model calls are traces, not audit events — the two answer different questions, and a completion never appears here.

Reference: team audit trail

Reading it back

Adding a filter always makes the answer smaller.

A thousand events is not something you page through. The three filters compose in one direction, so the second one you add never widens what the first one found.

Area, then event

Choosing areas narrows what the event picker offers, and naming one event filters to exactly that event. The area is the shortlist; the event is the answer.

The actor list comes from the trail

The people you can filter by are read from the recorded events, each with a count — so a contractor who was removed last month is still there to select. Built from the current member list, they would not be.

Filtered in the database

The count above the table is the number of matching events in the whole team, not the number on the page you happen to be reading. A match on page 30 is still counted, and still reachable.

Pagination is 25 events to a page, and changing any filter returns you to page 1 — so a narrowed search never leaves you on a page number that no longer exists.

Guide: read the team audit trail

Access

Who can read it, and what it does not do yet.

A trail is only worth having if the people who can read it are exactly the people who should. That is a role question, and it has one answer.

Owner and admin

Editors and viewers get neither the page nor the nav entry pointing at it — a link they could not open would only advertise a dead end. The per-prompt and per-tool trails are unchanged, and any member can still read those.

A person, not a key

The team-wide read is the one call in the platform an API key cannot make: it needs a signed-in session, and a Bearer key gets 401 instead of a filtered list.

Not yet: export and retention

There is no CSV or JSON download, and no retention window to configure — every event is kept, and the way to hand a colleague a slice of it is the URL of the filtered view.

In the dashboard

Everything without writing a line of code.

The API and SDKs cover the automated path. For the day-to-day, the dashboard does the same work in the browser.

  • Read every recorded action in the team, newest first, 25 to a page.
  • Filter by area, then narrow to a single event type inside it.
  • Filter by the person who did it — including someone who has left the team.
  • Read a member change as an email address rather than a user id.
  • Jump from a prompt or tool event straight to the prompt it changed.
  • Share what you are looking at by copying the URL.
The AcruxCore team audit trail filtered to the gateway area, showing 157 matching events — gateway models created and deleted, a budget, and virtual keys — each with its detail and the email of the person who did it.
The trail filtered to one area: the count follows the filter, and the filter is in the URL.

Go deeper

Documentation for this piece.

Guide: read the team audit trailGuide: manage team roles and permissionsGuide: invite a teammateAPI: audit trailsCore concepts

The rest of the platform

It composes with the other five.

Each piece works on its own, and they get better together — a trace links back to a prompt version, a dataset is built from feedback.

PromptsA prompt management platform for versioned, templated message sets. Move a production alias between versions without redeploying your app.GatewayAn LLM gateway that speaks OpenAI to every provider you connect. Bring your own keys; get routing, fallbacks, cost and caching.TracingLLM observability for every call — spans for model, tokens, latency and cost. Or export your own spans over OpenTelemetry.ToolsLLM tool calling from a versioned catalog: functions bound to a prompt alias and handed to the model.EvaluationAn LLM evaluation platform: score prompt versions and models on a dataset, judge live traffic on a standing rule, and optimize the next version.

Read your team’s trail.

Open Team → Audit trail and filter it down to the change you are looking for. Nothing to switch on: every action your team has already taken is recorded.