Skip to content

Core, AWS, Spark: Implement storage-refresh-token support#15899

Open
manisin wants to merge 3 commits intoapache:mainfrom
manisin:cred-refresh-impl
Open

Core, AWS, Spark: Implement storage-refresh-token support#15899
manisin wants to merge 3 commits intoapache:mainfrom
manisin:cred-refresh-impl

Conversation

@manisin
Copy link
Copy Markdown
Contributor

@manisin manisin commented Apr 6, 2026

Summary

Implements client-side support for the storage-refresh-token credential refresh flow specified in #15280.

Core changes:

  • StorageCredential / ImmutableStorageCredential: Add storageRefreshToken() accessor and 3-argument create() factory method
  • Credential (REST model): Add storageRefreshToken field with Immutables support
  • CredentialParser: Serialize/deserialize storage-refresh-token in JSON
  • RESTSessionCatalog: Propagate refresh token through both the SupportsStorageCredentials and CatalogUtil.loadFileIO credential paths
  • RESTCatalogProperties: Add REST_STORAGE_REFRESH_TOKEN constant

AWS changes:

  • S3FileIO: Pass storageRefreshToken into per-prefix client properties and use the 3-arg StorageCredential.create() during credential refresh
  • VendedCredentialsProvider: Send storageRefreshToken as a query parameter on credential fetch requests (mutually exclusive with planId)

Tests:

  • TestStorageCredentialRefresh: End-to-end credential refresh flow against an embedded REST catalog (core)
  • TestStagedTableCredentialRefreshE2E: Spark integration test for staged table credential refresh
  • Extended TestCredentialParser, TestLoadCredentialsResponseParser, TestStorageCredential, TestVendedCredentialsProvider, TestS3FileIOCredentialRefresh

Depends on: #15280

@stevenzwu stevenzwu changed the title Implementation for storage-refresh-token support Core, AWS: Implement storage-refresh-token support Apr 7, 2026
@stevenzwu stevenzwu changed the title Core, AWS: Implement storage-refresh-token support Core, AWS, Spark: Implement storage-refresh-token support Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant