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

dashboard (Aggregation Node)

The dashboard node consumes JSON from an upstream node and publishes a dashboard dimension using the legacy layout format.

Use this node when you need to convert filtered or transformed JSON into a dimension that the legacy dashboard UI can render.


Configuration Schema

PropertyTypeRequiredDescription
dataSourceNamestringYesData source where the node output JSON is stored.
layoutConfigurationarray<object>YesLegacy dashboard layout configuration.
dashboardNamestringYesDisplay name for the created/updated dashboard dimension.
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

To enable user attribution, include dashboard_users in the payload as an array of external user GUIDs.

{ "map": { "panelA": { "value": 42 } }, "dashboard_users": ["<external-user-guid-1>", "<external-user-guid-2>"] }
  • map: arbitrary dashboard component data.
  • dashboard_users: external IDs matched against session.get_users().externalId.

Runtime Behavior

At runtime, the processor:

  1. Fetches latest upstream JSON payload.
  2. Parses payload JSON and submits it as node output.
  3. Resolves scenario instance from session metadata, existing instances, or optional auto-create config.
  4. Maps dashboard_users values to internal user IDs.
  5. Creates or updates a dimension with DashboardVersion="Legacy".

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 following behavior already exists in the processor:

  • 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