fabro/lib/crates
Bryan Helmkamp 077469d0c6
refactor(auth): scrub FABRO_WORKER_TOKEN from worker env at startup
The worker subprocess is spawned with env_clear+allowlist by the server, so
the only sensitive value in its env is FABRO_WORKER_TOKEN itself. Read the
token and remove_var it from the process env in main() before Tokio starts
worker threads, then thread it explicitly through runner::execute(&str).

Every descendant (hooks, local sandbox, devcontainer initializeCommand,
MCP stdio, etc.) now inherits a worker env with no bearer in it, so an
unscrubbed spawn site cannot leak the token. This makes the prior denylist
scrub in fabro-hooks and fabro-sandbox redundant — delete it and the shared
WORKER_SECRET_ENV_DENYLIST constant. The sandbox keeps its _api_key/_secret/
_token/_password/_credential suffix heuristic for user-supplied env_vars
hygiene.

Extend the server-dispatched-worker env-leak integration test to also
assert a Bash stage running in the worker does not observe FABRO_WORKER_TOKEN.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 15:10:58 -04:00
..
fabro-agent refactor: adopt strum for enum string conversions 2026-04-22 17:16:25 -04:00
fabro-api Merge remote-tracking branch 'origin/main' 2026-04-22 21:18:50 -04:00
fabro-auth Merge remote-tracking branch 'origin/main' 2026-04-19 20:32:02 -04:00
fabro-checkpoint Adjust store dump export paths 2026-04-22 16:13:27 -04:00
fabro-cli refactor(auth): scrub FABRO_WORKER_TOKEN from worker env at startup 2026-04-23 15:10:58 -04:00
fabro-client chore: fix nightly clippy lints on worker jwt branch 2026-04-23 12:08:55 -04:00
fabro-config Merge remote-tracking branch 'origin/main' 2026-04-23 08:52:44 -04:00
fabro-core refactor(unwrap): clean runtime hotspot call sites 2026-04-19 20:48:44 -04:00
fabro-devcontainer refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-github refactor(server): relocate github helpers and use macros for test context 2026-04-20 08:39:12 -04:00
fabro-graphviz refactor: adopt strum for enum string conversions 2026-04-22 17:16:25 -04:00
fabro-hooks refactor(auth): scrub FABRO_WORKER_TOKEN from worker env at startup 2026-04-23 15:10:58 -04:00
fabro-http refactor: remove CLI client mTLS 2026-04-20 17:37:24 -04:00
fabro-install refactor(server): lock down server secrets 2026-04-23 07:15:27 -04:00
fabro-interview Merge remote-tracking branch 'origin/main' 2026-04-19 20:32:02 -04:00
fabro-llm refactor: adopt strum for enum string conversions 2026-04-22 17:16:25 -04:00
fabro-macros refactor(config): move settings combine into types 2026-04-23 08:42:19 -04:00
fabro-mcp fix: simplify fabro-http crate and fix correctness issues 2026-04-12 12:20:55 -04:00
fabro-model refactor: adopt strum for enum string conversions 2026-04-22 17:16:25 -04:00
fabro-oauth test(cli): suppress browser launch under spawned fabro test subprocesses 2026-04-22 07:50:34 -04:00
fabro-proc fix(proc): expect disallowed_methods on /proc walk 2026-04-21 12:26:41 -04:00
fabro-retro refactor: simplify metadata snapshot + retro upload paths 2026-04-21 08:27:59 -04:00
fabro-sandbox refactor(auth): scrub FABRO_WORKER_TOKEN from worker env at startup 2026-04-23 15:10:58 -04:00
fabro-server chore: fix nightly clippy lints on worker jwt branch 2026-04-23 12:08:55 -04:00
fabro-slack refactor(http): centralize reqwest behind fabro-http 2026-04-12 11:48:54 -04:00
fabro-spa Merge remote-tracking branch 'origin/main' 2026-04-22 21:18:50 -04:00
fabro-store fix(status): align archive outcomes and clean lint drift 2026-04-22 17:55:07 -04:00
fabro-telemetry refactor(server): lock down server secrets 2026-04-23 07:15:27 -04:00
fabro-template refactor(async): lint std::process::Command across all targets 2026-04-12 13:35:57 -04:00
fabro-test refactor(server): lock down server secrets 2026-04-23 07:15:27 -04:00
fabro-tracker refactor(unwrap): clear non-test workspace warnings 2026-04-19 20:56:38 -04:00
fabro-types refactor(auth): simplify worker jwt helpers and reuse existing utilities 2026-04-23 12:01:22 -04:00
fabro-util refactor(auth): scrub FABRO_WORKER_TOKEN from worker env at startup 2026-04-23 15:10:58 -04:00
fabro-validate fmt: apply nightly rustfmt after merge 2026-04-11 13:43:30 -04:00
fabro-vault lint(clippy): disallow blocking std::fs on Tokio paths 2026-04-19 17:22:21 -04:00
fabro-workflow refactor(auth): use per-run worker JWTs for subprocesses 2026-04-23 11:04:45 -04:00