public void ShouldInstantiateConfigurationProvider() { var mockGrpcClient = new Mock <SecretManagerServiceClient>(); mockGrpcClient .Setup(e => e.ListSecretsAsync(new ProjectName(PROJECT_NAME), null, null, null)) .Returns(new MockPagedEnumerable()); var secretResponse = new AccessSecretVersionResponse() { Payload = new SecretPayload { Data = ByteString.FromBase64(System.Convert.ToBase64String(Encoding.UTF8.GetBytes("value"))) } }; mockGrpcClient .Setup(e => e.AccessSecretVersionAsync(new SecretVersionName(PROJECT_NAME, "param1", "latest"), null)) .Returns(Task.FromResult(secretResponse)); var configurationOptions = new SecretManagerConfigurationOptions { ProjectName = PROJECT_NAME }; var configurationSource = new SecretManagerConfigurationSource(configurationOptions); var provider = new SecretManagerConfigurationProvider(mockGrpcClient.Object, configurationSource); provider.Load(); Assert.True(provider.TryGet("param1", out var value)); Assert.Equal("value", value); }
public void AddsSecretVersions() { string data = "my secret data"; SecretName secretName = _fixture.Secret.SecretName; SecretVersion secretVersion = _sample.AddSecretVersion( projectId: secretName.ProjectId, secretId: secretName.SecretId, data: data); SecretManagerServiceClient client = SecretManagerServiceClient.Create(); AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersion.SecretVersionName); Assert.Equal(data, result.Payload.Data.ToStringUtf8()); }
public string getDbString() { if (dbConnectionString != null) { return(this.dbConnectionString); } else { const string secretId = "DatabaseConnectionString"; const string versionId = "3"; SecretVersionName secret = new SecretVersionName(projectId, secretId, versionId); AccessSecretVersionResponse result = client.AccessSecretVersion(secret); this.dbConnectionString = result.Payload.Data.ToStringUtf8(); return(this.dbConnectionString); } }
/// <summary> /// GetSecretValue /// Retrieve latest secret value /// </summary> /// <param name="secretKey"></param> /// <returns></returns> public string GetSecretValue(string secretKey) { // Create the client. SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the resource name. SecretVersionName secretVersionName = new SecretVersionName(_configuration.GcpProjectId, secretKey, "latest"); // Call the API. AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName); // Convert the payload to a string. Payloads are bytes by default. string payload = result.Payload.Data.ToStringUtf8(); return(payload); }
private string GetDBUserName() { // Create the client. SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the resource name. SecretVersionName secretVersionName = new SecretVersionName( "dev-office-294516", "db-user-name", "1"); // Call the API. AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName); // Convert the payload to a string. Payloads are bytes by default. return(result.Payload.Data.ToStringUtf8()); }
public String AccessSecretVersion( string projectId = "my-project", string secretId = "my-secret", string secretVersionId = "123") { // Create the client. SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the resource name. SecretVersionName secretVersionName = new SecretVersionName(projectId, secretId, secretVersionId); // Call the API. AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName); // Convert the payload to a string. Payloads are bytes by default. String payload = result.Payload.Data.ToStringUtf8(); return(payload); }
string GetDBPassword() { // Create the client. SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the resource name. SecretVersionName secretVersionName = new SecretVersionName( Environment.GetEnvironmentVariable("PROJECT"), Environment.GetEnvironmentVariable("SECRET_ID"), Environment.GetEnvironmentVariable("SECRET_VER")); // Call the API. AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName); // Convert the payload to a string. Payloads are bytes by default. return(result.Payload.Data.ToStringUtf8()); }
public SecretManagerConfigurationProviderTests() { _testSecrets = new List <Secret> { new Secret { SecretName = new SecretName(_secretProjectName, "SecretId1") }, new Secret { SecretName = new SecretName(_secretProjectName, "SecretId2") }, new Secret { SecretName = new SecretName(_secretProjectName, "SecretId3") }, new Secret { SecretName = new SecretName(_secretProjectName, "SecretId4") } }; _pagedResponse = new PagedEnumerableHelper <ListSecretsResponse, Secret>(_testSecrets); _mockClient = new Mock <SecretManagerServiceClient>(MockBehavior.Strict); _mockClient.Setup(x => x.ListSecrets(It.Is <ProjectName>(pn => pn.ProjectId == _projectName), null, null, null)) .Returns(_pagedResponse); foreach (var secret in _testSecrets) { var response = new AccessSecretVersionResponse { Payload = new SecretPayload { Data = Google.Protobuf.ByteString.CopyFromUtf8($"{secret.SecretName.SecretId}-Value") } }; _mockClient.Setup( x => x.AccessSecretVersionAsync( It.Is <SecretVersionName>(svn => svn.ProjectId == secret.SecretName.ProjectId && svn.SecretId == secret.SecretName.SecretId && svn.SecretVersionId == "latest"), null)) .ReturnsAsync(response); } _target = new SecretManagerConfigurationProvider(_mockClient.Object, new ProjectName(_projectName), new DefaultSecretManagerConfigurationLoader()); }
public void StoreSecret([FromForm] string projectId, [FromForm] string secretId) { IDatabase db = Connection.GetDatabase(); db.StringSet("name", "redis"); Console.WriteLine(db.StringGet("name")); //call SDK SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the parent project name. ProjectName projectName = new ProjectName(projectId); // Build the secret to create. Secret secret = new Secret { Replication = new Replication { Automatic = new Replication.Types.Automatic(), }, }; Secret createdSecret = client.CreateSecret(projectName, secretId, secret); // Build a payload. SecretPayload payload = new SecretPayload { Data = ByteString.CopyFrom("my super secret data", Encoding.UTF8), }; // Add a secret version. SecretVersion createdVersion = client.AddSecretVersion(createdSecret.SecretName, payload); // Access the secret version. AccessSecretVersionResponse result = client.AccessSecretVersion(createdVersion.SecretVersionName); // Print the resultszxcvbnj // // WARNING: Do not print secrets in production environments. This // snippet is for demonstration purposes only. string data = result.Payload.Data.ToStringUtf8(); Console.WriteLine($"Plaintext: {data}"); }
public string GetGoogleClientSecret() { SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the resource name. SecretVersionName secretVersionName = new SecretVersionName("protean-bus-312220", "ApiClientId", "3"); // Call the API. AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName); // Convert the payload to a string. Payloads are bytes by default. String payload = result.Payload.Data.ToStringUtf8(); dynamic keys = JsonConvert.DeserializeObject(payload); JObject jObject = JObject.Parse(payload); JToken jKey = jObject["Authentication:Google:ClientSecret"].ToString(); return(jKey.ToString()); }
public string GetSecret() { string secretName = "SqlUserSecret"; //string region = Configuration.GetValue<string>("AWSRegion"); var projectId = Configuration.GetValue <string>("projectid"); SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the resource name. SecretVersionName secretVersionName = new SecretVersionName(projectId, secretName, "latest"); // Call the API. AccessSecretVersionResponse result = client.AccessSecretVersion(secretVersionName); // Convert the payload to a string. Payloads are bytes by default. String payload = result.Payload.Data.ToStringUtf8(); return(payload); // Your code goes here. }
public void Quickstart(string projectId = "my-project", string secretId = "my-secret") { // Create the client. SecretManagerServiceClient client = SecretManagerServiceClient.Create(); // Build the parent project name. ProjectName projectName = new ProjectName(projectId); // Build the secret to create. Secret secret = new Secret { Replication = new Replication { Automatic = new Replication.Types.Automatic(), }, }; Secret createdSecret = client.CreateSecret(projectName, secretId, secret); // Build a payload. SecretPayload payload = new SecretPayload { Data = ByteString.CopyFrom("my super secret data", Encoding.UTF8), }; // Add a secret version. SecretVersion createdVersion = client.AddSecretVersion(createdSecret.SecretName, payload); // Access the secret version. AccessSecretVersionResponse result = client.AccessSecretVersion(createdVersion.SecretVersionName); // Print the results // // WARNING: Do not print secrets in production environments. This // snippet is for demonstration purposes only. string data = result.Payload.Data.ToStringUtf8(); Console.WriteLine($"Plaintext: {data}"); }
public void Should_FetcHierarchicalSecrets_When_LoadIsCalled() { var googleName = "Multi__Level__Secret"; var dotNetName = "Multi:Level:Secret"; var value = "SecretValue"; var response = new AccessSecretVersionResponse { Payload = new SecretPayload { Data = Google.Protobuf.ByteString.CopyFromUtf8(value) } }; _mockClient.Setup( x => x.AccessSecretVersionAsync( It.Is <SecretVersionName>(svn => svn.ProjectId == _secretProjectName && svn.SecretId == googleName && svn.SecretVersionId == "latest"), null)) .ReturnsAsync(response); _testSecrets.Add(new Secret { SecretName = new SecretName(_secretProjectName, googleName), }); var pagedResponse = new PagedEnumerableHelper <ListSecretsResponse, Secret>(_testSecrets); _mockClient.Setup(x => x.ListSecrets(It.Is <ProjectName>(pn => pn.ProjectId == _projectName), null, null, null)) .Returns(pagedResponse); _target.Load(); Assert.True(_target.TryGet(dotNetName, out var configValue)); Assert.Equal(value, configValue); }
public string GetSecret(string key) { AccessSecretVersionResponse result = client.AccessSecretVersion($"projects/807819608558/secrets/{key}/versions/latest"); return(result.Payload.Data.ToStringUtf8()); }