Skip to content

Add AWF Sandbox Specification v1.0.0#25827

Closed
Copilot wants to merge 5 commits intomainfrom
copilot/add-awf-firewall-specification
Closed

Add AWF Sandbox Specification v1.0.0#25827
Copilot wants to merge 5 commits intomainfrom
copilot/add-awf-firewall-specification

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Apr 11, 2026

Summary

Adds a formal W3C-style specification for the Agent Workflow Firewall (AWF) binary interface in docs/src/content/docs/reference/. The specification focuses exclusively on what AWF itself consumes and enforces — CLI arguments, flat domain lists, container isolation, and credential proxying. Compiler-level constructs (workflow frontmatter, ecosystem domain identifiers, engine definitions) are explicitly out of scope.

What's Included

The specification (awf-sandbox-specification.md, ~574 lines) covers:

AWF Command Interface (Section 4)

  • Command structure with expandable and safe args separated by --
  • Required arguments (--env-all, --allow-domains, --enable-api-proxy, --container-workdir, --log-level, --image-tag, etc.)
  • Conditional arguments (--tty, --exclude-env, --block-domains, --mount, --memory-limit, --ssl-bump, API targets, etc.)
  • Version-gated features (e.g., --exclude-env requires AWF ≥ v0.25.3)

Network Filtering (Section 5)

  • Domain list format: literal domains, wildcards (*.example.com), protocol-qualified, IP addresses
  • Allow/block semantics: default-deny, block precedence, subdomain inclusion, wildcard matching
  • Proxy implementation via Squid forward proxy
  • Explicit note that ecosystem identifiers are compiler constructs resolved before AWF invocation

Container Isolation (Section 6)

  • Docker container model with mount syntax validation (source:destination:mode)
  • Standard mounts, working directory, memory limits
  • Environment variable passthrough (--env-all) and exclusion (--exclude-env)

API Proxy Sidecar (Section 7)

  • Transparent credential injection for LLM provider APIs
  • Custom API targets (--openai-api-target, --anthropic-api-target, --copilot-api-target)
  • Base path support for path-prefixed endpoints

SSL Bump HTTPS Inspection (Section 8)

  • HTTPS content inspection for URL path-level filtering
  • URL pattern filtering via --allow-urls
  • Certificate pinning considerations

Logging and Audit (Section 9)

  • Log level validation (debug, info, warn, error)
  • Proxy logs and audit directory artifacts (policy manifest, squid.conf, Docker Compose)

Compliance Testing (Section 11)

  • 37 test IDs across 6 categories (CMD, NET, PRX, SSL, LOG)
  • Three compliance levels (Required, Standard, Complete)

References

  • Derived from AWF CLI interface in pkg/workflow/awf_helpers.go (BuildAWFCommand, BuildAWFArgs)
  • Follows W3C conventions matching the existing MCP Gateway specification
  • Uses RFC 2119 requirement keywords throughout

Copilot AI and others added 2 commits April 11, 2026 15:22
…env exclusion, template validation

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/8ff81f26-5e3e-4707-9500-8e15300bde86

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot ignore MCP only focus on sandbox.awf

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot domains set is a compiler construct, awf only sees a list of domains

@pelikhan
Copy link
Copy Markdown
Collaborator

@copilot focus on the awf config file format, ignore current front matter

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 11, 2026

@copilot ignore MCP only focus on sandbox.awf

Removed all MCP gateway content from the spec in 67ff498. The spec now focuses exclusively on sandbox.agent — removed Section 4.3 (MCP Gateway Runtime Configuration), the sandbox.mcp field from the top-level structure, MCP references from the architecture diagram, default behavior, test cases, changelog, and references. Added an explicit out-of-scope note deferring sandbox.mcp to the MCP Gateway Specification.

Copilot AI and others added 2 commits April 11, 2026 16:02
…ntmatter, engine config

Agent-Logs-Url: https://github.com/github/gh-aw/sessions/5c13f564-bfc5-4df3-979f-dbd6da36e178

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copy link
Copy Markdown
Contributor Author

Copilot AI commented Apr 11, 2026

@copilot domains set is a compiler construct, awf only sees a list of domains

Rewrote the network section in f7726ae. AWF now only documents flat domain lists (literal, wildcard, protocol-qualified, IP) received via --allow-domains and --block-domains. Ecosystem identifiers are explicitly called out as compiler constructs that are resolved before AWF is invoked. Removed all ecosystem identifier tables and expansion semantics.

@copilot focus on the awf config file format, ignore current front matter

Restructured the entire spec in f7726ae to focus on the AWF binary interface. Removed all frontmatter YAML syntax, engine definitions (EngineDefinition, ProviderSelection, AuthDefinition, RequestShape), engine-specific firewall behavior, sandbox config format, and FirewallConfig frontmatter structure. The spec now documents AWF's CLI arguments, network filtering behavior, container isolation, API proxy sidecar, SSL Bump, and audit logging — what AWF itself consumes and enforces.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants