Repository navigation
Document host-run Compose access from firewalled Playwright - #9560
Conversation
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The new test is excluded from CI, and parts of the gh-aw and CLI documentation remain unsupported or contradictory.
4 open findings
What changed in this PR
Documents supported connectivity from firewalled Playwright sessions to host-run Compose stacks and host services.
Changes:
- Adds topology-attachment guidance and security boundaries.
- Clarifies host-gateway, proxy, and port behavior.
- Adds Compose topology integration coverage.
| File | Description |
|---|---|
tests/integration/topology-compose.test.ts |
Tests attached frontend connectivity and network retention. |
docs/usage.md |
Documents Compose and host-gateway access. |
docs-site/src/content/docs/guides/server-connectivity.md |
Updates host-service connectivity guidance. |
docs-site/src/content/docs/guides/playwright-testing.md |
Adds detailed Playwright and Compose examples. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| import { createRunner } from '../fixtures/awf-runner'; | ||
| import { cleanup } from '../fixtures/cleanup'; | ||
|
|
||
| describe('Compose topology attachment', () => { |
| Ensure your compiler passes the attachment through to AWF, and direct its | ||
| Playwright tool to `http://awf-compose-web:80`. gh-aw's external-domain field is | ||
| `network.allowed`; it is distinct from AWF's `network.allowDomains`. Keep stack |
| proxy) instead of host iptables. Requires no sudo / NET_ADMIN, so it | ||
| works inside ARC / Kubernetes DinD runners. Not yet supported with | ||
| --dns-over-https or --enable-host-access. (default: false) | ||
| --dns-over-https. (default: false) |
| > ⚠️ **Security Warning**: Host access exposes services reachable on the permitted host ports, including unrelated services on those ports. Treat the host as a trust boundary. | ||
| > | ||
| > **Port restrictions:** Use `--allow-host-ports` to explicitly restrict which ports can be accessed (e.g., `--allow-host-ports 80,443,8080`). A future update will make port restrictions the default behavior. | ||
| > **Port restrictions:** Squid permits ports 80 and 443 by default. `--allow-host-ports` adds ports to Squid's `Safe_ports` for allowlisted destinations; it does not restrict attached peers or create a direct host route in topology mode. |
|
@copilot address review feedback |
|
✅ Copilot review passed with no inline comments. @copilot Add the |
Documentation PreviewDocumentation has been built for this PR. To view locally:
Built from commit 93d4669 |
✅ Coverage Check PassedOverall Coverage
📁 Per-file Coverage Changes (1 files)
Coverage comparison generated by |
|
🔑 Smoke Copilot BYOK AOAI (api-key) is testing Azure OpenAI BYOK (api-key) mode on this pull request... |
|
🚀 Security Guard has started processing this pull request |
|
💎 Smoke Gemini is crystallizing results on this pull request... |
|
🔌 Smoke Services — All services reachable! ✅
|
|
📡 Smoke OTel Tracing is starting OTel tracing validation... |
|
✅ Build Test Suite completed successfully!
|
|
✅ Smoke Copilot BYOK completed. Copilot BYOK mode operational. 🔓
|
|
Chroot tests passed! Smoke Chroot - All security and functionality tests succeeded.
|
|
✅ Smoke Claude passed
|
|
📰 VERDICT: Smoke Copilot has concluded. All systems operational. This is a developing story. 🎤
|
|
Smoke Cloud Hypervisor reports failed. Cloud Hypervisor + Copilot failed.
|
|
🪪 Smoke Copilot BYOK AOAI (Entra) is testing Azure OpenAI BYOK (Entra / GitHub OIDC) mode on this pull request... |
|
🛡️ Smoke Copilot Network Isolation is verifying network-isolation egress on this pull request... |
|
🔮 The ancient spirits stir... Smoke Codex awakens to divine this pull request... |
Cloud Hypervisor + Copilot Smoke Test
Overall: PASS
|
|
Smoke services: Redis PING ✅ | pg_isready ✅ | SELECT 1 ✅ — PASS
|
Copilot BYOK Smoke Test Results✅ GitHub MCP Test: PR #9568 and #9567 verified Status: PASS
|
Smoke Test: Claude Engine Validation
Overall result: PASS
|
|
Smoke Copilot: PASS ✅
|
🏗️ Build Test Suite Results
Overall: 6/8 ecosystems passed — FAIL Failure details
The
|
Chroot Version Comparison
Result: ❌ Not all tests passed. Node.js differs between host and chroot, so the
|


Playwright’s
localhostis the agent sandbox, not the runner host. Existing guidance lacked a supported path to host-run Compose stacks and left Squid’shost.docker.internalresolution unclear.--topology-attach. Explain container-name/container-port addressing and preservation of the frontend’s Compose network.awf --network-isolation \ --topology-attach awf-compose-web \ --allow-domains awf-compose-web \ -- npx playwright test tests/compose.spec.tsThe browser navigates to
http://awf-compose-web:80; no published host port is needed.