conductor-oss / conductor-oss/java-sdk
START_WORKFLOW task: missing builder class
- Dominant language
- Java
- Stars
- 12
- Forks
- 10
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 4
Description
## Summary
`TaskType.START_WORKFLOW` exists in the SDK enum but there is no `StartWorkflow`
builder class in `conductor-client/…/def/tasks/`. A file named `StartWorkflow.java`
exists only in `examples/old/` and is an example runner, not a task builder.
Users cannot create a START_WORKFLOW task using the fluent SDK API.
## Server baseline
Conductor **3.32.0-rc.9**
## Evidence
**Static:** No `StartWorkflow` builder class under `conductor-client/…/def/tasks/`.
**Live (2026-07-16):** A raw `WorkflowTask` with `"type": "START_WORKFLOW"` and
`inputParameters.startWorkflow = { "name": "…", "version": 1, "input": {} }` was
registered and executed against Conductor OSS 3.32.0-rc.9. The workflow completed
successfully — gap is SDK-only.
## Expected behaviour
```java
new StartWorkflow("fire_child", "child_workflow_name")
.version(1)
.workflowInput(Map.of("key", "value"))
```
## Proposed fix
```java
public class StartWorkflow extends Task {
private final String workflowName;
private Integer version;
private Map workflowInput = new HashMap<>();
public StartWorkflow(String taskReferenceName, String workflowName) {
super(taskReferenceName, TaskType.START_WORKFLOW);
this.workflowName = workflowName;
}
public StartWorkflow version(int version) {
this.version = version;
return this;
}
public StartWorkflow workflowInput(Map input) {
this.workflowInput = input;
return this;
}
@Override
protected void updateWorkflowTask(WorkflowTask task) {
Map startWorkflow = new HashMap<>();
startWorkflow.put("name", workflowName);
if (version != null) startWorkflow.put("version", version);
startWorkflow.put("input", workflowInput);
task.getInputParameters().put("startWorkflow", startWorkflow);
}
}
```
## Related
Discovered during systematic SDK audit against Conductor OSS 3.32.0-rc.9.
Contributor guide
Research direction
Start by comparing existing builders in conductor-client/…/def/tasks/ and reading the Task and WorkflowTask APIs. Add StartWorkflow.java with the fluent behavior shown in the issue, then verify the documented example produces inputParameters.startWorkflow and run the SDK’s existing tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Feature
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 85/100