public SecretManager(string secretsPath, IKeyValueConverterFactory keyValueConverterFactory, bool createHostSecretsIfMissing = false) { _secretsPath = secretsPath; _hostSecretsPath = Path.Combine(_secretsPath, ScriptConstants.HostMetadataFileName); _keyValueConverterFactory = keyValueConverterFactory; Directory.CreateDirectory(_secretsPath); _fileWatcher = new FileSystemWatcher(_secretsPath, "*.json") { IncludeSubdirectories = true, EnableRaisingEvents = true }; _fileWatcher.Changed += OnChanged; _fileWatcher.Created += OnChanged; _fileWatcher.Deleted += OnChanged; _fileWatcher.Renamed += OnChanged; if (createHostSecretsIfMissing) { // The SecretManager implementation of GetHostSecrets will // create a host secret if one is not present. GetHostSecrets(); } }
public override ScriptSecrets Refresh(IKeyValueConverterFactory factory) { var secrets = new HostSecrets { MasterKey = factory.WriteKey(MasterKey), FunctionKeys = FunctionKeys.Select(k => factory.WriteKey(k)).ToList() }; return secrets; }
public override ScriptSecrets Refresh(IKeyValueConverterFactory factory) { var secrets = new HostSecrets { MasterKey = factory.WriteKey(MasterKey), FunctionKeys = FunctionKeys.Select(k => factory.WriteKey(k)).ToList() }; return(secrets); }
public SecretManager(ISecretsRepository repository, IKeyValueConverterFactory keyValueConverterFactory, ILogger logger, bool createHostSecretsIfMissing = false) { _repository = repository; _keyValueConverterFactory = keyValueConverterFactory; _repository.SecretsChanged += OnSecretsChanged; _logger = logger; if (createHostSecretsIfMissing) { // The SecretManager implementation of GetHostSecrets will // create a host secret if one is not present. GetHostSecretsAsync().GetAwaiter().GetResult(); } }
public SecretManager(ISecretsRepository repository, IKeyValueConverterFactory keyValueConverterFactory, ILogger logger, IMetricsLogger metricsLogger, HostNameProvider hostNameProvider, StartupContextProvider startupContextProvider) { _repository = repository ?? throw new ArgumentNullException(nameof(repository)); _keyValueConverterFactory = keyValueConverterFactory ?? throw new ArgumentNullException(nameof(keyValueConverterFactory)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _metricsLogger = metricsLogger ?? throw new ArgumentNullException(nameof(metricsLogger)); _hostNameProvider = hostNameProvider ?? throw new ArgumentNullException(nameof(hostNameProvider)); _startupContextProvider = startupContextProvider ?? throw new ArgumentNullException(nameof(startupContextProvider)); _repositoryClassName = _repository.GetType().Name.ToLower(); _repository.SecretsChanged += OnSecretsChanged; InitializeCache(); }
public SecretManager(ISecretsRepository repository, IKeyValueConverterFactory keyValueConverterFactory, TraceWriter traceWriter, ILoggerFactory loggerFactory, bool createHostSecretsIfMissing = false) { _repository = repository; _keyValueConverterFactory = keyValueConverterFactory; _traceWriter = traceWriter; _repository.SecretsChanged += OnSecretsChanged; _logger = loggerFactory?.CreateLogger(ScriptConstants.LogCategoryHostGeneral); if (createHostSecretsIfMissing) { // The SecretManager implementation of GetHostSecrets will // create a host secret if one is not present. GetHostSecretsAsync().GetAwaiter().GetResult(); } }
public SecretManager(ISecretsRepository repository, IKeyValueConverterFactory keyValueConverterFactory, ILogger logger, IMetricsLogger metricsLogger, bool createHostSecretsIfMissing = false) { _repository = repository; _keyValueConverterFactory = keyValueConverterFactory; _repository.SecretsChanged += OnSecretsChanged; _logger = logger; _metricsLogger = metricsLogger ?? throw new ArgumentNullException(nameof(metricsLogger)); _repositoryClassName = _repository.GetType().Name.ToLower(); if (createHostSecretsIfMissing) { // The SecretManager implementation of GetHostSecrets will // create a host secret if one is not present. GetHostSecretsAsync().GetAwaiter().GetResult(); } }
public SecretManager(string secretsPath, IKeyValueConverterFactory keyValueConverterFactory, TraceWriter traceWriter, bool createHostSecretsIfMissing = false) { _traceWriter = traceWriter.WithSource(ScriptConstants.TraceSourceSecretManagement); _secretsPath = secretsPath; _hostSecretsPath = Path.Combine(_secretsPath, ScriptConstants.HostMetadataFileName); _keyValueConverterFactory = keyValueConverterFactory; Directory.CreateDirectory(_secretsPath); _fileWatcher = new AutoRecoveringFileSystemWatcher(_secretsPath, "*.json"); _fileWatcher.Changed += OnChanged; if (createHostSecretsIfMissing) { // The SecretManager implementation of GetHostSecrets will // create a host secret if one is not present. GetHostSecrets(); } }
public abstract ScriptSecrets Refresh(IKeyValueConverterFactory factory);
public override ScriptSecrets Refresh(IKeyValueConverterFactory factory) { var keys = Keys.Select(k => factory.GetValueWriter(k).WriteValue(k)).ToList(); return(new FunctionSecrets(keys)); }
public override ScriptSecrets Refresh(IKeyValueConverterFactory factory) { var keys = Keys.Select(k => factory.GetValueWriter(k).WriteValue(k)).ToList(); return new FunctionSecrets(keys); }
public static Key WriteKey(this IKeyValueConverterFactory factory, Key key) { IKeyValueWriter writer = factory.GetValueWriter(key); return(writer.WriteValue(key)); }
public static Key ReadKey(this IKeyValueConverterFactory factory, Key key) { IKeyValueReader reader = factory.GetValueReader(key); return(reader.ReadValue(key)); }
private SecretManager CreateSecretManager(string secretsPath, ILogger logger = null, IMetricsLogger metricsLogger = null, IKeyValueConverterFactory keyConverterFactory = null, bool createHostSecretsIfMissing = false, bool simulateWriteConversion = true, bool setStaleValue = true) { logger = logger ?? _logger; metricsLogger = metricsLogger ?? new TestMetricsLogger(); if (keyConverterFactory == null) { Mock <IKeyValueConverterFactory> mockValueConverterFactory = GetConverterFactoryMock(simulateWriteConversion, setStaleValue); keyConverterFactory = mockValueConverterFactory.Object; } ISecretsRepository repository = new FileSystemSecretsRepository(secretsPath); var secretManager = new SecretManager(repository, keyConverterFactory, logger, metricsLogger, _hostNameProvider, _startupContextProvider); if (createHostSecretsIfMissing) { secretManager.GetHostSecretsAsync().GetAwaiter().GetResult(); } return(secretManager); }