ga4gh / tool-registry-service-schemas

APIs for discovering genomics tools, their metadata and their containers
Apache License 2.0
30 stars 18 forks source link

What purpose does the path param "{type}" really serve? And why the "PLAIN_" types? #210

Open uniqueg opened 2 years ago

uniqueg commented 2 years ago

Currently, multiple endpoints make use of the {type} path param to specify the descriptor type of a workflow resource (e.g., CWL, WDL). As we are currently implementing a WES that accepts a (versioned) TRS URI for workflow_url, we were wondering whether TRS URIs should also contain the workflow type. However, in this context this seems unnecessary, as a WES request MUST contain a workflow_type (as well as a workflow_type_version) to be specified anyway.

So here are a couple of thoughts:

For the next major revision of the TRS specs, I would thus propose to

┆Issue is synchronized with this Jira Story ┆Project Name: Zzz-ARCHIVE GA4GH tool-registry-service ┆Issue Number: TRS-53

denis-yuen commented 2 years ago

If we assume that a workflow can exist in multiple languages (which it arguably can, and we even have (toy/test) examples for this), then surely it could exist in multiple versions of the same language

Hmmm, this might be something we didn't consider. I understand/understood a workflow changing between DSL1 and DSL2 with newer versions. But we probably didn't anticipate a workflow supporting both in one {version_id} in other words. If we were to add this, it would be nice for it to be optional.

using just content negotation

I think this is a good change to propose. If I recall correctly, I think some of this mess was just because we couldn't figure out how to represent some things in swagger 2.0 / associated code generator and never got removed. Now that we're on OpenAPI 3.0, it makes sense to me to clean this up especially if we are considering doing a next major revision.