Rightshold™ Sign up

Answers · AI evidence

How do I give an outside auditor read-only, time-limited access to my AI agent's action log?

Last updated

TL;DR: Don't hand over an admin login, and don't rely only on an export you made yourself. Give the auditor their own credential that can only read, covers only the agent's log and stops working on a set date, and keep a record that you granted it. Auditing standards point this way: PCAOB AS 1105 says evidence the auditor obtains directly is more reliable than evidence obtained indirectly, and information the company produces has to be tested for accuracy and completeness. NIST SP 800-53 AU-9(6) calls for read-only access to audit information. On Rightshold, if the agent records its actions with record_action, you can issue a credential bound to that one stream with only the read and export scopes and expires_in_days set to the fieldwork window (1 to 90 days). It can read events and download their signed evidence, it can't add anything, and you can revoke it at once. A signed statement for the period (up to 31 days) counts the events and re-checks the hash chain, so the auditor can test that your list of events is complete. Record the access window itself with record_access_grant.

What should I check, step by step?

1. Agree the scope in writing with the auditor: which agent, which period, what they need to do (read events, download signed evidence, check the chain) and the last day of fieldwork.

  1. Make sure the agent's actions land in one place you can scope. On Rightshold, record_action puts every action in your account's Agent action records stream, so one stream id covers the whole population.
  2. Issue the auditor their own credential: POST /v1/operations/workspaces/{workspace_id}/credentials with stream_id, a label naming the firm and engagement, scopes ["read", "export"] and expires_in_days set to the fieldwork window. Leave out ingest and reconcile so it can't add or reconcile events. The rso_ token is shown once; hand it over directly.
  3. Give them the population and a way to test it: list the period's event ids from the stream with your account key, and issue a signed statement for the same period (POST /v1/operations/workspaces/{workspace_id}/statements with period_start and period_end, up to 31 days). The statement's event count and chain check let the auditor confirm the list is complete.
  4. The auditor then reads the sampled events directly with their credential (GET /v1/operations/records/{stream_id}/{event_id}) and downloads signed evidence from the same path plus /export. They verify statements with POST /v1/operations/statements/verify, or offline with a separately pinned issuer key.
  5. If they only need the summary, share the statement instead: POST .../statements/{statement_id}/shares with reviewer and expires_in_days (1 to 90, default 14) returns a private review link, shown once. It needs no account, re-checks the hash chain on every open and counts each open.
  6. Record the access: record_access_grant with the resource (the stream), grantor (who approved it), scope (read and export only), valid_from and expires_at matching the credential. check_access_grant answers whether it was in force on any date, and anyone can check the signed record free with verify_access_record.
  7. Do the same for logs kept elsewhere. In AWS, give the auditor a role they assume with an external ID, read-only permissions and a DateLessThan condition on aws:CurrentTime, so access ends on the date even if nobody remembers to remove it (NIST AC-2(2)).
  8. When fieldwork ends, revoke the credential (POST .../credentials/{credential_id}/revoke) and any review links, record the end with revoke_access_grant, and keep both records for your next access review.

Why shouldn't I give an auditor just a log export or an admin login?

A log export you prepare is information produced by the company. Under PCAOB AS 1105 the auditor has to test its accuracy and completeness (or the controls over it), and evidence they obtain directly is more reliable than evidence they receive indirectly. Letting them read the records themselves reduces both the work and the doubt.

How do I give an auditor read-only access to one AI agent log that expires?

Rightshold operations credentials are bound to one stream and carry only the scopes you pick from ingest, reconcile, read and export. A read and export credential can fetch an event and its signed evidence by id, and nothing else: it can't add events, see other streams or manage members, policies or billing. It expires after expires_in_days and can be revoked or rotated at once, and each issue is written to the workspace's append-only audit history.

What doesn't Rightshold do when I give an auditor access to an agent log?

It doesn't deliver the token or link (you hand them over) and doesn't check who uses them: anyone holding one can use it until it expires or you revoke it. record_access_grant is your signed record of what was allowed. It doesn't enforce anything by itself; the credential does.

How do I ask Rightshold about this (free, no key)?

Add the MCP server https://www.rightshold.com/mcp to Claude, Cursor, ChatGPT, Grok or VS Code, then ask: “Our auditors start fieldwork on Monday and finish on 30 November. Record that their data tool gets read and export access to our agent's action stream for that window only, approved by our CFO.”

One-click setup

{
  "tool": "record_access_grant",
  "arguments": {
    "workspace_id": "opw_YOUR_WORKSPACE",
    "agent_label": "Audit firm fieldwork data tool (read-only)",
    "resource": "Rightshold stream opst_YOUR_STREAM (Agent action records)",
    "grantor": "CFO",
    "scope": "Read and export events in this stream only. No ingest or reconcile.",
    "valid_from": "2026-11-09T00:00:00Z",
    "expires_at": "2026-11-30T23:59:59Z"
  }
}

Rightshold records the agent's events in a private, append-only stream, issues stream-scoped expiring credentials and review links, signs period statements and access records. It doesn't deliver tokens or links, vet who holds them or test the events against source documents. Agreeing scope, handing over access and the audit work itself are steps you and the auditor run around those records. Not audit or legal advice.

What are the sources?

Related

Not legal advice. JSON · Markdown · All answers

Get a free API key in one call

No card and no email needed. 100 free credits; the license and policy checks stay free without a key.

curl -s -X POST https://www.rightshold.com/v1/accounts/signup -H "Content-Type: application/json" -d '{"accept_terms":true}'
export RIGHTSHOLD_API_KEY=rs_...   # the api_key from the reply (shown once)
curl -s https://www.rightshold.com/v1/licenses/check -H "Authorization: Bearer $RIGHTSHOLD_API_KEY" \
  -H "Content-Type: application/json" -d '{"license":"MIT","intended_use":{"commercial_use":true}}'