Skip to content

Depot dashboards

Registers the dashboard console routes (D18).

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

GETshared facehosteditmspremoteIdempotent

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

Source: [object Object]

listDashboards lists the dashboards the caller may open on a face, with the one that opens by default and why.

NameInTypeRequiredDescription
clientIdquerystringNo
facequerystringNo
siteIdquerystringNo
StatusBodyDescription
200application/json, ListResponseSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
404application/problem+json, ProblemDetailsThere are no practice dashboards here.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
canManagerequiredboolean
canTvrequiredboolean
dashboardsrequiredarray of ListItem
dashboards[].builtinrequiredboolean
dashboards[].canEditrequiredboolean
dashboards[].facerequiredstring
dashboards[].idrequiredstring
dashboards[].minerequiredboolean
dashboards[].namerequiredstring
dashboards[].ownerrequiredOwnerRef

OwnerRef names a dashboard's owner.

dashboards[].owner.namerequiredstring
dashboards[].rolesrequiredarray of RoleRef
dashboards[].roles[].idrequiredstring
dashboards[].roles[].namerequiredstring
dashboards[].sharingrequiredstring
facerequiredstring
resolvedrequiredResolved

Resolved says which dashboard opens by default and why (D6).

resolved.idrequiredstring
resolved.sourcerequiredstring, one of builtin, client, practice, role, user
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/console/dashboards?clientId=<clientId>&face=<face>&siteId=<siteId>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTshared facehosteditmspremoteNot 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-status

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]

createDashboard saves a new dashboard owned by the caller.

A shared one needs dashboard:manage.

Required, sent as application/json.

FieldTypeDescription
definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

definition.range.fromstring
definition.range.presetrequiredstring
definition.range.tostring
definition.versionrequiredinteger
definition.widgetsrequiredarray of Widget
definition.widgets[].chartstring
definition.widgets[].comparestring
definition.widgets[].drillboolean or null
definition.widgets[].idrequiredstring
definition.widgets[].kindrequiredstring
definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

definition.widgets[].layout.hrequiredinteger
definition.widgets[].layout.wrequiredinteger
definition.widgets[].layout.xrequiredinteger
definition.widgets[].layout.yrequiredinteger
definition.widgets[].mineboolean
definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

definition.widgets[].range.fromstring
definition.widgets[].range.presetrequiredstring
definition.widgets[].range.tostring
definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

definition.widgets[].source.asstring, one of count, list
definition.widgets[].source.bucketBucket

Bucket mirrors reporting.Bucket without the time zone, which comes from the request (D3).

definition.widgets[].source.columnsarray of string
definition.widgets[].source.datasetstring
definition.widgets[].source.filtersarray of Filter
definition.widgets[].source.groupBystring
definition.widgets[].source.keystring
definition.widgets[].source.limitinteger
definition.widgets[].source.metricMetric

Metric mirrors reporting.Metric with JSON tags (D15).

definition.widgets[].source.paramsobject
definition.widgets[].source.queryobject
definition.widgets[].source.sortarray of SortKey
definition.widgets[].source.surfacestring
definition.widgets[].source.typerequiredstring
definition.widgets[].source.viewIdstring
definition.widgets[].source.viewNamestring
definition.widgets[].targetnumber or null

double.

definition.widgets[].thresholdsThresholds

Thresholds (D4).

definition.widgets[].thresholds.badrequirednumber

double.

definition.widgets[].thresholds.basisrequiredstring
definition.widgets[].thresholds.directionrequiredstring
definition.widgets[].thresholds.warnrequirednumber

double.

definition.widgets[].titlerequiredstring
facerequiredstring
namerequiredstring
rolesarray of string
sharingrequiredstring
StatusBodyDescription
200application/json, DetailSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsSharing dashboards and changing shared ones needs the Dashboards permission.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
builtinrequiredboolean
canEditrequiredboolean
definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

definition.range.fromstring
definition.range.presetrequiredstring
definition.range.tostring
definition.versionrequiredinteger
definition.widgetsrequiredarray of Widget
definition.widgets[].chartstring
definition.widgets[].comparestring
definition.widgets[].drillboolean or null
definition.widgets[].idrequiredstring
definition.widgets[].kindrequiredstring
definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

