import CloudProviderBase from './CloudProviderBase'; import { ManagedIdentityCredential } from '@azure/identity'; import { SecretClient } from '@azure/keyvault-secrets'; import AzureIdentity from '../enums/AzureIdentity'; export default class AzureKeyVaultProvider extends CloudProviderBase { private keyVaultClient: SecretClient; constructor(keyVaultName: string, identityType?: AzureIdentity) { super(); this.keyVaultClient = new SecretClient( this.getAzureKeyVaultUrl(keyVaultName), this.getAzureCredentials(identityType) ); } private getAzureKeyVaultUrl(keyVaultName: string): string { return `https://${keyVaultName}.vault.azure.net`; } public async getAll(): Promise> { return {}; } private getAzureCredentials(identityType?: AzureIdentity) { switch (identityType) { default: return new ManagedIdentityCredential(); } } protected async getSecretData(secretName: string) { const secret = await this.keyVaultClient.getSecret(secretName); return secret.value; } }