public async Task <Secret> SetSecretAsync(string secretName, SecretSetParameters secretSetParameters) { if (secretSetParameters is null) { throw new ArgumentNullException(nameof(secretSetParameters)); } var id = Utilities.GenerateId(); var secret = new Secret { Name = secretName, ContentType = secretSetParameters.ContentType, Created = secretSetParameters.SecretAttributes?.Created, Enabled = secretSetParameters.SecretAttributes?.Enabled, Expires = secretSetParameters.SecretAttributes?.Expires, NotBefore = secretSetParameters?.SecretAttributes?.NotBefore, RecoveryLevel = DeletionRecoveryLevel.Purgeable, Tags = secretSetParameters.Tags?.Select(t => new Tag { Key = t.Key, Value = t.Value }).ToList(), Updated = secretSetParameters.SecretAttributes?.Updated, Value = secretSetParameters.Value, VersionId = id }; var entity = _dbContext.Add(secret); _ = await _dbContext.SaveChangesAsync().ConfigureAwait(false); return(secret); }
public async Task <IActionResult> SetSecret([FromRoute] string secretName, [FromBody] SecretSetParameters secretSetParameters) { var secret = await _secretsService.SetSecretAsync(secretName, secretSetParameters); if (secret is null) { } return(Ok(secret)); }
public async Task <SecretBundle> SetSecretAsync(string secretName, SecretSetParameters secretSetParameters) { var secret = await _secretsRepository.SetSecretAsync(secretName, secretSetParameters); return(new SecretBundle() { Attributes = new SecretAttributes(secret.Enabled, secret.NotBefore, secret.Expires, secret.Created, secret.Updated, secret.RecoveryLevel), ContentType = secret.ContentType, Id = $"http://localhost:{_portOptions.Port}/secrets/{secretName}/{secret.Id.ToString()}", Tags = secret.Tags?.ToDictionary(t => t.Key, t => t.Value), Value = secret.Value }); }
public async Task SetSecret_EndpointCreatesSecret() { var client = _factory.CreateClient(); var secretName = "someSecret"; var secretParameters = new SecretSetParameters { ContentType = MediaTypeNames.Text.Plain, Value = "someSecret" }; var serializedParameters = JsonSerializer.Serialize(secretParameters); StringContent request = new StringContent(serializedParameters, Encoding.UTF8, MediaTypeNames.Application.Json); var response = await client.PutAsync($"secrets/{secretName}", request); }