definition.widgets[].layout.hrequiredinteger
definition.widgets[].layout.wrequiredinteger
definition.widgets[].layout.xrequiredinteger
definition.widgets[].layout.yrequiredinteger
definition.widgets[].mineboolean
definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

definition.widgets[].range.fromstring
definition.widgets[].range.presetrequiredstring
definition.widgets[].range.tostring
definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

definition.widgets[].source.asstring, one of count, list
definition.widgets[].source.bucketBucket

Bucket mirrors reporting.Bucket without the time zone, which comes from the request (D3).

definition.widgets[].source.columnsarray of string
definition.widgets[].source.datasetstring
definition.widgets[].source.filtersarray of Filter
definition.widgets[].source.groupBystring
definition.widgets[].source.keystring
definition.widgets[].source.limitinteger
definition.widgets[].source.metricMetric

Metric mirrors reporting.Metric with JSON tags (D15).

definition.widgets[].source.paramsobject
definition.widgets[].source.queryobject
definition.widgets[].source.sortarray of SortKey
definition.widgets[].source.surfacestring
definition.widgets[].source.typerequiredstring
definition.widgets[].source.viewIdstring
definition.widgets[].source.viewNamestring
definition.widgets[].targetnumber or null

double.

definition.widgets[].thresholdsThresholds

Thresholds (D4).

definition.widgets[].thresholds.badrequirednumber

double.

definition.widgets[].thresholds.basisrequiredstring
definition.widgets[].thresholds.directionrequiredstring
definition.widgets[].thresholds.warnrequirednumber

double.

definition.widgets[].titlerequiredstring
facerequiredstring
idrequiredstring
minerequiredboolean
namerequiredstring
ownerrequiredOwnerRef

OwnerRef names a dashboard's owner.

owner.namerequiredstring
rolesrequiredarray of RoleRef
roles[].idrequiredstring
roles[].namerequiredstring
rowVersionrequiredinteger

int64.

sharingrequiredstring
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/console/dashboards' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"definition": {
"range": {
"from": "string",
"preset": "string",
"to": "string"
},
"version": 0,
"widgets": [
{
"chart": "string",
"compare": "string",
"drill": false,
"id": "string",
"kind": "string",
"layout": {
"h": 0,
"w": 0,
"x": 0,
"y": 0
},
"mine": false,
"range": {
"from": "string",
"preset": "string",
"to": "string"
},
"source": {
"as": "count",
"bucket": {
"column": null,
"unit": null
},
"columns": [],
"dataset": "string",
"filters": [],
"groupBy": "string",
"key": "string",
"limit": 0,
"metric": {
"column": null,
"op": null
},
"params": {
"key": null
},
"query": {
"key": null
},
"sort": [],
"surface": "string",
"type": "string",
"viewId": "string",
"viewName": "string"
},
"target": 0,
"thresholds": {
"bad": 0,
"basis": "string",
"direction": "string",
"warn": 0
},
"title": "string"
}
]
},
"face": "string",
"name": "string",
"roles": [
"string"
],
"sharing": "string"
}'

GETshared facehosteditmspremoteIdempotent

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

Source: [object Object]

getDashboard reads one dashboard (or builtin) with its definition.

NameInTypeRequiredDescription
idpathstringYes
clientIdquerystringNo
facequerystringNo
StatusBodyDescription
200application/json, DetailSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
404application/problem+json, ProblemDetailsNo dashboard matches that id.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
builtinrequiredboolean
canEditrequiredboolean
definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

definition.range.fromstring
definition.range.presetrequiredstring
definition.range.tostring
definition.versionrequiredinteger
definition.widgetsrequiredarray of Widget
definition.widgets[].chartstring
definition.widgets[].comparestring
definition.widgets[].drillboolean or null
definition.widgets[].idrequiredstring
definition.widgets[].kindrequiredstring
definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

definition.widgets[].layout.hrequiredinteger
definition.widgets[].layout.wrequiredinteger
definition.widgets[].layout.xrequiredinteger
definition.widgets[].layout.yrequiredinteger
definition.widgets[].mineboolean
definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

definition.widgets[].range.fromstring
definition.widgets[].range.presetrequiredstring
definition.widgets[].range.tostring
definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

definition.widgets[].source.asstring, one of count, list
definition.widgets[].source.bucketBucket

Bucket mirrors reporting.Bucket without the time zone, which comes from the request (D3).

definition.widgets[].source.columnsarray of string
definition.widgets[].source.datasetstring
definition.widgets[].source.filtersarray of Filter
definition.widgets[].source.groupBystring
definition.widgets[].source.keystring
definition.widgets[].source.limitinteger
definition.widgets[].source.metricMetric

Metric mirrors reporting.Metric with JSON tags (D15).

definition.widgets[].source.paramsobject
definition.widgets[].source.queryobject
definition.widgets[].source.sortarray of SortKey
definition.widgets[].source.surfacestring
definition.widgets[].source.typerequiredstring
definition.widgets[].source.viewIdstring
definition.widgets[].source.viewNamestring
definition.widgets[].targetnumber or null

double.

definition.widgets[].thresholdsThresholds

Thresholds (D4).

definition.widgets[].thresholds.badrequirednumber

double.

definition.widgets[].thresholds.basisrequiredstring
definition.widgets[].thresholds.directionrequiredstring
definition.widgets[].thresholds.warnrequirednumber

double.

definition.widgets[].titlerequiredstring
facerequiredstring
idrequiredstring
minerequiredboolean
namerequiredstring
ownerrequiredOwnerRef

OwnerRef names a dashboard's owner.

owner.namerequiredstring
rolesrequiredarray of RoleRef
roles[].idrequiredstring
roles[].namerequiredstring
rowVersionrequiredinteger

int64.

sharingrequiredstring
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/console/dashboards/<id>?clientId=<clientId>&face=<face>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUTshared facehosteditmspremoteIdempotentNot 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-status

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]

updateDashboard replaces a dashboard’s name, sharing, roles and definition.

If-Match carries the rowVersion it was read at; a stale one is 409.

NameInTypeRequiredDescription
idpathstringYes

Required, sent as application/json.

FieldTypeDescription
definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

definition.range.fromstring
definition.range.presetrequiredstring
definition.range.tostring
definition.versionrequiredinteger
definition.widgetsrequiredarray of Widget
definition.widgets[].chartstring
definition.widgets[].comparestring
definition.widgets[].drillboolean or null
definition.widgets[].idrequiredstring
definition.widgets[].kindrequiredstring
definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

definition.widgets[].layout.hrequiredinteger
definition.widgets[].layout.wrequiredinteger
definition.widgets[].layout.xrequiredinteger
definition.widgets[].layout.yrequiredinteger
definition.widgets[].mineboolean
definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

definition.widgets[].range.fromstring
definition.widgets[].range.presetrequiredstring
definition.widgets[].range.tostring
definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

definition.widgets[].source.asstring, one of count, list
definition.widgets[].source.bucketBucket

Bucket mirrors reporting.Bucket without the time zone, which comes from the request (D3).

definition.widgets[].source.columnsarray of string
definition.widgets[].source.datasetstring
definition.widgets[].source.filtersarray of Filter
definition.widgets[].source.groupBystring
definition.widgets[].source.keystring
definition.widgets[].source.limitinteger
definition.widgets[].source.metricMetric

Metric mirrors reporting.Metric with JSON tags (D15).

definition.widgets[].source.paramsobject
definition.widgets[].source.queryobject
definition.widgets[].source.sortarray of SortKey
definition.widgets[].source.surfacestring
definition.widgets[].source.typerequiredstring
definition.widgets[].source.viewIdstring
definition.widgets[].source.viewNamestring
definition.widgets[].targetnumber or null

double.

definition.widgets[].thresholdsThresholds

Thresholds (D4).

definition.widgets[].thresholds.badrequirednumber

double.

definition.widgets[].thresholds.basisrequiredstring
definition.widgets[].thresholds.directionrequiredstring
definition.widgets[].thresholds.warnrequirednumber

double.

definition.widgets[].titlerequiredstring
facerequiredstring
namerequiredstring
rolesarray of string
sharingrequiredstring
StatusBodyDescription
200application/json, DetailSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsSharing dashboards and changing shared ones needs the Dashboards permission.
404application/problem+json, ProblemDetailsNo dashboard matches that id.
405application/problem+json, ProblemDetailsBuilt-in dashboards cannot be changed. Copy it to make your own.
409application/problem+json, ProblemDetailsSomeone else changed this dashboard. Reload it and try again.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
builtinrequiredboolean
canEditrequiredboolean
definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

