galaxyproject / galaxy

Data intensive science for everyone.
https://galaxyproject.org
Other
1.37k stars 992 forks source link

[Feature Request, Wishlist] Enable click-to-run workflows from other Galaxies #16797

Open hexylena opened 11 months ago

hexylena commented 11 months ago

We've been using the GTN's super easy feature to import a workflow via implementing the bare minimum of the GA4GH TRS API, I think it would be really cool if we could support something similar in Galaxy.

I guess there are two ways to implement this:

  1. Implement the bare minimum TRS API
  2. support the run_form=true parameter of the workflows/trs_import

This would let us improve the """federation""" experience that we're building on the GTN side, where we've added a cross-UseGalaxy.* listing of public workflows that one can sort through and access on their respective galaxies (de-duplicated by owner/name)

With either of these options implemented, we could construct a URL for the last column for "import and run this workflow on your current galaxy" which would be useful for the subdomain experience, to let users easily import a workflow from another galaxy.

xref https://github.com/galaxyproject/galaxy/issues/15658

GA4GH bare minimum that gtn implements Responding on the following two APIs with the absolute bare minimum, would let us easily construct URLs to import a workflow from one Galaxy into another using the TRS mechanism which gives us click-to-run quite easily. ``` > api/ga4gh/trs/v2/tools//versions/ { "id": "", "url": "", "name": "v1", "author": [ // Unnecessary ], "descriptor_type": [ "GALAXY" ] } ``` and ``` > /api/ga4gh/trs/v2/tools//versions//GALAXY/descriptor { "content": "json dump of the .ga" "url": null } ```

cc @nomadscientist

nomadscientist commented 11 months ago

Oh my god, this would be BLOODY AMAZING for the subdomain experience Please do this This is such a bug-bear of trying to unite users globally when the workflows aren't available everywhere

hexylena commented 6 months ago

@nomadscientist if galaxy doesn't want to implement a TRS endpoint, one could also implement a proxy that constructs the TRS responses from all public galaxies, enabling that experience for the united subdomain project.