pub struct SecretRegistry { /* private fields */ }Expand description
Registry for secret resolvers
Allows dynamic registration of secret providers by name. Consumers can register their own resolvers and look them up by provider name at runtime.
§Example
ⓘ
use cuenv_secrets::{SecretRegistry, EnvSecretResolver};
let mut registry = SecretRegistry::new();
registry.register(Arc::new(EnvSecretResolver::new()));
let resolver = registry.get("env").unwrap();
let secret = resolver.resolve("API_KEY", &spec).await?;Implementations§
Source§impl SecretRegistry
impl SecretRegistry
Sourcepub fn register(&mut self, resolver: Arc<dyn SecretResolver>)
pub fn register(&mut self, resolver: Arc<dyn SecretResolver>)
Register a resolver
The resolver’s provider_name() is used as the key. If a resolver
with the same name already exists, it is replaced.
Sourcepub fn get(&self, provider: &str) -> Option<Arc<dyn SecretResolver>>
pub fn get(&self, provider: &str) -> Option<Arc<dyn SecretResolver>>
Get a resolver by provider name
Returns None if no resolver is registered for the given name.
Sourcepub fn has(&self, provider: &str) -> bool
pub fn has(&self, provider: &str) -> bool
Check if a resolver is registered for the given provider name
Sourcepub async fn resolve(
&self,
provider: &str,
name: &str,
spec: &SecretSpec,
) -> Result<String, SecretError>
pub async fn resolve( &self, provider: &str, name: &str, spec: &SecretSpec, ) -> Result<String, SecretError>
Resolve a secret using the appropriate resolver
Looks up the resolver by provider name and delegates resolution.
§Errors
Returns SecretError::UnsupportedResolver if no resolver is registered
for the given provider name.
Trait Implementations§
Source§impl Debug for SecretRegistry
impl Debug for SecretRegistry
Source§impl Default for SecretRegistry
impl Default for SecretRegistry
Source§fn default() -> SecretRegistry
fn default() -> SecretRegistry
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for SecretRegistry
impl !RefUnwindSafe for SecretRegistry
impl Send for SecretRegistry
impl Sync for SecretRegistry
impl Unpin for SecretRegistry
impl UnsafeUnpin for SecretRegistry
impl !UnwindSafe for SecretRegistry
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