Part 3: proposal for functional CWL ad-hoc execution with multipart#607
Open
fmigneault wants to merge 3 commits into
Open
Part 3: proposal for functional CWL ad-hoc execution with multipart#607fmigneault wants to merge 3 commits into
fmigneault wants to merge 3 commits into
Conversation
fmigneault
force-pushed
the
part3-cwl-adhoc-execute
branch
from
July 18, 2026 15:03
92ffeda to
ae91de2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This proposal adjusts the Part 3 Workflow and Chaining definitions regarding ad-hoc CWL definitions and makes them actionable.
Specifically, it proposes using Multipart contents aligned with recent updates of Part 2: DRU to provide the CWL + execution body. Since the DRU structure defines how to deploy such multipart process, it is fairly easy to extend it with just one extra "Execute" part, to do ad-hoc "deploy" and execute it right away within a single request.
As proof, we already have a working implementation that required only small adjustments to make it work crim-ca/weaver#997.
Because CWL is a workflow definition (not "runtime", in contrast to Nested Processes that mix the process-chain and values right away), it has limited use by itself in an execution request. Implementations would have to perform some workarounds with
valueFromto force values into the CWL. While technically possible (and showcased in the proposed edits), it is not as nice to define workflows this way (and from experice, it gets ugly and less reusable with convoluted large data values like a FeatureCollection, also tested: https://github.com/crim-ca/weaver/blob/master/tests/functional/application-packages/EchoFeatures/echo_features.cwl, https://github.com/crim-ca/weaver/blob/master/tests/functional/application-packages/EchoFeatures/execute.yml).Therefore, the proposal is to keep CWL definition and OGC Execution separate, where each of their respective validation schema are well established. That allows implementation to perform robust validation of each component on its own, which is more interoperable, and then merge them during the ad-hoc execution with their preferred workflow engine/implementation to deal with runtime complexities.
@jerstlouis @pvretano @gfenoy Let me know what you think of it.