Skip to content

List built-in dashboards (cross-tenant).

GET
/v1/projects/{projectId}/observability/dashboards/built-in
Code sample: Shell / cURL
curl --request GET \
--url https://stratum.example.com/v1/projects/example/observability/dashboards/built-in \
--header 'Authorization: Bearer <token>'

Returns the Stratum-shipped built-in dashboards visible to every project. Built-ins are immutable; customers clone via POST.../{did}/actions/clone to get an editable copy in their project.

projectId
required
string
/^p-[a-z0-9-]+$/

Built-in dashboards.

Media typeapplication/json
object
items
required
Array<object>
object
id
required
string
projectId

Empty for built-ins (cross-tenant).

string
name
required
string
displayName
required
string
description
string
body
required

dashboard document, rendered by stratum-ui, returned exactly as it was stored.

The control plane validates schemaVersion (must be 1), a top-level title, at least one widget, unique widgets[].id, a known widgets[].type, and datasource + query on data-fetching widgets. Everything else — description, tags, variables, layout, widgets[].position — is stored verbatim and not interpreted here. See CreateDashboardRequest.body for the full contract and a working example.

object
key
additional properties
any
origin
required
string
Allowed values: platform.builtin customer
state
required
string
Allowed values: active deleted
tags
object
key
additional properties
string
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
deletedAt
string format: date-time
nullable
createdBy
required
string
nextPageToken
string
isTruncated

True when the server had more rows than it returned. The response is a valid prefix of the result, not the whole of it.

Without this flag a client at the server’s row ceiling receives a full page and no nextPageToken, which means “this is the complete set” — so data it never saw would be indistinguishable from data that does not exist.

It does not imply a cursor exists. These queries do not all sort on a total order, so a resumable token cannot be minted for them yet. The remedy is to narrow the request (a filter, or a tighter scope), not to page.

boolean

Example

{
"items": [
{
"origin": "platform.builtin",
"state": "active"
}
]
}