-
Notifications
You must be signed in to change notification settings - Fork 466
Access delegation #1033
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
Access delegation #1033
Changes from 15 commits
b929c2e
e1d9f64
f3cfd37
989bd14
2045f83
cf54856
a197d28
a425b69
10cc361
07325e5
f4fc2ec
35c7cd3
da3490b
238df70
cf0dc4a
ae4a677
da322e6
0c4feec
c1cc3c0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -98,6 +98,8 @@ class Endpoints: | |
| rename_table: str = "tables/rename" | ||
|
|
||
|
|
||
| ACCESS_DELEGATION = "access-delegation" | ||
| ACCESS_DELEGATION_DEFAULT = "vended-credentials" | ||
| AUTHORIZATION_HEADER = "Authorization" | ||
| BEARER_PREFIX = "Bearer" | ||
| CATALOG_SCOPE = "catalog" | ||
|
|
@@ -532,7 +534,7 @@ def _config_headers(self, session: Session) -> None: | |
| session.headers["Content-type"] = "application/json" | ||
| session.headers["X-Client-Version"] = ICEBERG_REST_SPEC_VERSION | ||
| session.headers["User-Agent"] = f"PyIceberg/{__version__}" | ||
| session.headers["X-Iceberg-Access-Delegation"] = "vended-credentials" | ||
| session.headers["X-Iceberg-Access-Delegation"] = self.properties.get(ACCESS_DELEGATION, ACCESS_DELEGATION_DEFAULT) | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It looks like we already have a way of setting custom headers in I think we could achieve this by setting the default header values, and then setting the property based values after the default values are set: What do you think of this approach over introducing a different property?
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. IMHO having an explicit and documented property is better than setting custom header. But I can change if you think it's better.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @sungwy I tried your code, but some tests failed with: I guess the idea is not allow default header override. Thus I guess having a dedicate property still the best option. What are you thoughts on this?
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @guitcastro - I appreciate you giving it a go. That error message is interesting because its specific to the
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @guitcastro I was able to make @sungwy's suggestion work in guitcastro#1, without breaking existing tests. |
||
|
|
||
| def _extract_headers_from_properties(self) -> Dict[str, str]: | ||
| return {key[len(HEADER_PREFIX) :]: value for key, value in self.properties.items() if key.startswith(HEADER_PREFIX)} | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.