public async Task FilenameFileSecretTest(SecretResolver secretResolver) { var secret = await secretResolver.ResolveSecretAsync(config.FilenameFileSecret); Assert.Equal("C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==", secret); Assert.Equal("TestString", config.TextValue); }
public async Task InitializeAsync() { Settings = config.For <CosmosDbConfiguration>("CosmosDB"); _secretResolver = new SecretResolver(); //Notes: // if using an azure instance to run the tests, make sure you set the environment variable before you start visual studio // Ex: CMD C:\> setx COSMOSDB_KEY ABCDEFGASD== // On CosmosDB, make sure you create the collection 'SampleEntity' in the database defined in the config 'Stacks' // To overrride the appsettings values, set the environment variable using SectionName__PropertyName. i.e: CosmosDB__DatabaseAccountUri // Note the use of a double _ between the section and the property name if (Environment.GetEnvironmentVariable(Settings.SecurityKeySecret.Identifier) == null) { //if localhost and running in visual studio if (Settings.DatabaseAccountUri.Contains("localhost", StringComparison.InvariantCultureIgnoreCase) && Environment.GetEnvironmentVariable("VisualStudioEdition") != null) { Environment.SetEnvironmentVariable(Settings.SecurityKeySecret.Identifier, this.Settings.PrimaryKey); } else { throw new ArgumentNullException( $"The environment variable '{Settings.SecurityKeySecret.Identifier}' has not been set"); } } string cosmosDbKey = await _secretResolver.ResolveSecretAsync(Settings.SecurityKeySecret); CosmosClient = new CosmosClient(Settings.DatabaseAccountUri, cosmosDbKey); await CosmosClient.CreateDatabaseIfNotExistsAsync(Settings.DatabaseName); Database database = CosmosClient.GetDatabase(Settings.DatabaseName); await database.CreateContainerIfNotExistsAsync(nameof(SampleEntity), $"/{nameof(SampleEntity.OwnerId)}"); }
public async Task ImplicitEnvironmentBasedSecretTest(SecretResolver secretResolver) { var secret = await secretResolver.ResolveSecretAsync(config.ImplicitEnvironmentSecret); Assert.Equal("PleaseDontTellAnyone", secret); Assert.Equal("TestString", config.TextValue); }
public DocumentDBRepository(IConfiguration config) { SecretResolver secrets = new SecretResolver(config); Endpoint = secrets.GetSecret("DBEndpoint").Result; Key = secrets.GetSecret("DBKey").Result; this.client = new DocumentClient(new Uri(Endpoint), Key); CreateDatabaseIfNotExistsAsync().Wait(); CreateCollectionIfNotExistsAsync().Wait(); }
public AzureBlobHistoryStore() { _secresolve = new SecretResolver(); CONTAINER = _secresolve.GetConfiguration("FHIRDB", "FHIR3").ToLower() + "-history"; CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_secresolve.GetSecret("StorageConnectionString").Result); // Create the table if it doesn't exist. CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); blob = blobClient.GetContainerReference(CONTAINER); blob.CreateIfNotExists(); }
//TODO: Inject Storage Implementation public ResourceController(IFHIRStore store) { _secresolve = new SecretResolver(); parsemode = _secresolve.GetConfiguration("FHIRParserMode", "open"); _strict = (parsemode == null || parsemode.Equals("strict", StringComparison.CurrentCultureIgnoreCase) ? true : false); this.storage = store; parsersettings = new ParserSettings(); parsersettings.AcceptUnknownMembers = !_strict; parsersettings.AllowUnrecognizedEnums = !_strict; jsonparser = new FhirJsonParser(parsersettings); xmlparser = new FhirXmlParser(parsersettings); }
public async Task RelativeFilenameFileSecretTest(SecretResolver secretResolver) { var tmpFile = "subfolder/secretfile.txt"; Directory.CreateDirectory("subfolder"); File.Copy("secretfile.txt", tmpFile, true); try { var secret = await secretResolver.ResolveSecretAsync(config.RelativeFilenameFileSecret); Assert.Equal("C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==", secret); } finally { File.Delete(tmpFile); } }
public AzureDocDBFHIRStore(IFHIRHistoryStore history) { _secresolve = new SecretResolver(); this.client = new DocumentClient(new Uri(_secresolve.GetSecret("DBStorageEndPointUri").Result), _secresolve.GetSecret("DBStoragePrimaryKey").Result, new ConnectionPolicy { ConnectionMode = ConnectionMode.Direct, ConnectionProtocol = Protocol.Tcp }); historystore = history; ParserSettings ps = new ParserSettings(); ps.AcceptUnknownMembers = true; ps.AllowUnrecognizedEnums = true; parser = new FhirJsonParser(ps); string DBSTORAGE = _secresolve.GetConfiguration("FHIRDBStorage"); fixeddb = (DBSTORAGE == null || DBSTORAGE.ToUpper().StartsWith("F")); int.TryParse(_secresolve.GetConfiguration("FHIRMAXDOCSIZE", "500000"), out imaxdocsize); DBName = _secresolve.GetConfiguration("FHIRDB", "FHIR3"); }
public async Task FullPathFileSecretTest(SecretResolver secretResolver) { var tmpFile = "secretfile.txt"; if (Environment.OSVersion.Platform == PlatformID.Win32NT) { Directory.CreateDirectory(config.WindowsTempFolder); tmpFile = Path.Combine(config.WindowsTempFolder, tmpFile); } else { Directory.CreateDirectory(config.LinuxTempFolder); tmpFile = Path.Combine(config.LinuxTempFolder, tmpFile); } File.Copy("secretfile.txt", tmpFile, true); try { var secret = string.Empty; if (Environment.OSVersion.Platform == PlatformID.Win32NT) { secret = await secretResolver.ResolveSecretAsync(config.WindowsFullPathFileSecret); } else { secret = await secretResolver.ResolveSecretAsync(config.LinuxFullPathFileSecret); } Assert.Equal("C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==", secret); Assert.Equal("TestString", config.TextValue); } finally { File.Delete(tmpFile); } }
public async Task NonExistentOptionalFileSecretTest(SecretResolver secretResolver) { var secret = await secretResolver.ResolveSecretAsync(config.NonExistentOptionalFileSecret); Assert.Null(secret); }
public async Task NonExistentRequiredFileSecretTest(SecretResolver secretResolver) { await Assert.ThrowsAsync <SecretNotFoundException>(async() => await secretResolver.ResolveSecretAsync(config.NonExistentRequiredFileSecret)); }