Skip to content

Commit 2409eec

Browse files
feat!: Support for multiple Key Vaults
1 parent a522c75 commit 2409eec

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

src/Core/EnvironmentConfigurationExtension.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,10 @@ public static class EnvironmentConfigurationExtension
2323
/// <param name="configuration">Configuration Manager.</param>
2424
/// <param name="applicationName">Application name.</param>
2525
/// <param name="resourceGroupNameFunc">Function to build resource group name based in contemporary environment configuration.</param>
26-
/// <param name="keyVaultUriFunc">Function to build key vault Uri based in contemporary environment configuration.</param>
2726
/// <param name="applicationDescription">Application description.</param>
2827
/// <param name="managedIdentityResourceIdFunc">Function to build managed identity resource id based in contemporary environment configuration.</param>
28+
/// <param name="keyVaultUriFuncs">Function to build key vault URIs based in contemporary environment configuration.
29+
/// Secrets with the same key is overwritten by later URIs.</param>
2930
/// <returns>Environment Configuration</returns>
3031
/// <exception cref="NotSupportedException">If RuntimeEnvironment is unsupported.</exception>
3132
/// <exception cref="ArgumentException">If AZ is not authenticated.</exception>
@@ -35,9 +36,9 @@ public static EnvironmentConfiguration AddEnvironmentConfiguration(
3536
ConfigurationManager configuration,
3637
string applicationName,
3738
Func<EnvironmentConfiguration, string> resourceGroupNameFunc,
38-
Func<EnvironmentConfiguration, Uri>? keyVaultUriFunc = null,
3939
string applicationDescription = "N/A",
40-
Func<EnvironmentConfiguration, ResourceIdentifier>? managedIdentityResourceIdFunc = null)
40+
Func<EnvironmentConfiguration, ResourceIdentifier>? managedIdentityResourceIdFunc = null,
41+
params ICollection<Func<EnvironmentConfiguration, Uri>>? keyVaultUriFuncs)
4142
{
4243
ArgumentNullException.ThrowIfNull(resourceGroupNameFunc);
4344

@@ -69,9 +70,12 @@ public static EnvironmentConfiguration AddEnvironmentConfiguration(
6970

7071
if (environmentConfiguration.RuntimeEnvironment is
7172
RuntimeEnvironment.LocalDeveloperMachine or RuntimeEnvironment.Cloud
72-
&& keyVaultUriFunc is not null)
73+
&& keyVaultUriFuncs is not null)
7374
{
74-
configuration.AddAzureKeyVault(keyVaultUriFunc(environmentConfiguration), credential);
75+
foreach (var keyVaultUriFunc in keyVaultUriFuncs)
76+
{
77+
configuration.AddAzureKeyVault(keyVaultUriFunc(environmentConfiguration), credential);
78+
}
7579

7680
services.AddAzureClients(configure => configure.UseCredential(credential));
7781
}

0 commit comments

Comments
 (0)