apache / apache/iceberg-python

feat: Automatic Vended Credential Refresh

Open
#3,506 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
1.1k
Forks
581
Avg merge
1d 17h
Merged PRs (30d)
78

Description

### Feature Request / Improvement

Today, long-running writes to PyIceberg risk failing when credentials expire mid-transaction. The Java implementation addressed this by adding a vended-credential refresh mechanism that calls a REST catalog endpoint to obtain new credentials whenever the current ones are within five minutes of expiring.

I propose a similar approach for PyIceberg, delivered in three separate PRs:

1. **VendedCredential class implementation** (largest diff) -> [PR](https://github.com/apache/iceberg-python/pull/3507) ready for review
2. **Credential refresh support in `PyArrowFileIO`** -> PR pending review and merge of 1
3. **Credential refresh support in `FsspecFileIO`** -> PR pending review and merge of 1

PRs 2 and 3 depend on PR 1, which provides the core vended-credential implementation.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing PR 3507, which contains the VendedCredential implementation and is the dependency for the remaining work. Then inspect the planned PyArrowFileIO and FsspecFileIO refresh support; the feature is complete when both integrations refresh credentials obtained from the REST catalog before expiry.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data-engineering
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.