Skip to content
Tracon

WorkflowRunRequest

Namespace Tracon · Assembly Tracon.Abstractions.dll

The information needed to run a workflow.

public sealed record WorkflowRunRequest : IEquatable<WorkflowRunRequest>
Inheritance
object ← WorkflowRunRequest
Implements
IEquatable<WorkflowRunRequest>
Inherited Members
object.GetType(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
public WorkflowRunRequest()

The version of the workflow’s stored definition to run. null (the default) runs the current definition.

public int? DefinitionVersion { get; init; }

int?

The same rule as WorkflowResumeRequest.DefinitionVersion: the run compiles that version and records it on its row, so a later resume or response uses it too. A version the workflow does not have fails the run (its row opens, closes RunStatus.Failed, and no model is called); the run never falls back to the current definition. A workflow defined in code has no versions and ignores the value.

The HTTP API does not set it. Recovery sets it: a queued run that is started again because the interrupted attempt wrote no checkpoint names the version that attempt recorded, so an edit made while the job waited does not change what runs.

The user message to feed into the graph.

public string? Message { get; init; }

string?

Values for the parameters the workflow declares (WorkflowDefinition.Parameters), by name.

public IReadOnlyDictionary<string, string>? Parameters { get; init; }

IReadOnlyDictionary<string, string>?

The runner validates them against the workflow’s schema and fails the run before the first model call when a required value is missing, a name is not declared, a value is over the configured MaxParameterValueLength, or a participant agent needs a required parameter the workflow cannot supply. The HTTP endpoint checks the same rules first only to answer 400 before the stream opens; this runner is the authority, so a caller that skips HTTP gets the same refusal.

The final values (these, with the schema defaults applied) are recorded with the run, and a resume or a response to the run uses them again.

The run identifier. If given, the record is opened with this identifier; a streaming endpoint uses this to know the identifier before writing the first frame.

public Guid? RunId { get; init; }

Guid?

The execution session’s identifier. Generated if left empty.

public string? SessionId { get; init; }

string?

The value comes from the client and is untrusted input. Since checkpoints are grouped under this value, using it without validation means access to another execution’s state.

The name of the workflow to run.

public required string WorkflowName { get; init; }

string

public override bool Equals(object? obj)

obj object?

bool

public bool Equals(WorkflowRunRequest? other)

other WorkflowRunRequest?

bool

public override int GetHashCode()

int

public override string ToString()

string

operator ==(WorkflowRunRequest?, WorkflowRunRequest?)

Section titled “ operator ==(WorkflowRunRequest?, WorkflowRunRequest?)”
public static bool operator ==(WorkflowRunRequest? left, WorkflowRunRequest? right)

left WorkflowRunRequest?

right WorkflowRunRequest?

bool

operator !=(WorkflowRunRequest?, WorkflowRunRequest?)

Section titled “ operator !=(WorkflowRunRequest?, WorkflowRunRequest?)”
public static bool operator !=(WorkflowRunRequest? left, WorkflowRunRequest? right)

left WorkflowRunRequest?

right WorkflowRunRequest?

bool