Files
OTSSignsOrchestrator/OTSSignsOrchestrator.Core/Services/IBitwardenSecretService.cs

50 lines
1.5 KiB
C#
Raw Normal View History

namespace OTSSignsOrchestrator.Core.Services;
/// <summary>
/// Abstraction for storing and retrieving secrets via Bitwarden Secrets Manager.
/// </summary>
public interface IBitwardenSecretService
{
/// <summary>
/// Returns true if Bitwarden is configured (access token + org ID are set).
/// </summary>
Task<bool> IsConfiguredAsync();
/// <summary>
/// Creates a new secret in the configured Bitwarden project.
/// </summary>
/// <returns>The ID of the created secret.</returns>
Task<string> CreateSecretAsync(string key, string value, string note = "");
/// <summary>
/// Retrieves a secret by its Bitwarden ID.
/// </summary>
Task<BitwardenSecret> GetSecretAsync(string secretId);
/// <summary>
/// Updates the value of an existing secret in place.
/// </summary>
Task UpdateSecretAsync(string secretId, string key, string value, string note = "");
/// <summary>
/// Lists all secrets in the configured project.
/// </summary>
Task<List<BitwardenSecretSummary>> ListSecretsAsync();
}
public class BitwardenSecret
{
public string Id { get; set; } = string.Empty;
public string Key { get; set; } = string.Empty;
public string Value { get; set; } = string.Empty;
public string Note { get; set; } = string.Empty;
public DateTime CreationDate { get; set; }
}
public class BitwardenSecretSummary
{
public string Id { get; set; } = string.Empty;
public string Key { get; set; } = string.Empty;
public DateTime CreationDate { get; set; }
}