GET /api/audit/operations
The operation ids PRESENT IN THIS LOG, with names.
Returns the operation ids that actually appear in this audit log -- not the full
operation catalogue, which is GET /api/operations. Pass any of them to
GET /api/audit as ?operations=<id>,<id>.
Authentication
Send the session id as Authorization: Bearer <session id>, and an RFC 9449 DPoP proof in the DPoP header if your session is bound to a key. The two are required together, not as alternatives — see Authenticating and Proving you hold your key.
There is no session cookie on any response and none is read on any request. Do not set credentials: "include" on a browser fetch.
Request
No request body.
Responses
200
The operations present in the log.
| Field | Type | Required | Description |
|---|---|---|---|
operations | array of object | yes | |
detail | string | no |
operations[] object
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | no | |
name | string | no |
Example
{
"operations": [
{
"id": 0,
"name": "..."
}
],
"detail": "..."
}
401
No live session, a DPoP proof that did not verify, or a certificate session whose certificate the key server now refuses.
SESSION_NOT_FOUND -- the credential names no session this Gateway holds.
SESSION_EXPIRED -- it aged out. Both carry reauth: true; obtain a new credential
rather than retrying.
PROOF_* -- the sender constraint refused. See the DPoP section of this document for the
full table; PROOF_MALFORMED is a 400 and PROOF_REPLAY_CACHE_FULL a 503, and the
rest are here.
SCOPED_CREDENTIAL_EXPIRED -- a scoped browser credential passed its fixed lifetime. Use
does not extend it: an idle timeout would be refreshed by exactly the traffic a stolen
handle produces.
CERTIFICATE_REVOKED -- on a session established by certificate login, the key server
re-checks the certificate that session was established with on its operations, and it
is now named by revocation evidence (ADR 0115). detail is the key server's sentence.
Every later operation of the session is refused the same way; log in with a different
certificate.
502
AUDIT_DB_UNAVAILABLE. Not an empty result. Retryable.
503
AUDIT_READER_UNAVAILABLE -- no reader configured, no query run. Not an empty result.
Error handling
Every failure answers JSON carrying at least code and detail. Match on code — detail is written for a human debugging the call and its wording is not part of the contract. See the error model.
| Status | Meaning |
|---|---|
401 | No live session, a DPoP proof that did not verify, or a certificate session whose certificate the key server now refuses. SESSION_NOT_FOUND -- the credential names no session this Gateway holds. SESSION_EXPIRED -- it aged out. Both carry reauth: true; obtain a new credential rather than retrying. PROOF_* -- the sender constraint refused. See the DPoP section of this document for the full table; PROOF_MALFORMED is a 400 and PROOF_REPLAY_CACHE_FULL a 503, and the rest are here. SCOPED_CREDENTIAL_EXPIRED -- a scoped browser credential passed its fixed lifetime. Use does not extend it: an idle timeout would be refreshed by exactly the traffic a stolen handle produces. CERTIFICATE_REVOKED -- on a session established by certificate login, the key server re-checks the certificate that session was established with on its operations, and it is now named by revocation evidence (ADR 0115). detail is the key server's sentence. Every later operation of the session is refused the same way; log in with a different certificate. |
502 | AUDIT_DB_UNAVAILABLE. Not an empty result. Retryable. |
503 | AUDIT_READER_UNAVAILABLE -- no reader configured, no query run. Not an empty result. |