Skip to content

No LambdaTask builder class — TaskType.LAMBDA exists in enum but is unusable #427

Description

@nthmost-orkes

Summary

Tested against: Conductor OSS 3.32.0-rc.9

TaskType.LAMBDA is present in the SDK's enum but there is no LambdaTask
builder class. Users cannot construct a LAMBDA task using the Python SDK — they
must fall back to raw dicts.

Details

from conductor.client.workflow.task.task_type import TaskType
print(TaskType.LAMBDA)   # "LAMBDA" — exists in enum

from conductor.client.workflow.task.lambda_task import LambdaTask
# ImportError: No module named 'conductor.client.workflow.task.lambda_task'

The server supports LAMBDA tasks correctly (confirmed at runtime — see below).
The gap is entirely on the SDK side.

Server-side LAMBDA inputParameters

{
  "type": "LAMBDA",
  "inputParameters": {
    "scriptExpression": "(function(){ return {out: $.x + 1}; })()",
    "x": "${workflow.input.x}"
  }
}

Suggested fix

Add src/conductor/client/workflow/task/lambda_task.py:

class LambdaTask(TaskInterface):
    def __init__(self, task_ref_name: str, script: str,
                 bindings: Optional[Dict[str, str]] = None):
        super().__init__(task_ref_name, TaskType.LAMBDA,
                         input_parameters={"scriptExpression": script})
        if bindings:
            self.input_parameters.update(bindings)

Verified against

Conductor server 3.32.0-rc.9. A raw-dict LAMBDA workflow registered and
ran to COMPLETED on the server. Only the SDK builder is missing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions