Skip to content

Optimization for concurrent Key Vault Ref resolution - deduplicate requests to the same secret#328

Open
linglingye001 wants to merge 1 commit into
mainfrom
linglingye/dedup-key-vault-ref
Open

Optimization for concurrent Key Vault Ref resolution - deduplicate requests to the same secret#328
linglingye001 wants to merge 1 commit into
mainfrom
linglingye/dedup-key-vault-ref

Conversation

@linglingye001

Copy link
Copy Markdown
Member

No description provided.

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 adds in-flight request deduplication to Key Vault secret resolution so that concurrent configuration settings referencing the same secret URI don’t trigger redundant Key Vault (or resolver) calls.

Changes:

  • Added an in-flight promise map in AzureKeyVaultSecretProvider.getSecretValue() to deduplicate concurrent secret fetches by secret identifier.
  • Added test coverage validating deduplication in parallel and sequential modes, secret-version independence, failure behavior, and refresh behavior.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
src/keyvault/keyVaultSecretProvider.ts Introduces in-flight request deduplication for identical secret identifiers and ensures in-flight entries are cleared after completion.
test/keyvault.test.ts Adds a new test suite covering request deduplication behavior across parallel/sequential resolution, versions, failures, and refresh rounds.

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

Comment thread test/keyvault.test.ts
Comment on lines +295 to +296
await sleepInMs(60_000 + 100);
await settings.refresh();
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.

2 participants