galaxy
galaxy copied to clipboard
[WIP] Implement Tool Request API
I've extracted the client pieces out of the structured state work (https://github.com/galaxyproject/galaxy/pull/17393). I think I would want to extract the workflow validation stuff out also before pulling this PR out of WIP. Some of this work is getting old - so I also need to update some of the SA idioms and break the migration out into its own commit.
Once polished, the immediate gain here is that sometimes the tool form submission can take several minutes to process. Think large collection map over jobs and such. We're creating 1000s of job objects in a web request and this is untenable. This API will allow us to just register a validated tool request in the database and let the job creation process happen within a Celery task. That will be a user experience improvement in the short term but in the long term these validated tool states will allow us to correct many technical issues with workflow extraction, job rerunning, etc.. We will always be able to recover what the user requested and how we processed the parameters - two things we just make guesses about right now (something something reproducibility).
See https://docs.google.com/document/d/1HQOLpLN54CjrB-wbD463XqzvUm-dNB8vTXUFBExh_2o/edit?usp=sharing.
How to test the changes?
(Select all options that apply)
- [x] I've included appropriate automated tests.
License
- [x] I agree to license these and all my past contributions to the core galaxy codebase under the MIT license.