AggregateStreamDataNodeConfiguration
Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Extract
Configuration for the node that condenses archive columns into key figures over a time range —
the sum of a month's energy, the maximum data quality in that month. Sibling of
GetStreamData@1, which returns the rows themselves.
public record AggregateStreamDataNodeConfiguration : TargetPathNodeConfiguration, INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IEquatable<AggregateStreamDataNodeConfiguration>
Inheritance Object → NodeConfiguration → TargetPathNodeConfiguration → AggregateStreamDataNodeConfiguration
Implements INodeConfiguration, IEquatable<NodeConfiguration>, ITargetPathNodeConfiguration, IEquatable<TargetPathNodeConfiguration>, IEquatable<AggregateStreamDataNodeConfiguration>
Properties
ArchiveRtId
Runtime id of the archive to read from. The archive must be activated.
public OctoObjectId ArchiveRtId { get; set; }
Property Value
OctoObjectId
Aggregations
The key figures to compute — at least one. The same column may appear several times with different functions.
public ICollection<AggregationColumnDto> Aggregations { get; set; }
Property Value
ICollection<AggregationColumnDto>
GroupBy
Columns to group by, e.g. "rtId" for one row per source entity. Leave empty for a single row covering everything the filters select. Names follow the result vocabulary, like AggregateStreamDataNodeConfiguration.FieldFilters.
public ICollection<string> GroupBy { get; set; }
Property Value
WellKnownNames
Restricts the aggregation to rows whose source entity carries one of these well-known names. A single name is matched with Equals, several with In.
public ICollection<string> WellKnownNames { get; set; }
Property Value
WellKnownNamesPath
Optional JSONPath to read the well-known names from the pipeline data instead of configuring them. Accepts a single value, an array, or a multi-match path. AggregateStreamDataNodeConfiguration.WellKnownNames takes precedence; a path resolving to nothing leaves the filter unset and logs a warning.
public string WellKnownNamesPath { get; set; }
Property Value
RtIds
Restricts the aggregation to these source entities. Runtime ids as strings — the same form the pipeline data carries them in.
public ICollection<string> RtIds { get; set; }
Property Value
RtIdsPath
Optional JSONPath to read the source entity ids from the pipeline data. Same semantics as AggregateStreamDataNodeConfiguration.WellKnownNamesPath; AggregateStreamDataNodeConfiguration.RtIds takes precedence.
public string RtIdsPath { get; set; }
Property Value
FieldFilters
Additional filters on the archive's columns, combined with AND. Names follow the result vocabulary: "Timestamp", "WindowStart" / "WindowEnd" on time-range and rollup archives, "WellKnownName", or any column the archive declares. An unknown name fails the node rather than being ignored — an ignored filter would widen the result and inflate the figures.
public ICollection<FieldFilterWithPathDto> FieldFilters { get; set; }
Property Value
ICollection<FieldFilterWithPathDto>
From
Start of the aggregated time range (UTC). Leaving it unset aggregates from the beginning of the archive. A value written without a time-zone offset ("2026-07-01T00:00:00") is read as UTC, not as the adapter host's local time.
public Nullable<DateTime> From { get; set; }
Property Value
FromPath
Optional JSONPath to read the start of the range from the pipeline data, for ranges computed upstream instead of configured. AggregateStreamDataNodeConfiguration.From takes precedence. A path resolving to nothing leaves the boundary open and logs a warning; a present but non-date value fails the node.
public string FromPath { get; set; }
Property Value
To
End of the aggregated time range (UTC). Leaving it unset aggregates to the end of the archive. Same UTC contract as AggregateStreamDataNodeConfiguration.From.
public Nullable<DateTime> To { get; set; }
Property Value
ToPath
Optional JSONPath to read the end of the range from the pipeline data. Same semantics as AggregateStreamDataNodeConfiguration.FromPath; AggregateStreamDataNodeConfiguration.To takes precedence.
public string ToPath { get; set; }
Property Value
RequireGapFree
Only aggregate when every source entity delivered data for the whole time range. An incomplete range would otherwise produce a figure that looks valid but is too low — a month missing two days still returns a sum. Requires a time range with both boundaries and an archive that stores row windows (time-range or rollup).
public bool RequireGapFree { get; set; }
Property Value
ExpectedInterval
The interval the completeness check counts in, e.g. "00:15:00" for quarter-hourly data. Must be greater than zero when set. Defaults to the period declared on the archive. Only used together with AggregateStreamDataNodeConfiguration.RequireGapFree.
public Nullable<TimeSpan> ExpectedInterval { get; set; }
Property Value
MaxGapScanRows
Safety cap on the rows the completeness check reads (default 200000). Exceeding it fails the node rather than judging completeness from a truncated scan. Must be greater than zero when set — use the largest possible integer to scan without a practical cap, not zero.
public Nullable<int> MaxGapScanRows { get; set; }
Property Value
TargetPath
public string TargetPath { get; set; }
Property Value
TargetValueWriteMode
public TargetValueWriteModes TargetValueWriteMode { get; set; }
Property Value
TargetValueWriteModes
TargetValueKind
public ValueKinds TargetValueKind { get; set; }
Property Value
ValueKinds
DocumentMode
public DocumentModes DocumentMode { get; set; }
Property Value
DocumentModes
Description
public string Description { get; set; }
Property Value
Constructors
AggregateStreamDataNodeConfiguration()
Caution
Constructors of types with required members are not supported in this version of your compiler.
public AggregateStreamDataNodeConfiguration()