Skip to content

Depot mspsearch

Registers cross-client search on the control-plane 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.

GETsearch:queryshared facehosteditmspremoteIdempotent

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

Source: [object Object]

Search

NameInTypeRequiredDescription
clientIdquerystringNo
includeArchivedquerystringNo
kindsquerystringNo
pagequeryintegerNoOne-based page number. Defaults to 1.
pageSizequeryintegerNoRows per page, 1 to 200. Defaults to 50.
pinnedClientIdquerystringNo
qquerystringNo
scopequerystringNo
StatusBodyDescription
200application/json, SearchResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold search:query.
500application/problem+json, ProblemDetailsCould not list clients.
503application/problem+json, ProblemDetailsCross-client search is not available on this server.

200 response body

FieldTypeDescription
countsByKindrequiredobject
degradedKindsrequiredarray of string
itemsrequiredarray of SearchHitView
items[].agentIdstring
items[].badgerequiredstring
items[].capabilitiesarray of string
items[].clientNamerequiredstring
items[].clientPublicIdrequiredstring
items[].connectedrequiredboolean
items[].idrequiredstring
items[].kindrequiredstring
items[].matchedOnrequiredstring
items[].parentIdstring
items[].restrictedrequiredboolean
items[].scorerequiredinteger
items[].subtitlerequiredstring
items[].titlerequiredstring
pagerequiredinteger
pageSizerequiredinteger
skippedKindsrequiredarray of string
tooShortrequiredboolean
tookMsrequiredinteger

int64.

totalrequiredinteger
truncatedrequiredboolean
unavailableClientsrequiredarray of string
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/search?clientId=<clientId>&includeArchived=<includeArchived>&kinds=<kinds>&page=0&pageSize=0&pinnedClientId=<pinnedClientId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTsearch:queryshared facehosteditmspremote

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

Source: [object Object]

logSearchCommit records a cross-client search into the CONTROL chain, and - when the operator opened a specific client’s record - a second row into that client’s own chain.

THE SECOND ROW IS THE POINT. An MSP operator reading a tenant’s data is invisible from inside that tenant: the request never touched their console, their audit chain, or anything they can see. A “search.result_opened” row in the client’s own chain, naming the kind and the id, is the ONLY way a tenant’s audit log can show that somebody outside looked at their record. Writing it only into the control chain would put the evidence exclusively in the hands of the party it is evidence about.

Both appends are best effort and the response is always 204. A failed audit append must not fail a click: the operator has already navigated.

Required, sent as application/json.

FieldTypeDescription
kindsrequiredarray of string
landedOnResultsPagerequiredboolean
openedobject or null
opened.clientPublicIdrequiredstring
opened.idrequiredstring
opened.kindrequiredstring
resultCountrequiredinteger
termrequiredstring
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsThe request body is not acceptable.
401application/problem+json, ProblemDetailsNo signed-in identity.
403application/problem+json, ProblemDetailsThe identity does not hold search:query.
Terminal window
# Sign in first. outpost_console is a session cookie, so send it with every request.
curl -X POST 'https://depot.example.com/api/v1/search' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"kinds": [
"string"
],
"landedOnResultsPage": false,
"opened": {
"clientPublicId": "string",
"id": "string",
"kind": "string"
},
"resultCount": 0,
"term": "string"
}'

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.