definition.range.fromstring
definition.range.presetrequiredstring
definition.range.tostring
definition.versionrequiredinteger
definition.widgetsrequiredarray of Widget
definition.widgets[].chartstring
definition.widgets[].comparestring
definition.widgets[].drillboolean or null
definition.widgets[].idrequiredstring
definition.widgets[].kindrequiredstring
definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

definition.widgets[].layout.hrequiredinteger
definition.widgets[].layout.wrequiredinteger
definition.widgets[].layout.xrequiredinteger
definition.widgets[].layout.yrequiredinteger
definition.widgets[].mineboolean
definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

definition.widgets[].range.fromstring
definition.widgets[].range.presetrequiredstring
definition.widgets[].range.tostring
definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

definition.widgets[].source.asstring, one of count, list
definition.widgets[].source.bucketBucket

Bucket mirrors reporting.Bucket without the time zone, which comes from the request (D3).

definition.widgets[].source.columnsarray of string
definition.widgets[].source.datasetstring
definition.widgets[].source.filtersarray of Filter
definition.widgets[].source.groupBystring
definition.widgets[].source.keystring
definition.widgets[].source.limitinteger
definition.widgets[].source.metricMetric

Metric mirrors reporting.Metric with JSON tags (D15).

definition.widgets[].source.paramsobject
definition.widgets[].source.queryobject
definition.widgets[].source.sortarray of SortKey
definition.widgets[].source.surfacestring
definition.widgets[].source.typerequiredstring
definition.widgets[].source.viewIdstring
definition.widgets[].source.viewNamestring
definition.widgets[].targetnumber or null

double.

definition.widgets[].thresholdsThresholds

Thresholds (D4).

definition.widgets[].thresholds.badrequirednumber

double.

definition.widgets[].thresholds.basisrequiredstring
definition.widgets[].thresholds.directionrequiredstring
definition.widgets[].thresholds.warnrequirednumber

double.

definition.widgets[].titlerequiredstring
facerequiredstring
idrequiredstring
minerequiredboolean
namerequiredstring
ownerrequiredOwnerRef

OwnerRef names a dashboard's owner.

owner.namerequiredstring
rolesrequiredarray of RoleRef
roles[].idrequiredstring
roles[].namerequiredstring
rowVersionrequiredinteger

int64.

sharingrequiredstring
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 PUT 'https://depot.example.com/api/v1/console/dashboards/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"definition": {
"range": {
"from": "string",
"preset": "string",
"to": "string"
},
"version": 0,
"widgets": [
{
"chart": "string",
"compare": "string",
"drill": false,
"id": "string",
"kind": "string",
"layout": {
"h": 0,
"w": 0,
"x": 0,
"y": 0
},
"mine": false,
"range": {
"from": "string",
"preset": "string",
"to": "string"
},
"source": {
"as": "count",
"bucket": {
"column": null,
"unit": null
},
"columns": [],
"dataset": "string",
"filters": [],
"groupBy": "string",
"key": "string",
"limit": 0,
"metric": {
"column": null,
"op": null
},
"params": {
"key": null
},
"query": {
"key": null
},
"sort": [],
"surface": "string",
"type": "string",
"viewId": "string",
"viewName": "string"
},
"target": 0,
"thresholds": {
"bad": 0,
"basis": "string",
"direction": "string",
"warn": 0
},
"title": "string"
}
]
},
"face": "string",
"name": "string",
"roles": [
"string"
],
"sharing": "string"
}'

DELETEshared facehosteditmspremoteIdempotent

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

Source: [object Object]

deleteDashboard removes a dashboard (soft delete).

NameInTypeRequiredDescription
idpathstringYes
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsSharing dashboards and changing shared ones needs the Dashboards permission.
404application/problem+json, ProblemDetailsNo dashboard matches that id.
405application/problem+json, ProblemDetailsBuilt-in dashboards cannot be changed. Copy it to make your own.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.
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 DELETE 'https://depot.example.com/api/v1/console/dashboards/<id>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

POSTshared facehosteditmspremoteNot 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-status

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]

copyDashboard makes a private copy of a dashboard or builtin the caller can open, named “&lt;name> (copy)” unless a name is sent.

NameInTypeRequiredDescription
idpathstringYes
clientIdquerystringNo
facequerystringNo

Required, sent as application/json.

