Class FlowStep

Namespace
Kuestenlogik.Bowire.Flows
Assembly
Kuestenlogik.Bowire.Flows.dll

One step inside a Flow. Each step type uses different fields; common ones are first, type-specific ones tail off into Body / Service / etc. Lives separately from CapturedFlow (Proxy capture record) — the names collide intentionally, the domains don't.

public sealed class FlowStep
Inheritance
FlowStep
Inherited Members

Constructors

FlowStep()

public FlowStep()

Properties

Assertions

Legacy v2.1 assertion tuples ({path, op, value}). Round-tripped through FromLegacyTuple(string?, string?, string?) when the runner builds the live expectation list — covered by EffectiveExpectations().

[JsonPropertyName("assertions")]
public List<LegacyAssertionTuple>? Assertions { get; set; }

Property Value

List<LegacyAssertionTuple>

Body

Request body (request steps); usually JSON text.

[JsonPropertyName("body")]
public string? Body { get; set; }

Property Value

string

Data

Data-driven parameterisation (#174). Null → the step runs once; otherwise once per row, with the row's columns joining the variable-resolver scope.

[JsonPropertyName("data")]
public FlowDataSource? Data { get; set; }

Property Value

FlowDataSource

Expectations

Expectations to evaluate after the request returns. v2.2 schema. Optional + defaults to empty so v2.1 flows load unchanged.

[JsonPropertyName("expectations")]
public List<FlowExpectation> Expectations { get; set; }

Property Value

List<FlowExpectation>

Id

Stable step id ("node_…") assigned when the workbench created it.

[JsonPropertyName("id")]
public string Id { get; set; }

Property Value

string

Method

Method name (request steps).

[JsonPropertyName("method")]
public string? Method { get; set; }

Property Value

string

Protocol

Protocol id ("rest" / "grpc" / …) — request steps only.

[JsonPropertyName("protocol")]
public string? Protocol { get; set; }

Property Value

string

ServerUrl

Target server URL override (request steps).

[JsonPropertyName("serverUrl")]
public string? ServerUrl { get; set; }

Property Value

string

Service

Service name (request steps).

[JsonPropertyName("service")]
public string? Service { get; set; }

Property Value

string

Snapshot

Snapshot baseline config (#171). Null → no snapshotting for this step; presence opts the step into capture-once / diff-on-change.

[JsonPropertyName("snapshot")]
public FlowSnapshotConfig? Snapshot { get; set; }

Property Value

FlowSnapshotConfig

Type

request / condition / delay / variable / loop.

[JsonPropertyName("type")]
public string Type { get; set; }

Property Value

string

Methods

EffectiveExpectations()

Resolved expectation list: v2.2 Expectations verbatim plus any v2.1 Assertions projected through the legacy adapter. The CLI runner consumes this, not the raw lists.

public IReadOnlyList<FlowExpectation> EffectiveExpectations()

Returns

IReadOnlyList<FlowExpectation>