Struct mz_secrets::SecretsReader
source · [−]pub struct SecretsReader { /* private fields */ }
Expand description
Securely reads secrets that are managed by a SecretsController
.
Does not provide access to create, update, or delete the secrets within.
Implementations
sourceimpl SecretsReader
impl SecretsReader
pub fn new(config: SecretsReaderConfig) -> Self
sourcepub async fn read(&self, id: GlobalId) -> Result<Vec<u8>, Error>
pub async fn read(&self, id: GlobalId) -> Result<Vec<u8>, Error>
Returns the contents of a secret identified by GlobalId
This read
will return a complete version of the secret. It will not
return, e.g., one block from v1 and another from v2.
- On Linux / OSX filesystems,
File::open
will hold a handle open so that even if the file is deleted, we still continue to read from it. This means a SecretOp::Delete followed by a SecretOp::Ensure can never “swap out” data mid-read_to_end
. - We do not allow editing secrets which would expose us to this issue.
(N.B. Were we ever to run with Windows / NTFS, this would also work properly and mid-read edits would be disallowed)
pub async fn read_string(&self, id: GlobalId) -> Result<String>
Trait Implementations
sourceimpl Clone for SecretsReader
impl Clone for SecretsReader
sourcefn clone(&self) -> SecretsReader
fn clone(&self) -> SecretsReader
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl RefUnwindSafe for SecretsReader
impl Send for SecretsReader
impl Sync for SecretsReader
impl Unpin for SecretsReader
impl UnwindSafe for SecretsReader
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> FutureExt for T
impl<T> FutureExt for T
sourcefn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
sourcefn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
sourcefn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message T
in a tonic::Request
sourceimpl<P, R> ProtoType<R> for P where
R: RustType<P>,
impl<P, R> ProtoType<R> for P where
R: RustType<P>,
sourcefn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See RustType::from_proto
.
sourcefn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See RustType::into_proto
.
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more