Summary
Tested against: Conductor OSS 3.32.0-rc.9
ConductorWorkflow.__init__() takes executor: WorkflowExecutor as a mandatory
first positional argument. This forces a live server connection at the point of
constructing a workflow definition, making offline use impossible.
Impact
- Unit testing: tests that validate workflow structure (task order, task types,
inputParameters) cannot be written without a running Conductor server.
- Library code: functions that return workflow definitions must thread an
executor parameter through all their call chains, coupling definition logic
to connection management.
- Code generation / serialization: workflow definitions cannot be built and
exported to JSON without a server connection.
Reproduction
# Fails without a server running:
wf = ConductorWorkflow(name="my_wf", version=1)
# TypeError: ConductorWorkflow.__init__() missing 1 required positional argument: 'executor'
# Required:
config = Configuration(server_api_url="http://localhost:8080/api")
executor = WorkflowExecutor(config)
wf = ConductorWorkflow(executor=executor, name="my_wf", version=1)
Suggested fix
Make executor optional; raise RuntimeError only when an executor-dependent
method (.register(), .start_workflow(), .execute()) is called on a workflow
with no executor set:
def __init__(self, name: str, version: Optional[int] = None,
executor: Optional[WorkflowExecutor] = None, ...):
self._executor = executor
...
def register(self, overwrite: bool):
if self._executor is None:
raise RuntimeError("ConductorWorkflow.register() requires an executor. "
"Pass executor= at construction time.")
...
Verified against
Conductor server 3.32.0-rc.9, Python SDK (editable install from
conductor-oss/python-sdk main branch).
Summary
Tested against: Conductor OSS 3.32.0-rc.9
ConductorWorkflow.__init__()takesexecutor: WorkflowExecutoras a mandatoryfirst positional argument. This forces a live server connection at the point of
constructing a workflow definition, making offline use impossible.
Impact
inputParameters) cannot be written without a running Conductor server.
executorparameter through all their call chains, coupling definition logicto connection management.
exported to JSON without a server connection.
Reproduction
Suggested fix
Make
executoroptional; raiseRuntimeErroronly when an executor-dependentmethod (
.register(),.start_workflow(),.execute()) is called on a workflowwith no executor set:
Verified against
Conductor server 3.32.0-rc.9, Python SDK (editable install from
conductor-oss/python-sdkmain branch).