-
Notifications
You must be signed in to change notification settings - Fork 6
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
Add localizer for DRS URIs, and update GDC handler to use it when available #146
Comments
Note: The signed URL only lasts for an hour, so if there is a failure, a new one should be generated. |
Do we know what the failure modes of that API endpoint are? We'd want to catch those in the localization plugin. Alternatively, if it's an easy API to reverse engineer, maybe do that (à la what Qing did)? I don't exactly trust DSP APIs to be reliable under heavy load. |
Failure modes are response codes 404 or 500, success is 200. I would only want to use the resolver API. Once we have the signed URL, we're only dealing with google. I somewhat prefer this method, because it enables use of all drs URI's. Otherwise, we need to keep up with every new one, and any time a user needs access to a certain one, they won't have to figure out which provider to use, manually login, and download yet another credentials file. In these cases, Terra is doing that for us, and the user only needs to ensure that external account links are up-to-date. |
Good point. OK, let's see how it holds up under pressure! 🤞 |
Code written but not yet tested - master...drs_via_drshub |
Thanks so much! Can you also please add an appropriate regex here so this automagically gets invoked for DRS URLs? canine/canine/localization/file_handlers.py Lines 720 to 727 in f7f3789
|
Done! |
Is your feature request related to a problem? Please describe.
A lot of dbGaP data is available on buckets via signed URLs that can be generated by having a Terra account linked to the appropriate provider, and using the DRSHub API. Currently, for data hosted by the GDC, we are using the GDC API, which is slow and prone to crashing.
Describe the solution you'd like
Use the above API to get a signed URL, and if it's available, use it rather than the GDC API.
Additional context
Manual testing to confirm it works outside of the Broad network:
The text was updated successfully, but these errors were encountered: