Skip to content

[Cherry-pick to branch-1.3] [#14031] fix(flink-connector): Validate credential providers for Iceberg non-REST backends (#14032) - #14132

Open
github-actions[bot] wants to merge 2 commits into
branch-1.3from
cherry-pick-f5599094-to-branch-1.3
Open

github-actions[bot] wants to merge 2 commits into
branch-1.3from
cherry-pick-f5599094-to-branch-1.3

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Cherry-pick Information:

  • Original commit: f559909
  • Target branch: branch-1.3
  • Status: ✅ Conflicts resolved manually

…erg non-REST backends (#14032)

### What changes were proposed in this pull request?

For Iceberg catalogs with a non-REST backend, the Flink connector now
checks `credential-providers` when it opens the catalog:

- `aws-irsa` is rejected, because its catalog-level credential is
injected once and expires after `s3-token-expire-in-secs`.
- `s3-token`, `gcs-token`, `adls-token`, `oss-token` and `cos-token` log
a warning, because they vend nothing at catalog level and Iceberg falls
back to the credentials on the Flink nodes.
- REST backends are not affected.

The docs now state that Flink only receives static credentials for
non-REST backends, and that per-table refreshable credentials require a
REST backend with `data-access=vended-credentials`.

### Why are the changes needed?

The Flink connector fetches catalog-level credentials once and never
refreshes them. With `aws-irsa`, jobs fail with `ExpiredToken` after
about an hour; with the other token providers, Flink silently gets no
credential, while the docs claim credentials are consumed automatically.

Fix: #14031

### Does this PR introduce _any_ user-facing change?

Yes. Loading an Iceberg catalog with a Hive or JDBC backend and
`aws-irsa` now fails in Flink. Token providers only log a warning.

### How was this patch tested?

Added unit tests in `TestGravitinoIcebergCatalog`.
# Conflicts:
#	docs/security/credential-vending.md
#	flink-connector/flink-common/src/main/java/org/apache/gravitino/flink/connector/iceberg/GravitinoIcebergCatalog.java
@github-actions github-actions Bot added cherry-pick Automatically opened cherry-pick PR cherry-pick-conflict Cherry-pick has conflicts; needs human resolution before merge labels Oct 22, 2026
@github-actions
github-actions Bot requested a review from jerryshao October 22, 2026 05:17
@diqiu50 diqiu50 changed the title [DO NOT MERGE] [Cherry-pick to branch-1.3] [#14031] fix(flink-connector): Validate credential providers for Iceberg non-REST backends (#14032) [Cherry-pick to branch-1.3] [#14031] fix(flink-connector): Validate credential providers for Iceberg non-REST backends (#14032) Oct 22, 2026
@diqiu50 diqiu50 removed the cherry-pick-conflict Cherry-pick has conflicts; needs human resolution before merge label Oct 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cherry-pick Automatically opened cherry-pick PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant