{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://api-evangelist.github.io/tableaux-de-bord/json-schema/tableaux-de-bord-dashboard-schema.json", "title": "Dashboard", "description": "Common schema for a dashboard definition as used across BI and monitoring tools", "type": "object", "properties": { "id": { "type": "integer", "description": "System-assigned unique identifier", "readOnly": true }, "uid": { "type": "string", "description": "Portable unique identifier (stable across environments)" }, "title": { "type": "string", "description": "Dashboard display name" }, "description": { "type": "string", "description": "Human-readable description of the dashboard purpose" }, "tags": { "type": "array", "description": "Labels for organizing and searching dashboards", "items": { "type": "string" } }, "panels": { "type": "array", "description": "Visualization panels in the dashboard", "items": { "type": "object", "properties": { "id": {"type": "integer"}, "title": {"type": "string"}, "type": { "type": "string", "description": "Panel visualization type", "examples": ["timeseries", "stat", "table", "gauge", "barchart", "piechart"] }, "datasource": { "type": "object", "properties": { "type": {"type": "string"}, "uid": {"type": "string"} } } } } }, "refresh": { "type": "string", "description": "Auto-refresh interval (e.g., '5s', '1m', '1h')" }, "time": { "type": "object", "description": "Default time range", "properties": { "from": {"type": "string", "example": "now-1h"}, "to": {"type": "string", "example": "now"} } }, "version": { "type": "integer", "description": "Dashboard revision number", "readOnly": true }, "folderId": { "type": "integer", "description": "Parent folder identifier" }, "created": { "type": "string", "format": "date-time", "description": "Creation timestamp", "readOnly": true }, "updated": { "type": "string", "format": "date-time", "description": "Last modification timestamp", "readOnly": true } }, "required": ["title"] }