egress on a recipe changes that.
As a scalar it is open (the default) or none; as a map it routes all of
the box’s egress through the dabs proxy engine, which enforces a host
allow/deny gate and an optional chain of hooks.
Screens verified by
walkthroughs/test_egress.py. The proxy engine runs on
bun (host-side); egress: none needs nothing extra.Cut it off
egress: none has no network at all — it cannot even resolve a name:
Gate it by host
Anallow list (or deny) is a CONNECT gate: an allowed host reaches, anything
else is refused before a byte leaves the box.
Route it through a hook
Anhttp_proxy chain hands the box’s traffic to code you write. tls: terminate
opens the encrypted stream, a module: hook sees — and may rewrite — every
chunk, and tls: originate re-encrypts it to the real destination.