Handbook - Guides

Dashboards

Use /dashboards to view, create, edit, and manage reusable project dashboards.

On this page

Use /dashboards to view, create, edit, and manage reusable project dashboards.

Dashboards are project-scoped control-plane configuration. They are not telemetry records and they do not store secrets.

Dashboard Modes

ModeRoute shapePurpose
Overview/dashboardsSearch pinned, built-in, personal, and project dashboards.
Builder/dashboards?dashboard=<id>View or edit one dashboard canvas.
Draft/dashboards with new draft stateCreate a dashboard before save.

Built-in dashboards are read-only. Editing a built-in dashboard creates an unsaved personal or project draft.

Widget Types

Widget kindBacking operation
metric_timeseriesQuery.metricSeries
metric_statQuery.metricSeries
metric_tableQuery.metricSeries
metric_richQuery.richMetricSeries
log_tableQuery.logs
trace_tableQuery.traces
live_trace_tableSubscription.liveTraces

Layout

Dashboard widgets use a persisted 12-column grid:

FieldMeaning
xColumn start, 0..11.
yRow start, 0 or greater.
wWidth, 1..12.
hHeight, 1..12.
minWMinimum width, 1..12.
minHMinimum height, 1..12.

Move and resize behavior is local draft state until Mutation.saveDashboard. Compaction must leave no overlaps and preserve deterministic widget order.

Rich Metric Widgets

Rich metric widgets use typed query rows and typed formula expressions. They are not SQL, SurrealQL, JavaScript, or arbitrary JSON.

query PreviewRichMetric($input: RichMetricSeriesInput!) {
  richMetricSeries(input: $input) {
    interval
    series {
      id
      label
      sourceId
      unit
      points {
        timestamp
        value
      }
    }
    warnings {
      code
      message
      field
    }
  }
}

Storage-read owns timestamp alignment, formula evaluation, result caps, warnings, and chart-ready series.

Save A Dashboard

mutation SaveDashboard($input: SaveDashboardInput!) {
  saveDashboard(input: $input) {
    id
    version
    widgets {
      id
      kind
    }
  }
}

Updates require the current version; stale versions fail and do not overwrite newer changes.

What Not To Store

Dashboard definitions must not contain:

  • bearer tokens or API keys;
  • session cookies;
  • SurrealDB credentials;
  • provider secrets;
  • executable code;
  • raw SQL or SurrealQL;
  • arbitrary JSON widget configuration;
  • external embeds.

Next Step

Explore raw metric data first with Metrics, then save dashboard views when the query is useful.

Last updated .