pub struct SecretStore { /* private fields */ }Expand description
Thin wrapper around keyring::Entry (or an in-process HashMap for
CI / unattended environments) that scopes every secret under a
single namespace. Cloning is cheap: the keyring variant clones the
service string, the memory variant clones the Arc.
Implementations§
Source§impl SecretStore
impl SecretStore
Sourcepub fn with_service(service: impl Into<String>) -> Self
pub fn with_service(service: impl Into<String>) -> Self
Override the keyring service identifier. Useful in tests where the suite wants its own namespace so it never clobbers a real operator install.
Sourcepub fn memory() -> Self
pub fn memory() -> Self
In-process backend that stores secrets in a HashMap shared
between clones via an Arc<Mutex<_>>. Intended for CI and the
integration test suite, where the platform keychain is either
unavailable (Linux containers without secret-service) or
would prompt for unlock (macOS).
Sourcepub fn from_env() -> Self
pub fn from_env() -> Self
Select the backend from the NYX_AGENT_SECRETS_BACKEND environment
variable: memory returns the in-process backend, anything else
(including unset) falls back to the keyring under the default
service name.
pub fn service(&self) -> &str
Sourcepub fn set(&self, account: &str, value: &str) -> Result<(), SecretError>
pub fn set(&self, account: &str, value: &str) -> Result<(), SecretError>
Persist value under account. Overwrites any existing value.
Trait Implementations§
Source§impl Clone for SecretStore
impl Clone for SecretStore
Source§fn clone(&self) -> SecretStore
fn clone(&self) -> SecretStore
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SecretStore
impl Debug for SecretStore
Auto Trait Implementations§
impl Freeze for SecretStore
impl RefUnwindSafe for SecretStore
impl Send for SecretStore
impl Sync for SecretStore
impl Unpin for SecretStore
impl UnsafeUnpin for SecretStore
impl UnwindSafe for SecretStore
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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>
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>
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 more