pub struct SecretsManager {
pub cache: Arc<RwLock<HashMap<String, String>>>,
/* private fields */
}Expand description
Vault-based secrets manager
Fields§
§cache: Arc<RwLock<HashMap<String, String>>>Cache of loaded API keys (provider_id -> api_key)
Implementations§
Source§impl SecretsManager
impl SecretsManager
Sourcepub async fn new(config: &VaultConfig) -> Result<Self>
pub async fn new(config: &VaultConfig) -> Result<Self>
Create a new secrets manager with Vault configuration
Sourcepub async fn from_env() -> Result<Self>
pub async fn from_env() -> Result<Self>
Try to create from environment (for initial bootstrap only)
Sourcepub fn is_connected(&self) -> bool
pub fn is_connected(&self) -> bool
Check if Vault is configured and connected
Sourcepub async fn get_api_key(&self, provider_id: &str) -> Result<Option<String>>
pub async fn get_api_key(&self, provider_id: &str) -> Result<Option<String>>
Get an API key for a provider from Vault
Sourcepub async fn get_provider_secrets(
&self,
provider_id: &str,
) -> Result<Option<ProviderSecrets>>
pub async fn get_provider_secrets( &self, provider_id: &str, ) -> Result<Option<ProviderSecrets>>
Get all secrets for a provider
Sourcepub async fn set_provider_secrets(
&self,
provider_id: &str,
secrets: &ProviderSecrets,
) -> Result<()>
pub async fn set_provider_secrets( &self, provider_id: &str, secrets: &ProviderSecrets, ) -> Result<()>
Set/update secrets for a provider in Vault
Sourcepub async fn has_api_key(&self, provider_id: &str) -> bool
pub async fn has_api_key(&self, provider_id: &str) -> bool
Check if a provider has an API key in Vault
Sourcepub async fn list_configured_providers(&self) -> Result<Vec<String>>
pub async fn list_configured_providers(&self) -> Result<Vec<String>>
List all providers that have secrets configured
Sourcepub async fn clear_cache(&self)
pub async fn clear_cache(&self)
Clear the cache (useful when secrets are rotated)
Trait Implementations§
Source§impl Clone for SecretsManager
impl Clone for SecretsManager
Source§fn clone(&self) -> SecretsManager
fn clone(&self) -> SecretsManager
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for SecretsManager
impl !RefUnwindSafe for SecretsManager
impl Send for SecretsManager
impl Sync for SecretsManager
impl Unpin for SecretsManager
impl !UnwindSafe for SecretsManager
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more