FieldTypeDescription
namestring
StatusBodyDescription
200application/json, DetailSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
404application/problem+json, ProblemDetailsNo dashboard matches that id.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
builtinrequiredboolean
canEditrequiredboolean
definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

definition.range.fromstring
definition.range.presetrequiredstring
definition.range.tostring
definition.versionrequiredinteger
definition.widgetsrequiredarray of Widget
definition.widgets[].chartstring
definition.widgets[].comparestring
definition.widgets[].drillboolean or null
definition.widgets[].idrequiredstring
definition.widgets[].kindrequiredstring
definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

definition.widgets[].layout.hrequiredinteger
definition.widgets[].layout.wrequiredinteger
definition.widgets[].layout.xrequiredinteger
definition.widgets[].layout.yrequiredinteger
definition.widgets[].mineboolean
definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

definition.widgets[].range.fromstring
definition.widgets[].range.presetrequiredstring
definition.widgets[].range.tostring
definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

definition.widgets[].source.asstring, one of count, list
definition.widgets[].source.bucketBucket

Bucket mirrors reporting.Bucket without the time zone, which comes from the request (D3).

definition.widgets[].source.columnsarray of string
definition.widgets[].source.datasetstring
definition.widgets[].source.filtersarray of Filter
definition.widgets[].source.groupBystring
definition.widgets[].source.keystring
definition.widgets[].source.limitinteger
definition.widgets[].source.metricMetric

Metric mirrors reporting.Metric with JSON tags (D15).

definition.widgets[].source.paramsobject
definition.widgets[].source.queryobject
definition.widgets[].source.sortarray of SortKey
definition.widgets[].source.surfacestring
definition.widgets[].source.typerequiredstring
definition.widgets[].source.viewIdstring
definition.widgets[].source.viewNamestring
definition.widgets[].targetnumber or null

double.

definition.widgets[].thresholdsThresholds

Thresholds (D4).

definition.widgets[].thresholds.badrequirednumber

double.

definition.widgets[].thresholds.basisrequiredstring
definition.widgets[].thresholds.directionrequiredstring
definition.widgets[].thresholds.warnrequirednumber

double.

definition.widgets[].titlerequiredstring
facerequiredstring
idrequiredstring
minerequiredboolean
namerequiredstring
ownerrequiredOwnerRef

OwnerRef names a dashboard's owner.

owner.namerequiredstring
rolesrequiredarray of RoleRef
roles[].idrequiredstring
roles[].namerequiredstring
rowVersionrequiredinteger

int64.

sharingrequiredstring
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/console/dashboards/<id>/copy?clientId=<clientId>&face=<face>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"name": "string"
}'

GETshared facehosteditmspremoteIdempotent

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

Source: [object Object]

dashboardData reads a dashboard’s widgets for the caller (D7).

NameInTypeRequiredDescription
idpathstringYes
clientIdquerystringNo
facequerystringNo
fromquerystringNo
rangequerystringNo
siteIdquerystringNo
toquerystringNo
tzquerystringNo
widgetsquerystringNo
StatusBodyDescription
200application/json, DataSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
404application/problem+json, ProblemDetailsNo dashboard matches that id.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
fleetEmptyboolean
generatedAtrequiredstring (date-time)
rangerequiredDataRange

DataRange is the resolved dashboard range.

range.fromrequiredstring (date-time)
range.torequiredstring (date-time)
scoperequiredDataScope

DataScope drives the "9 of 12 clients" banner.

scope.clientNamestring
scope.clientsrequiredinteger
scope.kindrequiredstring, one of client, practice
scope.unavailableClientsrequiredarray of string
widgetsrequiredobject
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/console/dashboards/<id>/data?clientId=<clientId>&face=<face>&from=<from>&range=<range>&siteId=<siteId>&to=<to>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETshared facehosteditmspremoteIdempotent

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

Source: [object Object]

dashboardCatalog lists what a widget can show on a face: the builtin widgets, the report datasets the caller may run, and the list surfaces a saved view can be pinned from.

