public async Task LoadAsync()
        {
            var secrets = _client.ListSecrets(_projectName);

            foreach (var secret in secrets)
            {
                try
                {
                    if (!_loader.Load(secret))
                    {
                        continue;
                    }

                    var secretVersionName = new SecretVersionName(secret.SecretName.ProjectId,
                                                                  secret.SecretName.SecretId, "latest");
                    var secretVersion = await _client.AccessSecretVersionAsync(secretVersionName);

                    Set(_loader.GetKey(secret), secretVersion.Payload.Data.ToStringUtf8());
                }
                catch (Grpc.Core.RpcException)
                {
                    // This might happen if secret is created but it has no versions available
                    // For now just ignore. Maybe in future we should log that something went wrong?
                }
            }
        }
        public async Task <string> GetSecretValueAsync(string projectId, string secretId, string secretVersionId)
        {
            var secretName = new SecretVersionName(projectId, secretId, secretVersionId);
            var secret     = await SecretManagerClient.AccessSecretVersionAsync(secretName);

            return(secret.Payload.Data.ToStringUtf8());
        }
Beispiel #3
0
        public IActionResult GetVersion(string id, string versionId)
        {
            var client = SecretManagerServiceClient.Create();

            var secretVersionName = new SecretVersionName(ProjectId, id, versionId);

            return(Ok(client.GetSecretVersion(secretVersionName)));
        }
Beispiel #4
0
        public IActionResult AccessVersion(string id, string versionId)
        {
            var client = SecretManagerServiceClient.Create();

            var secretVersionName = new SecretVersionName(ProjectId, id, versionId);

            return(Ok(client.AccessSecretVersion(secretVersionName).Payload.Data.ToStringUtf8()));
        }
    public void DisablesSecretVersions()
    {
        SecretVersionName secretVersionName = _fixture.SecretVersionToDisable.SecretVersionName;
        SecretVersion     secretVersion     = _sample.DisableSecretVersion(
            projectId: secretVersionName.ProjectId, secretId: secretVersionName.SecretId, secretVersionId: secretVersionName.SecretVersionId);

        Assert.Equal(SecretVersion.Types.State.Disabled, secretVersion.State);
    }
Beispiel #6
0
        public void DeleteVersion(string id, string versionId)
        {
            var client = SecretManagerServiceClient.Create();

            var secretVersionName = new SecretVersionName(ProjectId, id, versionId);

            client.DestroySecretVersion(secretVersionName);
        }
Beispiel #7
0
    public void AddsSecretVersions()
    {
        SecretVersionName secretVersionName = _fixture.SecretVersion.SecretVersionName;
        string            result            = _sample.AccessSecretVersion(
            projectId: secretVersionName.ProjectId, secretId: secretVersionName.SecretId, secretVersionId: secretVersionName.SecretVersionId);

        Assert.Equal("my super secret data", result);
    }
Beispiel #8
0
    public void GetsSecretVersions()
    {
        SecretVersionName secretVersionName = _fixture.SecretVersion.SecretVersionName;
        SecretVersion     result            = _sample.GetSecretVersion(
            projectId: secretVersionName.ProjectId, secretId: secretVersionName.SecretId, secretVersionId: secretVersionName.SecretVersionId);

        Assert.Equal(result.SecretVersionName.SecretVersionId, secretVersionName.SecretVersionId);
    }
Beispiel #9
0
    public SecretVersion GetSecretVersion(
        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.
        SecretVersion version = client.GetSecretVersion(secretVersionName);

        return(version);
    }
Beispiel #10
0
 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);
     }
 }
Beispiel #11
0
        /// <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);
        }
Beispiel #12
0
        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);
    }
Beispiel #14
0
        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());
        }
Beispiel #15
0
        private async Task LoadAsync()
        {
            logger.LogDebug($"Loading secrets from project: {projectName}");

            var secrets = client.ListSecretsAsync(projectName);

            await foreach (var secret in secrets)
            {
                var secretVersionName = new SecretVersionName(secret.SecretName.ProjectId, secret.SecretName.SecretId, "latest");

                logger.LogDebug($"Loading secret: {secretVersionName}");

                var version = await client.AccessSecretVersionAsync(secretVersionName);

                var payload = version.Payload.Data.ToStringUtf8();

                Data.Add(secret.SecretName.SecretId, payload);
            }
        }
Beispiel #16
0
        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());
        }
Beispiel #17
0
        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 override void Load()
        {
            var client = SecretManagerServiceClient.Create();

            var clientIdSecretName = new SecretVersionName(GcpProjectId, "Authentication__ClientId", "latest");
            var clientId           = client.AccessSecretVersion(clientIdSecretName)?.Payload?.Data?.ToStringUtf8();

            if (!string.IsNullOrEmpty(clientId))
            {
                _config["Authentication:ClientId"] = clientId;
            }

            var clientSecretSecretName = new SecretVersionName(GcpProjectId, "Authentication__ClientSecret", "latest");
            var clientSecret           = client.AccessSecretVersion(clientSecretSecretName)?.Payload?.Data?.ToStringUtf8();

            if (!string.IsNullOrEmpty(clientSecret))
            {
                _config["Authentication:ClientSecret"] = clientSecret;
            }

            base.Load();
        }