apache / apache/iceberg-python
Allow disabling remote signing in REST Catalog
- Vorherrschende Sprache
- Python
- Sterne
- 1.1k
- Forks
- 581
- Ø Merge
- 1 T. 17 Std.
- Gemergte PRs (30 T.)
- 77
Beschreibung
### 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!
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne in pyiceberg/catalog/rest/__init__.py bei der Table-Konstruktion und untersuche, wie REST-Katalogeigenschaften die FileIO-Konfiguration erreichen. Verfolge die Behandlung von s3.signer und überprüfe anschließend, dass eine leere Katalogeigenschaft das Remote-Signing deaktiviert, ohne das bestehende Verhalten der Response-Konfiguration zu beeinträchtigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- api, backend
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 68/100