NameInTypeRequiredDescription
clientIdquerystringNo
facequerystringNo
StatusBodyDescription
200application/json, CatalogSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
404application/problem+json, ProblemDetailsThere are no practice dashboards here.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
builtinsrequiredarray of CatalogBuiltin
builtins[].defaultTitlerequiredstring
builtins[].descriptionrequiredstring
builtins[].keyrequiredstring
builtins[].kindsrequiredarray of string
builtins[].permissionArearequiredstring
builtins[].rangeAppliesrequiredboolean
builtins[].supportsMinerequiredboolean
builtins[].titlerequiredstring
datasetsrequiredarray of CatalogDataset
datasets[].columnsrequiredarray of CatalogColumn
datasets[].columns[].keyrequiredstring
datasets[].columns[].titlerequiredstring
datasets[].columns[].typerequiredstring
datasets[].namerequiredstring
datasets[].timeColumnsrequiredarray of string
datasets[].titlerequiredstring
viewsrequiredarray of CatalogView
views[].surfacerequiredstring
views[].titlerequiredstring
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/console/dashboards/catalog?clientId=<clientId>&face=<face>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

GETdashboard:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

getDefaults reads the practice, role, client and portal defaults for a face.

NameInTypeRequiredDescription
clientIdquerystringNo
facequerystringNo
StatusBodyDescription
200application/json, DefaultsSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold dashboard:manage.
404application/problem+json, ProblemDetailsThere are no practice dashboards here.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
clientsrequiredarray of ClientDefault
clients[].clientIdrequiredstring
clients[].targetTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

clients[].target.builtinKeystring
clients[].target.dashboardIdstring
facerequiredstring
portalrequiredarray of ClientDefault
portal[].clientIdrequiredstring
portal[].targetTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

portal[].target.builtinKeystring
portal[].target.dashboardIdstring
practiceTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

practice.builtinKeystring
practice.dashboardIdstring
rolesrequiredarray of RoleDefault
roles[].roleIdrequiredstring
roles[].targetTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

roles[].target.builtinKeystring
roles[].target.dashboardIdstring
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/console/dashboards/defaults?clientId=<clientId>&face=<face>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-b 'outpost_console=<console-session>'

PUTdashboard:manageshared facehosteditmspremoteIdempotent

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

Source: [object Object]

setDefaults changes the practice, role, client and portal defaults on a face (L26): practice and roles are replaced only when their key is sent; each clients and portal entry is an upsert for that client, and a null target clears it; clients not named are untouched.

Required, sent as application/json.

The body is object.

StatusBodyDescription
200application/json, DefaultsSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
403application/problem+json, ProblemDetailsThe identity does not hold dashboard:manage.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
clientsrequiredarray of ClientDefault
clients[].clientIdrequiredstring
clients[].targetTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

clients[].target.builtinKeystring
clients[].target.dashboardIdstring
facerequiredstring
portalrequiredarray of ClientDefault
portal[].clientIdrequiredstring
portal[].targetTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

portal[].target.builtinKeystring
portal[].target.dashboardIdstring
practiceTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

practice.builtinKeystring
practice.dashboardIdstring
rolesrequiredarray of RoleDefault
roles[].roleIdrequiredstring
roles[].targetTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

roles[].target.builtinKeystring
roles[].target.dashboardIdstring
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 PUT 'https://depot.example.com/api/v1/console/dashboards/defaults' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"key": "string"
}'

PUTshared facehosteditmspremoteIdempotent

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

Source: [object Object]

setMyDefault sets or clears the caller’s own default for a face.

Required, sent as application/json.

FieldTypeDescription
facerequiredstring
targetTarget

Target is a pick target: a saved dashboard or a builtin key, exactly one.

target.builtinKeystring
target.dashboardIdstring
StatusBodyDescription
204NoneSuccess, with no body.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.
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 PUT 'https://depot.example.com/api/v1/console/dashboards/my-default' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"face": "string",
"target": {
"builtinKey": "string",
"dashboardId": "string"
}
}'

POSTshared facehosteditmspremote

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

Source: [object Object]

previewDashboard reads an unsaved definition, for the editor.

NameInTypeRequiredDescription
clientIdquerystringNo
fromquerystringNo
rangequerystringNo
siteIdquerystringNo
toquerystringNo
tzquerystringNo
widgetsquerystringNo

Required, sent as application/json.

FieldTypeDescription
definitionrequiredDefinition

Definition is the stored dashboard ("Dashboard"."DefinitionJson").

definition.rangerequiredRange

Range is a preset, or custom with RFC3339 From and To.

