core-agent-ide/codex-rs/network-proxy/src
viyatb-oai 25fa974166
fix: support managed network allowlist controls (#12752)
## Summary
- treat `requirements.toml` `allowed_domains` and `denied_domains` as
managed network baselines for the proxy
- in restricted modes by default, build the effective runtime policy
from the managed baseline plus user-configured allowlist and denylist
entries, so common hosts can be pre-approved without blocking later user
expansion
- add `experimental_network.managed_allowed_domains_only = true` to pin
the effective allowlist to managed entries, ignore user allowlist
additions, and hard-deny non-managed domains without prompting
- apply `managed_allowed_domains_only` anywhere managed network
enforcement is active, including full access, while continuing to
respect denied domains from all sources
- add regression coverage for merged-baseline behavior, managed-only
behavior, and full-access managed-only enforcement

## Behavior
Assuming `requirements.toml` defines both
`experimental_network.allowed_domains` and
`experimental_network.denied_domains`.

### Default mode
- By default, the effective allowlist is
`experimental_network.allowed_domains` plus user or persisted allowlist
additions.
- By default, the effective denylist is
`experimental_network.denied_domains` plus user or persisted denylist
additions.
- Allowlist misses can go through the network approval flow.
- Explicit denylist hits and local or private-network blocks are still
hard-denied.
- When `experimental_network.managed_allowed_domains_only = true`, only
managed `allowed_domains` are respected, user allowlist additions are
ignored, and non-managed domains are hard-denied without prompting.
- Denied domains continue to be respected from all sources.

### Full access
- With managed requirements present, the effective allowlist is pinned
to `experimental_network.allowed_domains`.
- With managed requirements present, the effective denylist is pinned to
`experimental_network.denied_domains`.
- There is no allowlist-miss approval path in full access.
- Explicit denylist hits are hard-denied.
- `experimental_network.managed_allowed_domains_only = true` now also
applies in full access, so managed-only behavior remains in effect
anywhere managed network enforcement is active.
2026-03-06 17:52:54 -08:00
..
certs.rs feat(network-proxy): add MITM support and gate limited-mode CONNECT (#9859) 2026-02-24 18:15:15 +00:00
config.rs fix: support managed network allowlist controls (#12752) 2026-03-06 17:52:54 -08:00
http_proxy.rs fix(network-proxy): reject mismatched host headers (#13275) 2026-03-03 15:12:06 -08:00
lib.rs refactor: remove proxy admin endpoint (#13687) 2026-03-05 22:03:16 -08:00
mitm.rs feat(network-proxy): add MITM support and gate limited-mode CONNECT (#9859) 2026-02-24 18:15:15 +00:00
mitm_tests.rs fix: reject global wildcard network proxy domains (#13789) 2026-03-06 21:06:24 +00:00
network_policy.rs feat(network-proxy): add embedded OTEL policy audit logging (#12046) 2026-02-25 11:46:37 -05:00
policy.rs fix: reject global wildcard network proxy domains (#13789) 2026-03-06 21:06:24 +00:00
proxy.rs refactor: remove proxy admin endpoint (#13687) 2026-03-05 22:03:16 -08:00
reasons.rs feat(network-proxy): add embedded OTEL policy audit logging (#12046) 2026-02-25 11:46:37 -05:00
responses.rs feat(network-proxy): add MITM support and gate limited-mode CONNECT (#9859) 2026-02-24 18:15:15 +00:00
runtime.rs fix: support managed network allowlist controls (#12752) 2026-03-06 17:52:54 -08:00
socks5.rs feat(network-proxy): add embedded OTEL policy audit logging (#12046) 2026-02-25 11:46:37 -05:00
state.rs fix: support managed network allowlist controls (#12752) 2026-03-06 17:52:54 -08:00
upstream.rs feat: enable premessage-deflate for websockets (#10966) 2026-02-07 17:59:34 -08:00