pub struct SecretBuilder { /* private fields */ }Expand description
Fluent builder for a single SecretEntry.
SecretBuilder::new()
.env("OPENAI_API_KEY")
.value(api_key)
.allow("api.openai.com")
.build()Implementations§
Source§impl SecretBuilder
impl SecretBuilder
Sourcepub fn env(self, var: impl Into<String>) -> Self
pub fn env(self, var: impl Into<String>) -> Self
Set the environment variable to expose the placeholder as (required).
Names must be non-empty and must not contain = or NUL. They are
not restricted to shell-identifier syntax.
Sourcepub fn source(self, source: SecretSource) -> Self
pub fn source(self, source: SecretSource) -> Self
Resolve the value from a host-side source reference at spawn time
(mutually exclusive with value).
The durable config records only the reference; the plaintext is read from the host environment when the sandbox starts, so it never lands in the database.
Sourcepub fn placeholder(self, placeholder: impl Into<String>) -> Self
pub fn placeholder(self, placeholder: impl Into<String>) -> Self
Set a custom placeholder string.
Placeholders must be non-empty, at most 1024 bytes, and must not
contain NUL, CR, or LF.
If not set, auto-generated as $MSB_<env_var>.
Sourcepub fn allow(self, host: impl AsRef<str>) -> Self
pub fn allow(self, host: impl AsRef<str>) -> Self
Add a host allowed to receive the substituted secret value.
*.example.com matches the domain and its subdomains. Use
allow_any_host_dangerous for *.
Sourcepub fn allow_any_host_dangerous(self, i_understand_the_risk: bool) -> Self
pub fn allow_any_host_dangerous(self, i_understand_the_risk: bool) -> Self
Allow for any host. Dangerous: secret can be exfiltrated to any destination. Requires explicit acknowledgment.
Sourcepub fn allow_passthrough_for(self, host: impl AsRef<str>) -> Self
pub fn allow_passthrough_for(self, host: impl AsRef<str>) -> Self
Allow a destination to receive this placeholder without substitution.
Exact hosts, *.example.com, and * are accepted. Repeated calls are additive.
Sourcepub fn violation_action(self, action: SecretViolationAction) -> Self
pub fn violation_action(self, action: SecretViolationAction) -> Self
Set the blocking action for this secret.
Sourcepub fn require_tls_identity(self, enabled: bool) -> Self
pub fn require_tls_identity(self, enabled: bool) -> Self
Require verified TLS identity before substituting (default: true).
Sourcepub fn substitute_in_headers(self, enabled: bool) -> Self
pub fn substitute_in_headers(self, enabled: bool) -> Self
Configure header substitution (default: true).
Sourcepub fn substitute_in_query(self, enabled: bool) -> Self
pub fn substitute_in_query(self, enabled: bool) -> Self
Configure query parameter substitution (default: false).
Sourcepub fn substitute_in_body(self, enabled: bool) -> Self
pub fn substitute_in_body(self, enabled: bool) -> Self
Configure HTTP/1 body substitution (default: false).
Fixed-length bodies up to 16 MiB update Content-Length; larger
fixed-length bodies are blocked. Chunked bodies are decoded and
re-encoded with fresh chunk sizes. Encoded bodies pass through
unchanged.
Sourcepub fn build(self) -> SecretEntry
pub fn build(self) -> SecretEntry
Consume the builder and return a SecretEntry.
Exactly one of value or source must
be set. A source-backed entry carries an empty durable value; it is
resolved host-side at spawn time.
§Panics
Panics if env or at least one allowed host was not set, or if neither
(or both) of value/source was set.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SecretBuilder
impl RefUnwindSafe for SecretBuilder
impl Send for SecretBuilder
impl Sync for SecretBuilder
impl Unpin for SecretBuilder
impl UnsafeUnpin for SecretBuilder
impl UnwindSafe for SecretBuilder
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> 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