Skip to content

Missing task builders: NOOP, EXCLUSIVE_JOIN, START_WORKFLOW #160

Description

@nthmost-orkes

Summary

Three system task types have no builder class in Conductor/Definition/TaskType/. Users who need these types must construct WorkflowTask manually. NOOP is also absent from the WorkflowTaskTypeEnum.

Tested against: Conductor OSS 3.32.0-rc.9

Missing

Task Type Enum constant Builder class Notes
NOOP ✗ missing from enum No-op task; completes immediately. Core OSS type.
EXCLUSIVE_JOIN EXCLUSIVEJOIN = 18 Join for SWITCH branches; defaultExclusiveJoinTask unreachable.
START_WORKFLOW STARTWORKFLOW = 10 Fire-and-forget child workflow; StartWorkflow model exists, no task builder.

Server Acceptance

All three types accepted by Conductor OSS 3.32.0-rc.9. NOOP and EXCLUSIVE_JOIN server acceptance confirmed in parallel Java SDK (#130, #133) and JavaScript SDK (#136, #137) audits against the same server.

Suggested Additions

// Add to WorkflowTaskTypeEnum:
[EnumMember(Value = "NOOP")]
NOOP = 35,

// NoopTask.cs
public class NoopTask : Task
{
    public NoopTask(string taskReferenceName)
        : base(taskReferenceName, WorkflowTask.WorkflowTaskTypeEnum.NOOP) { }
}

// ExclusiveJoinTask.cs
public class ExclusiveJoinTask : Task
{
    public ExclusiveJoinTask(string taskReferenceName, string[] joinOn,
        string[] defaultExclusiveJoinTask = null)
        : base(taskReferenceName, WorkflowTask.WorkflowTaskTypeEnum.EXCLUSIVEJOIN)
    {
        JoinOn = new List<string>(joinOn);
        if (defaultExclusiveJoinTask != null)
            DefaultExclusiveJoinTask = new List<string>(defaultExclusiveJoinTask);
    }
}

// StartWorkflowTask.cs
public class StartWorkflowTask : Task
{
    public StartWorkflowTask(string taskReferenceName, StartWorkflow startWorkflow)
        : base(taskReferenceName, WorkflowTask.WorkflowTaskTypeEnum.STARTWORKFLOW)
    {
        WithInput("startWorkflow", startWorkflow);
    }
}

Related: Java SDK #130 (NOOP), #133 (EXCLUSIVE_JOIN)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions