apache / apache/iceberg-python
Allow disabling remote signing in REST Catalog
- Dominant language
- Python
- Stars
- 1.1k
- Forks
- 581
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 78
Description
### Feature Request / Improvement
When using a REST Catalog (e.g. Lakekeeper), pyiceberg gets remote signing details from the catalog.
However, sometimes it would be useful to _not_ use remote signing, in the case where the process performing the operations has access to the S3 endpoint through secret access keys. This is because remote signing requires a network round trip (plus any authorisation on server side).
It would be great if we could disable remote signing by respecting the `s3.signer` catalog property if it is empty.
The FileIO object gets created in `pyiceberg/catalog/rest/__init__.py`:
```python
return Table(
identifier=identifier_tuple,
metadata_location=table_response.metadata_location, # type: ignore
metadata=table_response.metadata,
io=self._load_file_io(
{**table_response.metadata.properties, **table_response.config}, table_response.metadata_location
),
catalog=self,
config=table_response.config,
)
```
This doesn't use the catalog properties that have been passed to the REST catalog init as far as I can tell.
I might be wrong, but I don't think [Support storage-credentials in REST catalog LoadTableResult- #3042
](https://github.com/apache/iceberg-python/pull/3042) fixes this, because it still uses the response from the catalog.
Thanks!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in pyiceberg/catalog/rest/__init__.py at the Table construction and inspect how REST catalog properties reach FileIO configuration. Trace the handling of s3.signer, then verify that an empty catalog property disables remote signing without breaking the existing response configuration behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100