Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CQ3 - Configuration files #11

Closed
simleo opened this issue Jun 23, 2022 · 5 comments · Fixed by #39
Closed

CQ3 - Configuration files #11

simleo opened this issue Jun 23, 2022 · 5 comments · Fixed by #39
Labels
Requirement Something we want to capture in the spec

Comments

@simleo
Copy link
Collaborator

simleo commented Jun 23, 2022

What are the configuration files used in a workflow execution step?

ChooseAction? Though maybe the crate generator should just merge the params with the other ones if it can parse the config file. To link to the config file as a black box instead we probably need a new property.

@simleo simleo added the Requirement Something we want to capture in the spec label Jul 6, 2022
@simleo
Copy link
Collaborator Author

simleo commented Jan 9, 2023

There are two main cases here:

  • Configuration of the application being run (the workflow, or a tool). We have no concrete use case for this yet, but we could simply represent this as one of the inputs of the workflow / tool, likely an optional one ("valueRequired": "False") since in most application there's a default configuration and the configuration file is only used to tweak some features.
  • Configuration of the workflow engine. We have the StreamFlow use case from @GlassOfWhiskey, and there are likely other workflow engines where this is relevant. Looks like there is no suitable property in SoftwareApplication, so we need to add a custom one to ro-terms. Looking at other SoftwareApplication properties, softwareConfiguration seems the most logical name.

Example:

{
    "@id": "#c0080ce4-e220-44bf-92b3-c59e6d590059",
    "@type": "SoftwareApplication",
    "name": "StreamFlow 0.2.0.dev2",
    "softwareConfiguration": "streamflow.yml"
},
{
    "@id": "streamflow.yml",
    "@type": "File",
    "name": "StreamFlow configuration file",
    "encodingFormat": "application/yaml"
}

On a side note, it seems that the application/yaml media type is not official yet.

@GlassOfWhiskey
Copy link
Contributor

Maybe it is worth adding a pointer to the SoftwareApplication it refers to

@GlassOfWhiskey
Copy link
Contributor

Maybe it is worth adding a pointer to the SoftwareApplication it refers to

Oh sorry I didn't see it. I was looking for it the other way around :)

@simleo
Copy link
Collaborator Author

simleo commented Jan 11, 2023

I've been rethinking this, and the above does not work. The reason is that the configuration is not an intrinsic property of the workflow engine, but rather one of the parameters of a specific execution of the engine, which can change from one execution to another, so the description of multiple engine runs (not forbidden by the spec, and there's been talk about a use case for it yesterday in a BY-COVID meeting) in general is not possible. The configuration file should instead be added to the object of the OrganizeAction that represents the engine run:

{
    "@id": "#e55c4723-7814-4cef-b3b6-96c1dbf1ae9b",
    "@type": "SoftwareApplication",
    "name": "StreamFlow 0.2.0.dev2"
},
{
    "@id": "#7ff2f0b6-0294-4da5-9ecc-5846b8aa4e66",
    "@type": "OrganizeAction",
    "instrument": {"@id": "#e55c4723-7814-4cef-b3b6-96c1dbf1ae9b"},
    "name": "Run of StreamFlow 0.2.0.dev2",
    "object": [
        {"@id": "7ff2f0b6-0294-4da5-9ecc-5846b8aa4e66/streamflow.yml"},
        {"@id": "#a203c665-668d-4488-bf57-5b2eedf77905"},
        ...
    ],
    "result": {"@id": "#9984d778-7cd8-49ea-984d-7c58a0404f85"}
},
{
    "@id": "7ff2f0b6-0294-4da5-9ecc-5846b8aa4e66/streamflow.yml",
    "@type": "File",
    "encodingFormat": "application/yaml"
},
{
    "@id": "#a203c665-668d-4488-bf57-5b2eedf77905",
    "@type": "ControlAction",
    "instrument": {"@id": "predictions.cwl#extract-tissue-low"},
    "object": {"@id": "#465dafb2-66cf-4af9-a6cf-b8fea0e8acc9"}
},
...

@simleo
Copy link
Collaborator Author

simleo commented Jan 11, 2023

See #39

@stain stain closed this as completed in #39 Jan 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Requirement Something we want to capture in the spec
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants