in lib/keyVaultConfigurationResolver.js [49:79]
function getSecret(keyVaultClient, secretStash, secretId, callback) {
const cached = secretStash.get(secretId);
if (cached) {
return callback(null, cached);
}
const secretUrl = new URL(secretId);
const vaultBaseUrl = secretUrl.origin;
const i = secretUrl.pathname.indexOf(secretsPath);
if (i < 0) {
return callback(new Error('The requested resource must be a KeyVault secret'));
}
let secretName = secretUrl.pathname.substr(i + secretsPath.length);
let version = '';
const versionIndex = secretName.indexOf('/');
if (versionIndex >= 0) {
version = secretName.substr(versionIndex + 1);
secretName = secretName.substr(0, versionIndex);
}
try {
keyVaultClient.getSecret(vaultBaseUrl, secretName, version, (getSecretError, secretResponse) => {
if (getSecretError) {
return callback(getSecretError);
}
secretStash.set(secretId, secretResponse);
return callback(null, secretResponse);
});
} catch (keyVaultValidationError) {
return callback(keyVaultValidationError);
}
}