conductor-oss / conductor-oss/csharp-sdk
Missing task builders: NOOP, EXCLUSIVE_JOIN, START_WORKFLOW
- Dominant language
- C#
- Stars
- 54
- Forks
- 23
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 2
Description
## 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
```csharp
// 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(joinOn);
if (defaultExclusiveJoinTask != null)
DefaultExclusiveJoinTask = new List(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](https://github.com/conductor-oss/conductor-java-sdk/issues/130) (NOOP), [#133](https://github.com/conductor-oss/conductor-java-sdk/issues/133) (EXCLUSIVE_JOIN)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in Conductor/Definition/TaskType/ and inspect existing Task builder classes, WorkflowTask.WorkflowTaskTypeEnum, and the StartWorkflow model. Add builders for NOOP, EXCLUSIVE_JOIN, and START_WORKFLOW, plus the NOOP enum value, following the issue’s constructor and input details. Done means all three task types can be built without manually constructing WorkflowTask and the project compiles.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100