File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -19,11 +19,13 @@ OpenShell e2e gateway and one reusable client sandbox serve the whole scenario
1919list. The runner deliberately has no gateway credentials; keeping the privileged
2020client launch on ` host-bridge.py ` is the trust boundary. The harness gives the
2121runner a per-run bridge capability and gives the bridge the runner container IP.
22- The bridge only accepts requests with that capability from that source IP, only
23- renders server URLs whose host is the runner container IP, only forwards the MCP
24- conformance scenario environment allowlist, and starts the client wrapper with a
25- small host environment allowlist instead of inheriting token-bearing host
26- environment variables.
22+ The bridge only accepts requests with that capability, only renders server URLs
23+ whose host is the runner container IP, only forwards the MCP conformance
24+ scenario environment allowlist, and starts the client wrapper with a small host
25+ environment allowlist instead of inheriting token-bearing host environment
26+ variables. It does not use the HTTP peer source address as the runner identity,
27+ because Docker NAT can make legitimate callbacks appear to come from a gateway
28+ address.
2729
2830The upstream runner reports its test server URL as ` localhost ` . The runner
2931container has an ordinary, externally-routable address on the e2e network, so
You can’t perform that action at this time.
0 commit comments