Tiles

A tile is one panel on a dashboard. It binds a position, an optional execution, and a block.

Fields

FieldRequiredDescription
idyesUnique tile identifier.
positionyesLayout placement (see below).
blockyesThe renderer and its config. See Blocks.
titlenoCard header text.
cardnoPresentation: color, show_header, outline (see below).
loadnoWhen the tile executes (see Load behavior).
execnoHow the tile gets data. See Execution types.
querynoRequired when exec.type is athena.
depends_onnoTile ids that must be evaluated before this one.
triggered_bynoTile ids whose change re-runs this tile.
artifactnoPer-tile download control (see below).
controlsnoPer-tile UI controls, e.g. a run button.
tagsnoFree-form tags for search/filtering.

Position

json
"position": { "row": 0, "order": 1, "width": 9 }

Tiles are laid out on a 12-column grid. row groups tiles onto a row, order sorts within the row, and width is the Bootstrap column width (1–12).

Load behavior

load.mode controls when a tile runs:

ModeRuns when
load_onceOnce on first load (default).
alwaysOn every dashboard event.
manualOnly when explicitly triggered (e.g. a run button).
intervalOn a timer (load.interval_ms, or the deployment default).
inputWhen a triggered_by input changes.

load.indicator controls the loading visual: auto (default), none, loading, spinner, or status.

Note
depends_on is about ordering — make sure tile A is evaluated before tile B. triggered_by is about reactivity — re-run tile B when tile A changes. They are independent and can be combined.

Run and download controls

Two per-tile controls render in the tile's corner:

json
{
  "controls": { "run_button": true },
  "artifact": { "download": true, "label": "⤓" }
}

By default these appear automatically on tiles that execute — tiles with an exec (athena, lambda, cache) that are not input/control blocks — since those are the only tiles where re-running or downloading a result is meaningful. Static, markdown, and input tiles show no buttons. Set either field explicitly to override: true to force a button on, false to suppress it on an exec tile.

independent of the dashboard refresh. Best paired with load.mode: "manual".

one is available. See Async & artifacts.

Card presentation

card controls how the tile's card looks:

json
"card": { "color": "info", "outline": true, "show_header": true }
FieldDefaultDescription
colorlightA Bootstrap color token (primary, secondary, success, info, warning, danger, light, dark) or a hex value.
outlinefalseIf true, render the card as an outline — colored border and transparent fill — using color, instead of a solid fill.
show_headertrueSet false to suppress the header even when title is set.

outline pairs with color: {"color": "info", "outline": true} gives a tile with an info-colored border and no fill, useful for de-emphasizing a panel or grouping tiles visually without heavy blocks of color.