Skip to Content
This documentation is provided with the HEAT environment and is relevant for this HEAT instance only.
RunnersCore UtilsHydrate Protobuf Node

hydrate-protobuf (Transform Node)

The Hydrate Protobuf node reads binary or JSON payloads from a HEAT capture bundle (e.g. from an upstream ingest or node that emits DataPacketBundle-style data), extracts a specific protobuf type from the bundle, and writes the hydrated payloads as JSON, CSV, or raw binary.

Use this node when you need to turn opaque protobuf blobs into a structured format (JSON/CSV) for downstream analytics, dashboards, or export. The node supports multiple inputs and can aggregate simulation frames into a single time-ordered stream when configured.


Configuration Schema

PropertyTypeRequiredDescription
targetProtoTypestringYesFully-qualified protobuf type inside the bundle. Supported values depend on the runner implementation (e.g. GazeComponent, FolderUploadData, HEAT.OpenDISModule.PDU).
outputFormat"json" | "csv" | "bin"YesEncoding for the output. json and csv produce human-readable or tabular data; bin writes the raw serialized protobuf bytes. Defaults to json.
aggregateSimulationFramesbooleanNoWhen targetProtoType is a simulation frame type, combine all frames into a single time-ordered stream. Defaults to true.
emitFrameIndexbooleanNoWhen aggregating frames, include a synthetic frame index column/field in CSV/JSON. Defaults to true.
enableUploadDeduplicationbooleanNoCompute an MD5 hash of the output and skip uploading if the same hash already exists for this node instance. Defaults to false.

Supported protobuf types

The runner implements decoders for a fixed set of types. Typical values include:

  • GazeComponent — Gaze and biometric sensor data; output is JSON with a gaze_component array.
  • FolderUploadData — Uploaded file/folder content; time-series CSV content is merged into a single artefact.
  • HEAT.OpenDISModule.PDU — OpenDIS PDU records; output can be JSON or CSV with PDU fields.

If you specify a targetProtoType not implemented by the runner, the node fails with an error. Check the runner’s supported types when authoring the configuration.


Example configuration

{ "targetProtoType": "HEAT.OpenDISModule.PDU", "outputFormat": "json", "aggregateSimulationFrames": true, "emitFrameIndex": true, "enableUploadDeduplication": false }

Inputs and outputs

  • Inputs: The node accepts multiple inputs (e.g. from a single upstream node that emits a list of payloads, or from several nodes). All payloads are collected and decoded according to targetProtoType.
  • Output: One or more artefacts are produced. For outputFormat json or csv, the content is UTF-8 encoded. For bin, the artefact is the raw serialized protobuf bytes.

Integration in a session template

  1. Place a hydrate-protobuf node after a node or ingest that produces HEAT capture bundles (or raw protobuf payloads the runner can decode).
  2. Set targetProtoType to the type you want to extract and outputFormat to the desired encoding.
  3. Connect downstream nodes (e.g. tabular-query, json-template, or dashboard nodes) to consume the hydrated output.