-
Notifications
You must be signed in to change notification settings - Fork 17
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
feat(wes): enums for workflow type & type versions #180
Comments
Thanks, Alex for the explanation, approach for this can be as follows:
|
Thanks @git-anurag-hub. I'm not sure I fully understand the last point. Who is the WES author ad how can they change the And does your suggested approach pick up changes that may occur on the side of the connected WES, via calling the service info endpoint? |
|
Hello , |
yes sure @Chaitanya674! |
Hello , I have created the dropdown using the "select" type and like this in the ecc-utils-design .. form.ts file which look like this : should i raise a PR to checkout ? |
Thanks @Chaitanya674. @JaeAeich: Do you wanna answer that? But, yes, generally it's a good idea to open a PR or draft PR, as it's easier to discuss on code line by line. |
added a dropdown in design and made a function in ecc-client-lit-ga4gh-wes which set the options for the workflow type and workflow version but the function is having trouble in accessing the form-data so commented please check the function fix elixir-cloud-aai#180
…ld in lit-wes to dropdown re elixir-cloud-aai#180
@Chaitanya674 curl -X GET "https://prowes.rahtiapp.fi/ga4gh/wes/v1/service-info" -H "accept: application/json" We get the {
...
"workflow_engine_versions": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
},
"workflow_type_versions": {
"additionalProp1": {
"workflow_type_version": [
"string"
]
},
"additionalProp2": {
"workflow_type_version": [
"string"
]
},
"additionalProp3": {
"workflow_type_version": [
"string"
]
}
}
...
} Here is the response from another WES implementation, {
...
"default_workflow_engine_parameters": [
...
]
"supported_wes_versions": [
"1.0.0"
],
"system_state_counts": {
"CANCELED": 0,
"CANCELING": 0,
"COMPLETE": 24,
"EXECUTOR_ERROR": 1,
"INITIALIZING": 0,
"PAUSED": 0,
"QUEUED": 0,
"RUNNING": 0,
"SYSTEM_ERROR": 0
},
"workflow_engine_versions": {
"NFL": "22.10.0",
"SMK": "6.10.0"
},
"workflow_type_versions": {
"NFL": {
"workflow_type_version": [
"22.10.0"
]
},
"SMK": {
"workflow_type_version": [
"6.10.0"
]
}
}
} Note how workflow versions, we can fetch this information on const fields: Fields[] = {
...
selectOptions: [
"NFL": {
"workflow_type_version": [
"22.10.0"
]
},
"SMK": {
"workflow_type_version": [
"6.10.0"
]
}
]
...
} now it should be the job of const fields: Fields[] = {
...
selectOptions: [
"NFL": {
"available_version: [x, y, z]
"workflow_type_version": [
a, b, c
]
},
...
]
...
} But again if you see this pattern would contrain us to 2 levels of nesting, what will happen if in future we have to render 10 levels of interdepedent selects, the above was just a rough idea on the problem, I hope this makes it clear. The main challenge would be to handle |
Yeah, this is a lot harder than it looks because the underlying data can be really messy... A few points to consider from real data:
Soooo... it's all a bit of a mess! HOWEVER......that's more of a problem for our proWES gateway - which will try to take a workflow and forward it to the most appropriate WES and therefore somehow needs to do that negotiation. As far as the client is concerned, we currently only need to specify the type and the version - so the combinations aren't endless and can easily be fetched from the |
Description
Entering free text is generally inconvenient and error prone for users. For the "Workflow type" and "Workflow type version" fields in particular, at any time, only a subset of values is suported (e.g.,
CWL
,SMK
for "Workflow Type"). Therefore, it would be easier and safer if users were able to only select among supported workflow types and workflow type versions.Possible solution(s)
This could easily be implemented via dropdown menus.
However, the more critical part is how the component is to know which workflow types and type versions are supported, as this may be different for each instance, depending on which types and type versions are supported by the WES that the component is connected to. As this information may change from one timepoint to another, the safest way of obtaining this information is through the WES instances
GET /service-info
endpoint and parsing the (currently) supported workflow types and type versions from the response.For example, https://prowes.rahtiapp.fi/ga4gh/wes/v1 currently supports the following:
Alternative context
Therefore, for a WES ELIXIR Cloud Component connected to that WES instance, only the following values should show up in the dropdown menus:
CWL
v1.0
It is also important to note that the available options for the workflow type version are dependent on the workflow type. For example, the service info of a given WES could list the following:
Given that the workflow type versions are dependent on the workflow type, the available options for the "Workflow type version" cannot be populated before the "Workflow type" has been selected. Consequently, rather than listing all of
v1.0
,DSL1
andDSL2
, by default no options should be available until the user selects the workflow type first. Then, depending on their selection, the dropdown menu for workflow type versions should be populated (e.g., if the user selectsNFL
as the workflow type, only thenDSL1
andDSL2
should be available in the workflow type version dropdown).The text was updated successfully, but these errors were encountered: