Skip to content

fix(connectors): support default credential provider chain for iceberg sink#3045

Open
gomnitrix wants to merge 1 commit intoapache:masterfrom
gomnitrix:fix-2911
Open

fix(connectors): support default credential provider chain for iceberg sink#3045
gomnitrix wants to merge 1 commit intoapache:masterfrom
gomnitrix:fix-2911

Conversation

@gomnitrix
Copy link
Copy Markdown
Contributor

@gomnitrix gomnitrix commented Mar 29, 2026

Which issue does this PR close?

Closes #2911

Rationale

Production environments prefer the default credential provider chain over static keys, which the Iceberg Sink connector currently lacks support for.

What changed?

The Iceberg Sink connector previously failed to initialize if store_access_key_id and store_secret_access_key were missing from the config, blocking the use of standard identity-based auth. This fix makes these config fields optional, allowing the underlying OpenDAL seamlessly fall back to the default credential provider chain. An isolated integration test was also added to verify this fallback behavior using environment variables.

Local Execution

  • Passed
  • Pre-commit hooks ran

AI Usage

  1. Which tools? Gemini 3.1 Pro
  2. Scope of usage? Paired to implement the iceberg_sink_uses_default_credential_chain integration test.
  3. How did you verify the generated code works correctly? Verified the test logic and ensured it correctly polls Iceberg snapshots without explicit static access key config.
  4. Can you explain every line of the code if asked? yes

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.75%. Comparing base (411a697) to head (b324786).

Additional details and impacted files
@@            Coverage Diff            @@
##             master    #3045   +/-   ##
=========================================
  Coverage     71.74%   71.75%           
  Complexity      943      943           
=========================================
  Files          1121     1121           
  Lines         93800    93826   +26     
  Branches      71124    71150   +26     
=========================================
+ Hits          67301    67323   +22     
+ Misses        23863    23862    -1     
- Partials       2636     2641    +5     
Components Coverage Δ
Rust Core 72.36% <100.00%> (+<0.01%) ⬆️
Java SDK 62.30% <ø> (ø)
C# SDK 67.64% <ø> (ø)
Python SDK 81.43% <ø> (ø)
Node SDK 91.31% <ø> (ø)
Go SDK 38.68% <ø> (ø)
Files with missing lines Coverage Δ
core/connectors/sinks/iceberg_sink/src/lib.rs 100.00% <ø> (ø)
core/connectors/sinks/iceberg_sink/src/props.rs 95.34% <100.00%> (+7.11%) ⬆️
core/connectors/sinks/iceberg_sink/src/sink.rs 100.00% <ø> (ø)

... and 15 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support default credential provider chain for Iceberg sink storage authentication

1 participant