public static async Task InitializeApplicationInsights(this IHostingEnvironment env, GatewayConfiguration configuration) { //Needs to be done in the initial Startup.Startup() method because Application Insights registers itself prior //to ConfigureServices being run var instrumentationKeyName = ThrowIf.NullOrWhiteSpace(configuration.KeyVault.InstrumentationKeyName, nameof(configuration.KeyVault.InstrumentationKeyName)); if (configuration.ApplicationInsights == null) { configuration.ApplicationInsights = new Shared.Configuration.ApplicationInsights.ApplicationInsightsConfig(); } var secrets = new AzureSecretVault( new KeyVaultConfiguration( configuration.ClientId, configuration.ClientSecret, configuration.KeyVault.VaultName ) ); configuration.ApplicationInsights.InstrumentationKey = await secrets.Get(instrumentationKeyName).ConfigureAwait(continueOnCapturedContext: false); }
public GitHubConfig(IConfigurationRoot config, ILoggerFactory loggerFactory) { var section = config.GetSection(TokenConfigKey); _token = section.Value; if (String.IsNullOrEmpty(_token)) { var clientId = ThrowIf.NullOrWhiteSpace(config[ConfigurationClientIdKey], nameof(ConfigurationClientIdKey)); var clientSecret = ThrowIf.NullOrWhiteSpace(config[ConfigurationClientSecretKey], nameof(ConfigurationClientSecretKey)); var vaultName = ThrowIf.NullOrWhiteSpace(config[ConfigurationVaultNameKey], nameof(ConfigurationVaultNameKey)); var tokenName = ThrowIf.NullOrWhiteSpace(config[ConfigurationGithubTokenNameKey], nameof(ConfigurationGithubTokenNameKey)); var keyVaultConfig = new KeyVaultConfiguration(clientId, clientSecret, vaultName); var keyVault = new AzureSecretVault(keyVaultConfig); _token = keyVault.Get(tokenName).Result; } ThrowIf.NullOrWhiteSpace(_token, TokenConfigKey); RepositoryName = ThrowIf.NullOrWhiteSpace(config[RepositoryNameConfigKey], nameof(RepositoryNameConfigKey)); RepositoryOwner = ThrowIf.NullOrWhiteSpace(config[RepositoryOwnerConfigKey], nameof(RepositoryOwnerConfigKey)); _logger = loggerFactory.CreateLogger <GitHubConfig>(); }
public static AzureSecretVault InitializeApplicationInsights(this IHostingEnvironment env, IConfigurationRoot configuration) { //Needs to be done in the initial Startup.Startup() method because Application Insights registers itself prior //to ConfigureServices being run var secrets = new AzureSecretVault( new KeyVaultConfiguration( configuration["ClientId"], configuration["ClientSecret"], configuration["KeyVault:VaultName"] ) ); var instrumentationKey = configuration.GetSection("KeyVault")["InstrumentationKeyName"]; if (!string.IsNullOrWhiteSpace(instrumentationKey)) { var vaultTask = secrets.Get(instrumentationKey); vaultTask.Wait(); configuration.GetSection("ApplicationInsights")["InstrumentationKey"] = vaultTask.Result; } return(secrets); }