-
Notifications
You must be signed in to change notification settings - Fork 38
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
Request to Add DELETE /runs/{run_id}
Endpoint
#218
Comments
I think there is some push in the Cloud Work Stream to keep the APIs as lightweight as possible. For example, the DRS and TRS endpoints have no operations to create resources. And none of DRS, TRS, WES and TES currently have operations to delete endpoints, as you suggest. While I understand the reasoning behind keeping the APIs slim and easy to implement, I do think that standardizing such operations would be incredibly useful towards increased interoperability and richer functionality. My suggestion would be to publish spec extensions for such operations. This would strongly indicate that implementing these operations is optional, while still suggesting a unified way for services to implement them - if they choose to do so (or are required to do so by law, as in GDPR). Would that be acceptable to you, @suecharo? |
Specification extensions are a good idea. In this case, do you imagine that the actual implementation would be that when DELETE is called, you can choose any of the following?
|
Thank you, @uniqueg .
Indeed, as Manabu mentioned, this direction seems promising. In Sapporo, we are actually extending some parts as well. I think we need to consider the proper format for these extensions. For example, it would be beneficial to have fields in the ServiceInfo for extensions. Currently, the ServiceInfo only has:
However, a format like this could be more useful:
This would allow for more detailed versioning and provide direct links to the relevant API specifications. |
Hi @suecharo, I had previously proposed a mechanism to broadcast the extensions to a given API that a given service supports via the service info, similar to what you suggest (though I have called it capabilities): ga4gh/TASC#45 How I imagine this to work is that if a service implements the On the other hand, if the extension/capability is not implemented, the behavior for calling So the difference is that in the one case, a WES client can reasonably expect the implementation to behave in a clearly defined manner for that operation (just as for any other WES operation), whereas in the other case, the client can set no expectations with regard to the availability or behavior of that operation at all. In practice, a client would need an additional call to verify whether a resource can be deleted as expected by first calling the service info. A GUI client, e.g., could first check whether deletions are supported in a given WES instance before activating a "Delete" button for a given run. If deletions are not supported, the button could be hidden or grayed out with a tooltip saying "Not supported by this WES instance". Also, if required by local regulations (e.g., GDPR), a given client could allow connections only to those WES instances that support resource deletions. A GA4GH Service Registry API service that allows querying for WES instances that support a given extension/capability could help with easily identifying such services. WES clients could then be restricted to only talk to WES instances that are listed in the registry service and that also implement the requested extensions. Anyway, while an extension mechanism is surely useful, I am not saying that I would suggest that you open up a PR in which you just add the endpoint to the WES core specs. We can then discuss how people feel about it. You could also add a similar PR for TES. |
Hi there,
We're developing a WES called Sapporo, which we're using as the backend for our web service. This service accepts requests from both authenticated and anonymous users to execute specific workflows with file attachments.
We've received requests from users to be able to delete the input and result files associated with their workflow runs after execution. To address this, we would like to introduce a
DELETE /runs/{run_id}
endpoint to explicitly clean up related files from the WES server.Thanks as always!!
The text was updated successfully, but these errors were encountered: