Skip to content

Ensure local input object is used for step inputs resolution, not the global workflow input object #70

@mexanick

Description

@mexanick

When defining expressions or parameter references ($(...) or ${...}) within a workflow step's in section, the parameter context should resolve to the local input object of that specific step (the values passed to the step via source or valueFrom), not the top-level (global) input object of the entire workflow.

The CWL specification defines a parameter context for resolution. Our current implementation in CTADIRAC extension seems to mistakenly use the workflow's top-level inputs object when it should be using the dynamically generated input object specific to the step being executed.

This behavior is problematic because:

  • It can lead to unexpected reference errors if a parameter exists in the workflow's global inputs but has not been explicitly mapped to the step's in section.
  • It violates the principle of step isolation and explicit data flow, which is a core tenet of CWL. The step should only have access to data that has been explicitly passed to it.

In order to avoid such issues in the future, we should add corresponding tests and ensure the correct parameter context provision for the inputs resolution.

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions