fabro/lib/components/fabro-sandbox/src
Bryan Helmkamp 99d226250e
Drop fabro's explicit-env credential filter
SandboxExec carried an ExplicitEnvPolicy that, for local runs, dropped
credential-shaped names out of the caller's explicit environment before
the spec reached the driver. The filter duplicated the sandbox driver's
Host provider, which applies the same safelist and suffix list to the
inherited process environment and, by its own contract, leaves explicit
spec env alone as the deliberate channel for secrets. Since fabro
composes the explicit environment itself, the second filter added no
protection. It only stripped variables a caller had set on purpose, such
as a GITHUB_TOKEN for a local command stage, and it forced every
constructor to pick a policy by provider kind.

This removes ExplicitEnvPolicy, the safelist, is_sensitive_env_var, and
the env_policy field on SandboxExec and RunSandbox. SandboxExec::new
takes only the exec facet, and the explicit environment goes to the
provider as composed on every provider. The tests that exercised the
filter are replaced by one that shows a credential-shaped explicit
variable reaching the command on the Host provider; the BASH_ENV test
stays, since that blank is the driver's and still holds.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:53:10 -06:00
..
clone.rs Drop fabro's explicit-env credential filter 2026-09-11 14:53:10 -06:00
clone_source.rs Trust the driver's pinned clone instead of re-reading HEAD 2026-09-11 09:32:09 -06:00
credentials.rs Let the driver retry git operations and decide from the credential's age 2026-09-11 12:44:58 -06:00
daytona.rs Let the Daytona provider cache images as snapshots instead of fabro 2026-09-11 13:11:16 -06:00
details.rs Put the driver's sandbox status on the API instead of a projection 2026-09-11 13:07:00 -06:00
docker.rs Map an environment straight onto the driver's sandbox spec 2026-09-10 16:44:21 -06:00
driver.rs Hold a plugin's supervisor as its provider 2026-09-11 12:36:29 -06:00
driver_sandbox.rs Drop fabro's explicit-env credential filter 2026-09-11 14:53:10 -06:00
environment.rs Map an environment straight onto the driver's sandbox spec 2026-09-10 16:44:21 -06:00
error.rs Speak the driver's exec vocabulary instead of mirroring it 2026-09-10 16:11:45 -06:00
exec.rs Drop fabro's explicit-env credential filter 2026-09-11 14:53:10 -06:00
git_policy.rs Let the driver retry git operations and decide from the credential's age 2026-09-11 12:44:58 -06:00
lib.rs Drop fabro's explicit-env credential filter 2026-09-11 14:53:10 -06:00
managed_labels.rs Adopt the driver's tag pins, git classes, stop ladder, ensure, and ownership 2026-09-09 23:00:56 -06:00
provider.rs Put the driver's sandbox status on the API instead of a projection 2026-09-11 13:07:00 -06:00
provider_sandbox.rs Let the Daytona provider cache images as snapshots instead of fabro 2026-09-11 13:11:16 -06:00
reconnect.rs Reconnect a local sandbox by attaching to its directory 2026-09-11 12:36:29 -06:00
sandbox.rs Let the driver strip terminal control sequences from command output 2026-09-11 14:48:51 -06:00
sandbox_spec.rs Reconnect a local sandbox by attaching to its directory 2026-09-11 12:36:29 -06:00
test_support.rs Drop fabro's explicit-env credential filter 2026-09-11 14:53:10 -06:00