Skip to content

Depot audit

Registers the two chains’ reads on mux.

This page is generated from the Depot route table. Every operation carries the permission it needs and the anchor an agent can link to.

GETaudit:readshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

List operator audit

NameInTypeRequiredDescription
actorKindquerystringNo
actorRefquerystringNo
clientIdquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
targetIdquerystringNo
targetKindquerystringNo
verbquerystringNo
StatusBodyDescription
200application/json, PagedResultOperatorAuditViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold audit:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of OperatorAuditView
items[].actorDisplayNamestring
items[].actorKindrequiredstring
items[].actorRefrequiredstring
items[].afterJsonany

Arbitrary JSON.

items[].beforeJsonany

Arbitrary JSON.

items[].clientIdstring
items[].clientNamestring
items[].entryHashstring
items[].idrequiredinteger

int64.

items[].occurredAtrequiredstring (date-time)
items[].targetIdrequiredstring
items[].targetKindrequiredstring
items[].verbrequiredstring
items[].viaany

Arbitrary JSON.

pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/audit?actorKind=<actorKind>&actorRef=<actorRef>&clientId=<clientId>&page=0&pageSize=0&targetId=<targetId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETaudit:readshared facehosteditmspremoteIdempotentdownloadNot fully resolved

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

What this page does not know
  • response

These are parts of the route the extractor could not read from the source. Everything else on this page came straight from it.

Source: [object Object]

exportOperatorAudit downloads this client’s audit chain as CSV or JSON.

Oldest first, streamed, with each entry’s PrevHash, EntryHash and the exact canonical bytes that were hashed, so the file verifies offline without this Depot (internal/auditexport). from/to bound OccurredAt (RFC 3339) and actorKind keeps one kind; a filtered export verifies entry by entry.

NameInTypeRequiredDescription
actorKindquerystringNo
formatquerystringNo
StatusBodyDescription
200application/octet-stream, string (binary)Success. The body shape was not resolved; see x-outpost-unresolved.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold audit:read.
500application/problem+json, ProblemDetailsNo client store in request context.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/audit/export?actorKind=<actorKind>&format=<format>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETaudit:readshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

verifyOperatorAudit walks the console chain and answers the verdict.

It carries no brokenAt. The store’s verify for this chain answers an error naming the row rather than a structured verdict, and parsing a row id back out of a message would make the chain’s evidence depend on a sentence’s wording. The viewer renders “Chain broken” without it, which is the fact that matters; the settings chain, whose store method returns the row, does name it.

StatusBodyDescription
200application/json, ChainStatusViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold audit:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
anchorIdinteger

int64.

brokenAtinteger

int64.

entriesrequiredinteger
intactrequiredboolean
verifiedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/audit/verify' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETaudit:readshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

List settings audit

NameInTypeRequiredDescription
actionquerystringNo
agentIdquerystringNo
outcomequerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
settingKeyquerystringNo
StatusBodyDescription
200application/json, PagedResultSettingsAuditViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold audit:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
itemsrequiredarray of SettingsAuditView
items[].actionrequiredstring
items[].agentIdstring
items[].detailstring
items[].hostnamestring
items[].idrequiredinteger

int64.

items[].kindrequiredstring
items[].mechanismstring
items[].newValueany

Arbitrary JSON.

items[].occurredAtrequiredstring (date-time)
items[].outcomerequiredstring
items[].policyHashrequiredstring
items[].priorPresentrequiredboolean
items[].priorValueany

Arbitrary JSON.

items[].recordedAtrequiredstring (date-time)
items[].reportIdrequiredstring
items[].settingKeyrequiredstring
pagerequiredinteger
pageSizerequiredinteger
totalrequiredinteger
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/settings-audit?action=<action>&agentId=<agentId>&outcome=<outcome>&page=0&pageSize=0&settingKey=<settingKey>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETaudit:readshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Verify settings audit

StatusBodyDescription
200application/json, ChainStatusViewSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold audit:read.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
anchorIdinteger

int64.

brokenAtinteger

int64.

entriesrequiredinteger
intactrequiredboolean
verifiedAtrequiredstring (date-time)
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/settings-audit/verify' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETaudit:readshared facehosteditmspremoteIdempotent

From an MSP console, prefix the path with /api/v1/clients/{clientID} to reach one client.

Source: [object Object]

Get settings snapshot

NameInTypeRequiredDescription
hashpathstringYes
StatusBodyDescription
200application/json, PolicySnapshotViewSuccess.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold audit:read.
404application/problem+json, ProblemDetailsNo snapshot matches that policy hash.
500application/problem+json, ProblemDetailsNo client store in request context.

200 response body

FieldTypeDescription
createdAtrequiredstring (date-time)
policyHashrequiredstring
settingsrequiredany

Arbitrary JSON.

Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
# This operation is idempotent. Repeating it does not repeat its effect.
curl -X GET 'https://depot.example.com/api/v1/settings-snapshots/<hash>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

Content is licensed CC BY 4.0. Code samples are MIT. Outpost and the Outpost mark are trademarks of Outpost Business Solutions, PBC and are not covered by either license.