Dashboard JSON
A dashboard is a single JSON object. This page is the top-level contract; the authoritative machine-readable version is the published JSON Schema.
Top level
{
"name": "My dashboard",
"description": "Optional.",
"version": "1.0.0",
"settings": { "interval_enabled": false },
"layout": [ /* tiles */ ]
}| Field | Required | Description |
|---|---|---|
name | yes | Human-friendly title (1–140 chars). |
description | no | Optional summary. |
version | no | Content/schema version for future migrations. |
settings | no | Dashboard runtime settings (see below). |
layout | yes | Array of one or more tiles. |
Settings
"settings": { "interval_enabled": true, "interval_ms": 60000 }| Field | Description |
|---|---|
interval_enabled | If true, the dashboard may refresh tiles on an interval. |
interval_ms | Dashboard refresh interval in ms (5000–3600000). Required when interval_enabled is true. |
Tiles
Each entry in layout is a tile. The minimum is an id, a position, and a block:
{
"id": "notes",
"position": { "row": 0, "order": 0, "width": 12 },
"block": { "type": "markdown", "config": { "content": "# Hello" } }
}A tile may also carry title, card, load, exec, query, depends_on, triggered_by, tags, artifact, and controls. See Tiles for the full field reference.
Source values
Anywhere the schema allows it, a literal can be replaced with a dynamic reference resolved by the runtime:
{ "?source": "region_options" }StrataBI looks the id up in the source registry, loads the payload from S3, and substitutes the value before execution. See Inputs & parameters.
Validation
Dashboards validate against dashboard.schema.json (JSON Schema 2020-12). Invalid documents are rejected before they run — validate at author time to catch mistakes early.
Shaleio