pub struct SecretBuilder { /* private fields */ }Expand description
Fluent builder for a single SecretEntry.
SecretBuilder::new()
.env("OPENAI_API_KEY")
.value(api_key)
.allow_host("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_host(self, host: impl Into<String>) -> Self
pub fn allow_host(self, host: impl Into<String>) -> Self
Add an allowed host (exact match).
Sourcepub fn allow_host_pattern(self, pattern: impl Into<String>) -> Self
pub fn allow_host_pattern(self, pattern: impl Into<String>) -> Self
Add an allowed host with wildcard pattern (e.g., *.openai.com).
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 on_violation(
self,
f: impl FnOnce(ViolationActionBuilder) -> ViolationActionBuilder,
) -> Self
pub fn on_violation( self, f: impl FnOnce(ViolationActionBuilder) -> ViolationActionBuilder, ) -> Self
Set the violation 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 inject_headers(self, enabled: bool) -> Self
pub fn inject_headers(self, enabled: bool) -> Self
Configure header injection (default: true).
Sourcepub fn inject_basic_auth(self, enabled: bool) -> Self
pub fn inject_basic_auth(self, enabled: bool) -> Self
Configure Basic Auth injection (default: true).
Sourcepub fn inject_query(self, enabled: bool) -> Self
pub fn inject_query(self, enabled: bool) -> Self
Configure query parameter injection (default: false).
Sourcepub fn inject_body(self, enabled: bool) -> Self
pub fn inject_body(self, enabled: bool) -> Self
Configure HTTP/1 body injection (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