@@ -5,7 +5,7 @@ import { ConfigurationSetting, isSecretReference, parseSecretReference } from "@
55import { IKeyValueAdapter } from "../IKeyValueAdapter.js" ;
66import { KeyVaultOptions } from "./KeyVaultOptions.js" ;
77import { ArgumentError , KeyVaultReferenceError } from "../common/error.js" ;
8- import { SecretClient , parseKeyVaultSecretIdentifier } from "@azure/keyvault-secrets" ;
8+ import { KeyVaultSecretIdentifier , SecretClient , parseKeyVaultSecretIdentifier } from "@azure/keyvault-secrets" ;
99import { isRestError } from "@azure/core-rest-pipeline" ;
1010import { AuthenticationError } from "@azure/identity" ;
1111
@@ -29,32 +29,28 @@ export class AzureKeyVaultKeyValueAdapter implements IKeyValueAdapter {
2929 if ( ! this . #keyVaultOptions) {
3030 throw new ArgumentError ( "Failed to process the Key Vault reference because Key Vault options are not configured." ) ;
3131 }
32- let secretName , vaultUrl , sourceId , version ;
32+ let secretIdentifier : KeyVaultSecretIdentifier ;
3333 try {
34- const { name : parsedName , vaultUrl : parsedVaultUrl , sourceId : parsedSourceId , version : parsedVersion } = parseKeyVaultSecretIdentifier (
34+ secretIdentifier = parseKeyVaultSecretIdentifier (
3535 parseSecretReference ( setting ) . value . secretId
3636 ) ;
37- secretName = parsedName ;
38- vaultUrl = parsedVaultUrl ;
39- sourceId = parsedSourceId ;
40- version = parsedVersion ;
4137 } catch ( error ) {
4238 throw new KeyVaultReferenceError ( buildKeyVaultReferenceErrorMessage ( "Invalid Key Vault reference." , setting ) , { cause : error } ) ;
4339 }
4440
4541 try {
4642 // precedence: secret clients > credential > secret resolver
47- const client = this . #getSecretClient( new URL ( vaultUrl ) ) ;
43+ const client = this . #getSecretClient( new URL ( secretIdentifier . vaultUrl ) ) ;
4844 if ( client ) {
49- const secret = await client . getSecret ( secretName , { version } ) ;
45+ const secret = await client . getSecret ( secretIdentifier . name , { version : secretIdentifier . version } ) ;
5046 return [ setting . key , secret . value ] ;
5147 }
5248 if ( this . #keyVaultOptions. secretResolver ) {
53- return [ setting . key , await this . #keyVaultOptions. secretResolver ( new URL ( sourceId ) ) ] ;
49+ return [ setting . key , await this . #keyVaultOptions. secretResolver ( new URL ( secretIdentifier . sourceId ) ) ] ;
5450 }
5551 } catch ( error ) {
5652 if ( isRestError ( error ) || error instanceof AuthenticationError ) {
57- throw new KeyVaultReferenceError ( buildKeyVaultReferenceErrorMessage ( "Failed to resolve Key Vault reference." , setting , sourceId ) , { cause : error } ) ;
53+ throw new KeyVaultReferenceError ( buildKeyVaultReferenceErrorMessage ( "Failed to resolve Key Vault reference." , setting , secretIdentifier . sourceId ) , { cause : error } ) ;
5854 }
5955 throw error ;
6056 }
0 commit comments