Skip to content

feat: cache resolved catalog access per Storage client - #361

Open
konstantinoscs wants to merge 1 commit into
feature/tow-2641-create-towerstorageclientfrom
feature/tow-2644-support-inheritance-and-caching-of-credentials-on-the-sdk
Open

feat: cache resolved catalog access per Storage client#361
konstantinoscs wants to merge 1 commit into
feature/tow-2641-create-towerstorageclientfrom
feature/tow-2644-support-inheritance-and-caching-of-credentials-on-the-sdk

Conversation

@konstantinoscs

@konstantinoscskonstantinoscs commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Keep the catalog owner returned with vended credentials, so inherited and local resolutions stay distinct.
  • Move credential caching into each StorageClient, with expiry-aware reuse and one vend for concurrent requests for the same catalog.
  • Reject owner changes when renewing or escalating access that is already bound to a catalog, and validate returned mode and environment before caching.

Why

This establishes the resolved-access boundary needed by the next phase: a public load_catalog API can reuse one client safely, and the Tables SDK can later delegate read-to-write escalation without silently switching catalog ownership. Public exports and Tables integration remain out of scope for this PR.

Testing

  • 69 focused Storage and Tables tests
  • 243 full-suite tests passed, 10 skipped
  • Black, Ruff, mypy, and diff checks
  • Supported minimum and latest PyArrow compatibility checks

Stack

Depends on #359.


Stack created with GitHub Stacks CLIGive Feedback 💬

Retain the catalog owner returned with vended credentials so inherited and local resolutions remain distinct. Move credential caching into StorageClient, single-flight concurrent vends, and reject owner changes for bound renewals and escalations.
@coderabbitai

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: eac16a2f-ae5d-40e6-a791-fcc95af36c33

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

Sign up for freeto 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.

1 participant

@konstantinoscs