Skip to content

Expose retry configuration for all clients - #144

Merged
aerimagne merged 2 commits into
mainfrom
add-missing-retries
Jun 1, 2026
Merged

Expose retry configuration for all clients#144
aerimagne merged 2 commits into
mainfrom
add-missing-retries

Conversation

@aerimagne

Copy link
Copy Markdown
Collaborator

Added RetryOptions to frontend clients as well and fixed issues that were left by the previous PR

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends retry configuration support to frontend/client-side transfers across storage implementations by introducing a retry-capable URL transfer client, wiring retry options through DI bindings, and propagating retry settings into underlying SDK clients where applicable.

Changes:

  • Introduces FrontendUrlTransferClient (axios-based) and routes all frontend URL uploads/downloads through it so retries can be configured consistently.
  • Adds FrontendStorageBindingsConfig (with retryOptions) and updates frontend DI bindings (S3/Minio/OSS/Google/Azure) to pass retry options into wrappers and URL transfer client.
  • Bumps lockstep package versions to 3.1.1 and updates/extends DI Types to include new frontend config symbols and urlTransferClient.

Reviewed changes

Copilot reviewed 35 out of 35 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
storage/s3/src/frontend/wrappers/FrontendS3ClientWrapperFactory.ts Accepts retry options and forwards them into S3 client creation.
storage/s3/src/frontend/S3FrontendStorageBindings.ts Registers frontend binding config + URL transfer client with retry options via DI.
storage/s3/src/frontend/S3FrontendStorage.ts Switches URL transfers to use injected FrontendUrlTransferClient.
storage/s3/src/common/Types.ts Adds S3Frontend.config DI symbol.
storage/s3/package.json Version bump to 3.1.1.
storage/oss/src/frontend/wrappers/FrontendOssS3ClientFactory.ts Extends S3 frontend wrapper factory and forwards retry options.
storage/oss/src/frontend/OssFrontendStorageBindings.ts Passes retry options into OSS wrapper factory via S3 frontend config.
storage/oss/src/frontend/internal/Helpers.ts Adds retry option mapping to AWS SDK maxAttempts.
storage/oss/package.json Version bump and modifies integration-test scripts.
storage/minio/src/frontend/wrappers/FrontendMinioS3ClientFactory.ts Extends S3 frontend wrapper factory and forwards retry options.
storage/minio/src/frontend/MinioFrontendStorageBindings.ts Uses DI-provided URL transfer client and forwards retry options to wrapper factory.
storage/minio/src/frontend/MinioFrontendStorage.ts Threads FrontendUrlTransferClient to Minio URL upload helper.
storage/minio/src/frontend/internal/Helpers.ts Adds retry option mapping to AWS SDK maxAttempts and uses FrontendUrlTransferClient for URL upload.
storage/minio/package.json Version bump to 3.1.1.
storage/google/src/frontend/GoogleFrontendStorageBindings.ts Registers frontend binding config + URL transfer client with retry options via DI.
storage/google/src/frontend/GoogleFrontendStorage.ts Uses injected FrontendUrlTransferClient for URL uploads/downloads.
storage/google/src/common/Types.ts Adds GoogleFrontend.config DI symbol.
storage/google/package.json Version bump to 3.1.1.
storage/core/src/frontend/internal/index.ts Exports new FrontendUrlTransferClient.
storage/core/src/frontend/internal/Helpers.ts Removes direct axios URL transfer helpers (moved into new client).
storage/core/src/frontend/internal/FrontendUrlTransferClient.ts New retry-capable frontend URL transfer client.
storage/core/src/frontend/FrontendStorageDependency.ts Uses FrontendStorageBindingsConfig for strategy registration typing.
storage/core/src/frontend/FrontendInterfaces.ts Adds FrontendStorageBindingsConfig with optional retryOptions.
storage/core/src/common/Types.ts Adds Types.Frontend.urlTransferClient DI token.
storage/core/package.json Version bump to 3.1.1.
storage/azure/src/server/wrappers/BlockBlobClientWrapperFactory.ts Adds retry options to BlockBlob client construction (server).
storage/azure/src/server/wrappers/BlobServiceClientWrapperFactory.ts Centralizes Azure retry formatting via helper.
storage/azure/src/frontend/wrappers/FrontendBlockBlobClientWrapperFactory.ts Adds retry options to BlockBlob client construction (frontend).
storage/azure/src/frontend/AzureFrontendStorageBindings.ts Registers frontend binding config + URL transfer client and passes retry options to wrapper factory.
storage/azure/src/common/Types.ts Adds AzureClient.config and AzureFrontend.config DI symbols.
storage/azure/src/common/internal/Helpers.ts Adds formatRetryOptions helper for Azure SDK pipeline options.
storage/azure/src/client/AzureClientStorageBindings.ts Adds client bindings config with retry options and wires into wrapper factory.
storage/azure/package.json Version bump to 3.1.1.
common/config/rush/version-policies.json Lockstep version bump to 3.1.1.
cloud-agnostic/core/package.json Version bump to 3.1.1.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread storage/core/src/frontend/internal/FrontendUrlTransferClient.ts
Comment thread storage/oss/package.json
@aerimagne
aerimagne merged commit 9cbc923 into main Jun 1, 2026
6 checks passed
@aerimagne
aerimagne deleted the add-missing-retries branch June 1, 2026 10:08
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.

3 participants