-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Implement Data Landing Requests #20592
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
Conversation
94d7439 to
e502bc9
Compare
a2d48c1 to
3b13afc
Compare
|
Retrying failed Selenium tests in case lib/galaxy_test/selenium/test_uploads.py::TestUploads::test_upload_composite_dataset_pasted_data is related. Seems like it might be. |
6655895 to
63cf4e5
Compare
23acef8 to
5cddbc8
Compare
0633fa7 to
47e624b
Compare
47e624b to
068f073
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome again, thank you so much @jmchilton! I'll get this deployed to test for some hands-on experience.
088ad17 to
bb6e5f4
Compare
bb6e5f4 to
8b17d3f
Compare
|
Thanks so much @jmchilton, I think we'll build many cool integration for this! @bgruening @wm75 I think this could be a viable alternative for (async) data source tools. |
|
Indeed! Thanks a lot @jmchilton! Can I ask for some documentation, example code etc ... I have a few DBs lined up that showed interest in using it :) |
|
The sample code usage is described in "How to test these changes". We'll implement a version for BRC in the coming days |
Builds on #20288 (merged). Implements #19940.
The idea is just like we do for upload (the
__DATA_FETCH__tool). For a data import tool, we have a special API that wraps the tool version of the API for data import and complying to the fetch_data.py schema - I've mirrored that here for tool landings to create a data landing API.A data landing create request returns to a tool landing object. When the tool landing object is "claimed", if it is for the data fetch tool a separate UI is rendered to visually display an editable version of the data request UI.
The import interface breaks each data fetch "target" section into a table with a slightly different interface based on whether the target's destination is hdas or an hdca.
The nice thing about the tabular interface is it can be used to display collections or dataset and we can adapt the columns based on the metadata being specified by the request. So that type isn't fixed in the table - the request included at least one type so all the entries have types.
If the request specified other metadata - there would be other columns. Here are some examples of included alternative sets of metadata in the request:
Here are examples with group tags, obscure upload options, and genome:
The tables are also capable or representing high dimensional tables:
There are some options still not implemented, esoteric collection types not as readily tabularized, and library functionality not implemented. I don't think many will be tempted to use these options - but the UI works just fine for these options - it is just the annotated version of the request is shown and the UI is just used for reviewing it before import.
The view request lets the researcher view the request for any target and if the tables have been tweaked by the researcher - a message about this being the original request will be shown:
I feel like I could tweak the UI a ton more and implement more validation - but this component is a bit obscure still so maybe only worth a deep polish after it gets some use?
How to test the changes?
(Select all options that apply)
. .venv/bin/activate; PYTHONPATH=lib python lib/galaxy/tool_util/client/landing.py -g http://localhost:8081 -p uploadLicense