Skip to main content

BackfillFromRtEntity@1

Node BackfillFromRtEntity@1 fills in missing attributes on a list of EntityUpdateInfo<RtEntity> items by reading their persistent counterparts from MongoDB. The target archive's column spec drives the schema — every column path that is not yet populated on an update item is loaded from the matching RtEntity (looked up by the item's own RtId).

Typical placement: immediately before SaveStreamDataInArchive@1 in event-sourced pipelines (e.g. Loxone state polling, MQTT topic streams) where each upstream event only carries one attribute. Without backfill, those rows hit any Required/NOT NULL columns on the per-archive CrateDB table and the insert fails.

Adapter Prerequisites

Node Configuration

For the path field, see Overview.

transformations:
- type: BackfillFromRtEntity@1
path: $._updateItems # JSONPath to the List<EntityUpdateInfo<RtEntity>>
archiveRtId: 65d5c447b420da3fb12381bc # Runtime id of the target CkArchive — its Columns drive the backfill

Behaviour

  • For each update item: only attributes named by the archive's column spec and not yet set on the in-flight update are loaded from MongoDB. Already-populated values are never overwritten.
  • Multiple update items pointing at the same RtId share a single MongoDB lookup (per-call cache).
  • If the archive has no user columns (only the standard time-series columns), the node is a no-op pass-through.
  • If the persistent entity does not exist, the update is left as-is and the pipeline continues.
  • Throws InvalidOperationException when archiveRtId is missing or the archive cannot be resolved in the current tenant.