Skip to Content
This documentation is provided with the HEAT environment and is relevant for this HEAT instance only.
RunnersDashboard UtilsDashboard V2 Node (Next)

dashboard-v2 (Aggregation Node)

The dashboard-v2 node consumes JSON from an upstream node and publishes a dashboard dimension using the Heat Next format for ui/dashboard.

Use this node when your upstream payload follows $heat-dataservice and your layout uses components.rows.


Configuration Schema

PropertyTypeRequiredDescription
dataSourceNamestringYesData source where the node output JSON is stored.
layoutConfigurationobjectYesV2 layout config with components.rows.
dashboardNamestringYesDisplay name for the created/updated dashboard dimension.
dashboardVersion"Next" | "Legacy"NoDashboard version written by node. Defaults to "Next".
autoCreateScenarioInstancebooleanNoIf true, creates a scenario instance when none exists. Defaults to false.
scenarioNamestringNoOptional name for an auto-created scenario instance.
scenarioFromIsoKeystringNoOptional dotted payload path used to infer scenario start timestamp.
scenarioToIsoKeystringNoOptional dotted payload path used to infer scenario end timestamp.

Input Payload Requirements

dashboard-v2 requires a top-level $heat-dataservice object and supports user attribution with dashboard_users.

{ "$heat-dataservice": { "version": "1.0", "groups": [{ "id": "performance", "name": "Performance Metrics" }], "channels": [ { "id": "cognitive-load", "name": "Mental Workload", "groupId": "performance", "shape": "series", "data": [{ "timeMs": 1000, "value": 0.75 }] } ] }, "dashboard_users": ["<external-user-guid-1>", "<external-user-guid-2>"] }

Required $heat-dataservice fields:

  • version (string)
  • groups (array)
  • channels (array)

Supported channel shapes:

  • series
  • timestamps
  • value
  • events
  • ranges

Runtime Behavior

At runtime, the processor:

  1. Fetches latest upstream JSON payload.
  2. Validates top-level $heat-dataservice presence and structure.
  3. Validates layoutConfiguration as v2 components.rows shape.
  4. Submits payload as node output.
  5. Resolves scenario instance from session metadata, existing instances, or optional auto-create config.
  6. Maps dashboard_users values to internal user IDs.
  7. Creates or updates a dimension with DashboardVersion="Next".

This node is idempotent. Re-running appends a new node output and updates/creates the dimension using current payload/config.


User Attribution and Existing Fallbacks

The attribution logic matches dashboard (v1):

  • Missing or non-array dashboard_users is treated as [] (with log error).
  • Unknown GUIDs are ignored (only matched users are attributed).
  • If no users are mapped and dimensions already exist, the first existing dimension is updated.
  • If exactly one user is mapped on dimension creation, metadata stores grouping.role -> dimension.id.

Example Workflow