elixir-cloud-aai / web-components

GA4GH Web components are the reusable custom elements that can be utilized in your web apps & web pages independently irrespective of what framework/library you are using to build the frontend.
https://web-components-beta.vercel.app/
MIT License
6 stars 6 forks source link

Component: proTES client #36

Open uniqueg opened 2 years ago

uniqueg commented 2 years ago

Is your feature request related to a problem? Please describe.

The GA4GH Workflow Execution Service (WES) API specification allows executing containerized task in a uniform, compute backend-agnostic manner.

proTES is a lightweight implementation of TES that is not bound to any particular compute backend. Instead, it is a gateway for relaying TES requests to TES instances that actually execute the tasks. It can be used to distribute task run requests and inject middleware to harmonize TES behavior beyond what the current TES specification offers. Apart from the endpoints defined by TES, it also specifies an additional endpoint to set the Service Info for a given proTES deployment. In addition to acting as a gateway, proTES can be used to as a backend for storing task run metadata for a web portal operationalizing GA4GH Cloud APIs, such as Krini.

Describe the solution you'd like

Implement a Web Component client for proTES that serves the above-mentioned use cases. Note that this may require the use/packaging of multiple reusable child components or the reuse of already exisiting ones. Before starting the implementation, please draft a brief design proposal. Also think how this component might interact with the component in #32 to mint DRS URIs for any task outputs. Note that the component should also work with any spec-compliant TES implementation - that is, functionalities only available in proTES should be optional.