pub enum SandboxProvider {
Process,
Container,
}Expand description
Which sandbox mechanism wraps a role’s sessions when enforce is on.
Variants§
Process
Tier-2 process sandboxing (Seatbelt on macOS, bubblewrap on Linux).
Container
Tier-3 container sandboxing on live-proven Linux hosts (see
crate::sandbox_container). macOS and Windows refuse until their
mount, authority-mask, and egress contracts have continuously enforced
release receipts; macOS uses native Seatbelt through the process
provider.
Implementations§
Source§impl SandboxProvider
impl SandboxProvider
Sourcepub fn as_str(self) -> &'static str
pub fn as_str(self) -> &'static str
The config-file spelling of this provider ("process" / "container"),
for errors and reports that name it.
Sourcepub fn enforces_hard_net_boundary(self, egress: &[String]) -> bool
pub fn enforces_hard_net_boundary(self, egress: &[String]) -> bool
Whether enforce = "fs+net" under this provider is backed by a HARD
network boundary for the given egress list — a session that ignores the
run’s egress-proxy env vars still cannot open a direct socket. The
process provider qualifies on both supported platforms (macOS Seatbelt
cuts outbound TCP to loopback; Linux bwrap --unshare-net removes the
network entirely), so its proxy hop is the only reachable way out. The
container provider has a static hard boundary with an EMPTY egress
list (--network none). A non-empty list is provisioned dynamically
for sessions by crate::container_egress; this helper remains false
for that pair because engine-run gates do not own that lifecycle and
must continue to refuse it. The match is deliberately
exhaustive: a future provider must declare itself here.
Trait Implementations§
Source§impl Clone for SandboxProvider
impl Clone for SandboxProvider
Source§fn clone(&self) -> SandboxProvider
fn clone(&self) -> SandboxProvider
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more