definition.range.fromstring
definition.range.presetrequiredstring
definition.range.tostring
definition.versionrequiredinteger
definition.widgetsrequiredarray of Widget
definition.widgets[].chartstring
definition.widgets[].comparestring
definition.widgets[].drillboolean or null
definition.widgets[].idrequiredstring
definition.widgets[].kindrequiredstring
definition.widgets[].layoutrequiredLayout

Layout is library-neutral, on 12 columns (D16).

definition.widgets[].layout.hrequiredinteger
definition.widgets[].layout.wrequiredinteger
definition.widgets[].layout.xrequiredinteger
definition.widgets[].layout.yrequiredinteger
definition.widgets[].mineboolean
definition.widgets[].rangeRange

Range is a preset, or custom with RFC3339 From and To.

definition.widgets[].range.fromstring
definition.widgets[].range.presetrequiredstring
definition.widgets[].range.tostring
definition.widgets[].sourcerequiredSource

Source is one struct with a Type discriminator (D2).

definition.widgets[].source.asstring, one of count, list
definition.widgets[].source.bucketBucket

Bucket mirrors reporting.Bucket without the time zone, which comes from the request (D3).

definition.widgets[].source.columnsarray of string
definition.widgets[].source.datasetstring
definition.widgets[].source.filtersarray of Filter
definition.widgets[].source.groupBystring
definition.widgets[].source.keystring
definition.widgets[].source.limitinteger
definition.widgets[].source.metricMetric

Metric mirrors reporting.Metric with JSON tags (D15).

definition.widgets[].source.paramsobject
definition.widgets[].source.queryobject
definition.widgets[].source.sortarray of SortKey
definition.widgets[].source.surfacestring
definition.widgets[].source.typerequiredstring
definition.widgets[].source.viewIdstring
definition.widgets[].source.viewNamestring
definition.widgets[].targetnumber or null

double.

definition.widgets[].thresholdsThresholds

Thresholds (D4).

definition.widgets[].thresholds.badrequirednumber

double.

definition.widgets[].thresholds.basisrequiredstring
definition.widgets[].thresholds.directionrequiredstring
definition.widgets[].thresholds.warnrequirednumber

double.

definition.widgets[].titlerequiredstring
facerequiredstring
StatusBodyDescription
200application/json, DataSuccess.
400application/problem+json, ProblemDetailsOne or more validation errors occurred.
401application/problem+json, ProblemDetailsAuthentication is required.
404application/problem+json, ProblemDetailsThere are no practice dashboards here.
500application/problem+json, ProblemDetailsCould not evaluate permissions.
503application/problem+json, ProblemDetailsDashboards are not available on this server.

200 response body

FieldTypeDescription
fleetEmptyboolean
generatedAtrequiredstring (date-time)
rangerequiredDataRange

DataRange is the resolved dashboard range.

range.fromrequiredstring (date-time)
range.torequiredstring (date-time)
scoperequiredDataScope

DataScope drives the "9 of 12 clients" banner.

scope.clientNamestring
scope.clientsrequiredinteger
scope.kindrequiredstring, one of client, practice
scope.unavailableClientsrequiredarray of string
widgetsrequiredobject
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/console/dashboards/preview?clientId=<clientId>&from=<from>&range=<range>&siteId=<siteId>&to=<to>&tz=<tz>' \
-H 'X-CSRF-Token: <csrf-token>' \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-b 'outpost_console=<console-session>' \
--data '{
"definition": {
"range": {
"from": "string",
"preset": "string",
"to": "string"
},
"version": 0,
"widgets": [
{
"chart": "string",
"compare": "string",
"drill": false,
"id": "string",
"kind": "string",
"layout": {
"h": 0,
"w": 0,
"x": 0,
"y": 0
},
"mine": false,
"range": {
"from": "string",
"preset": "string",
"to": "string"
},
"source": {
"as": "count",
"bucket": {
"column": null,
"unit": null
},
"columns": [],
"dataset": "string",
"filters": [],
"groupBy": "string",
"key": "string",
"limit": 0,
"metric": {
"column": null,
"op": null
},
"params": {
"key": null
},
"query": {
"key": null
},
"sort": [],
"surface": "string",
"type": "string",
"viewId": "string",
"viewName": "string"
},
"target": 0,
"thresholds": {
"bad": 0,
"basis": "string",
"direction": "string",
"warn": 0
},
"title": "string"
}
]
},
"face": "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.