ObjectStackObjectStack

Dashboard

Dashboard protocol schemas

Color variant for dashboard widgets (e.g., KPI cards).

Source: packages/spec/src/ui/dashboard.zod.ts

TypeScript Usage

import { Dashboard, DashboardHeader, DashboardHeaderAction, DashboardWidget, GlobalFilter, GlobalFilterOptionsFrom, WidgetActionType, WidgetColorVariant, WidgetMeasure } from '@objectstack/spec/ui';
import type { Dashboard, DashboardHeader, DashboardHeaderAction, DashboardWidget, GlobalFilter, GlobalFilterOptionsFrom, WidgetActionType, WidgetColorVariant, WidgetMeasure } from '@objectstack/spec/ui';

// Validate data
const result = Dashboard.parse(data);

Dashboard

Properties

PropertyTypeRequiredDescription
namestringDashboard unique name
labelstringDashboard label
descriptionstringoptionalDashboard description
headerObjectoptionalDashboard header configuration
widgetsObject[]Widgets to display
columnsintegeroptionalNumber of grid columns (default 12)
gapintegeroptionalGrid gap in Tailwind spacing units
refreshIntervalnumberoptionalAuto-refresh interval in seconds
dateRangeObjectoptionalGlobal dashboard date range filter configuration
globalFiltersObject[]optionalGlobal filters that apply to all widgets in the dashboard
ariaObjectoptionalARIA accessibility attributes
performanceObjectoptionalPerformance optimization settings
protectionObjectoptionalPackage author protection block — lock policy for this dashboard.
_lockEnum<'none' | 'no-overlay' | 'no-delete' | 'full'>optionalItem-level lock — controls overlay & delete (ADR-0010).
_lockReasonstringoptionalHuman-readable reason shown when a write is refused by _lock.
_lockSourceEnum<'artifact' | 'package' | 'env-forced'>optionalLayer that set _lock (artifact
_provenanceEnum<'package' | 'org' | 'env-forced'>optionalOrigin of the item (package
_packageIdstringoptionalOwning package machine id.
_packageVersionstringoptionalOwning package version.
_lockDocsUrlstringoptionalOptional documentation link surfaced next to _lockReason.

DashboardHeader

Dashboard header configuration

Properties

PropertyTypeRequiredDescription
showTitlebooleanShow dashboard title in header
showDescriptionbooleanShow dashboard description in header
actionsObject[]optionalHeader action buttons

DashboardHeaderAction

Dashboard header action

Properties

PropertyTypeRequiredDescription
labelstringAction button label
actionUrlstringURL or target for the action
actionTypeEnum<'script' | 'url' | 'modal' | 'flow' | 'api'>optionalType of action
iconstringoptionalIcon identifier for the action button

DashboardWidget

Properties

PropertyTypeRequiredDescription
idstringUnique widget identifier (snake_case)
titlestringoptionalWidget title
descriptionstringoptionalWidget description text below the header
typeEnum<'bar' | 'horizontal-bar' | 'column' | 'grouped-bar' | 'stacked-bar' | 'bi-polar-bar' | 'line' | 'area' | 'stacked-area' | 'step-line' | 'spline' | 'pie' | 'donut' | 'funnel' | 'pyramid' | 'scatter' | 'bubble' | 'treemap' | 'sankey' | 'gauge' | 'solid-gauge' | 'metric' | 'kpi' | 'bullet' | 'radar' | 'table' | 'pivot'>Visualization type
chartConfigObjectoptionalChart visualization configuration
colorVariantEnum<'default' | 'blue' | 'teal' | 'orange' | 'purple' | 'success' | 'warning' | 'danger'>optionalWidget color variant for theming
requiresObjectstringoptionalHide the widget unless the named object is registered
requiresServicestringoptionalHide the widget unless the named kernel service is registered
actionUrlstringoptionalURL or target for the widget action button
actionTypeEnum<'script' | 'url' | 'modal' | 'flow' | 'api'>optionalType of action for the widget action button
actionIconstringoptionalIcon identifier for the widget action button
objectstringoptionalData source object name
filter[__schema0](./__schema0)optionalData filter criteria
compareTostring | string | ObjectoptionalPeriod-over-period comparison window
categoryFieldstringoptionalField for grouping (X-Axis)
categoryGranularityEnum<'day' | 'week' | 'month' | 'quarter' | 'year'>optionalBucket categoryField date values into day/week/month/quarter/year periods
valueFieldstringoptionalField for values (Y-Axis)
aggregateEnum<'count' | 'sum' | 'avg' | 'min' | 'max'>Aggregate function
measuresObject[]optionalMultiple measures for pivot/matrix analysis
layoutObjectGrid layout position
optionsanyoptionalWidget specific configuration
responsiveObjectoptionalResponsive layout configuration
ariaObjectoptionalARIA accessibility attributes

GlobalFilter

Properties

PropertyTypeRequiredDescription
fieldstringField name to filter on
labelstringoptionalDisplay label for the filter
typeEnum<'text' | 'select' | 'date' | 'number' | 'lookup'>optionalFilter input type
optionsObject[]optionalStatic filter options
optionsFromObjectoptionalDynamic filter options from object
defaultValuestring | number | booleanoptionalDefault filter value
scopeEnum<'dashboard' | 'widget'>Filter application scope
targetWidgetsstring[]optionalWidget IDs to apply this filter to

GlobalFilterOptionsFrom

Dynamic filter options from object

Properties

PropertyTypeRequiredDescription
objectstringSource object name
valueFieldstringField to use as option value
labelFieldstringField to use as option label
filter[__schema0](./__schema0)optionalFilter to apply to source object

WidgetActionType

Widget action type

Allowed Values

  • script
  • url
  • modal
  • flow
  • api

WidgetColorVariant

Widget color variant

Allowed Values

  • default
  • blue
  • teal
  • orange
  • purple
  • success
  • warning
  • danger

WidgetMeasure

Widget measure definition

Properties

PropertyTypeRequiredDescription
valueFieldstringField to aggregate
aggregateEnum<'count' | 'sum' | 'avg' | 'min' | 'max'>Aggregate function
labelstringoptionalMeasure display label
formatstringoptionalNumber format string

On this page