-
Notifications
You must be signed in to change notification settings - Fork 53
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
Providing more metadata than access_url with GetAccessURLResponse? #239
Comments
Sort of related to this, adding So far: Suggestion: Quoting from the the discussion PR 236:
Some examples how we can extend the original PR based on the use cases: Assumptions:
Use Case 1
Step 1: Client requests the object metadata via # ...
"access_methods": [
{
"type": "s3",
"access_id": "s3-1",
"region": "us-east-1"
}, # ...
] Step 2: Client requests an access url via {
"access_url": "<byte-access-url>"
} Use Case 2
Step 1: Client requests the object metadata via # ...
"access_methods": [
{
"type": "s3",
"access_url": "s3://foo/bar.bam",
"region": "us-east-1"
}, # ...
] Use Case 3
Step 1: Client requests the object metadata via # ...
"access_methods": [
{
"type": "aspera",
"access_id": "aspera-1"
}, # ...
] Step 2: Client requests access url and additional information via {
"access_url": "<byte-access-url>",
"access_credentials": {
"foo": "bar"
}
} We can provide a structured vocabulary for the response in the schema. Use Case 4
Step 1: Client requests the object metadata via # ...
"access_methods": [
{
"type": "s3",
"access_url": "s3://foo/bar.bam",
"region": "us-east-1"
}, # ...
] How does it sound like? Are those use cases accurate? |
Nice breakdown @sarpera . A few thoughts:
|
Use cases 2 & 4 are not different at all when it comes to using DRS to access bytes . I added the scenarios for each use cases to point out #213 can cover them, and how we can extend it to cover the use case 3.
There is no auth for the use case 4, scenario is "DRS contains an object that is stored in a public-access storage system". I guess what you mentioned aligns better with the use case 2; where the client has direct access to underlying storage (out-of-band auth knowledge) and does not need more info from DRS to access the private/controlled access data, besides its URL; e.g direct bucket access to s3. There might be more use cases as you implied, adding them would help us see the bigger picture.
Yeah, exactly. Hope more drivers can also confirm this against their use cases.
Yes and I agree, though I would prefer eventually having a documented syntax even if it means we would end up having different responses depending on the access method. More input from drivers who have this use case will help; aspera, globus etc
+1 |
Got it -- I agree, your use case 2 is the "out-of-band auth" scenario I was thinking of. Echoing them back to make sure we're in sync:
If that's right, I like it, because the rules for building a client are straightforward:
|
* small doc cleanup Added a few method descriptions (and shortened method summaries). * add AccessURL object (to allow headers) * reconcile AccessURL with #243 * switch headers from map to array * small documentation cleanup * flesh out the auth section
PR #248 is now merged. |
This is a followup to our conversation on 20190311 and PR #236
See #236 (comment)
GetAccessURLResponse
just hasaccess_url
in the response. Do we want to expand that to include more metadata in the future so DRS implementors can have the option to pass back more info than just a URL? This would be needed if DRS implementors want to use DRS to hand back enough information to "get the bytes" for a variety of protocols beyond URLs/signed URLs.The text was updated successfully, but these errors were encountered: