Skip to content

docs: credential exclusion requires apiProxy.enabled#3550

Merged
lpcox merged 1 commit into
mainfrom
spec/credential-exclusion-requires-proxy
May 21, 2026
Merged

docs: credential exclusion requires apiProxy.enabled#3550
lpcox merged 1 commit into
mainfrom
spec/credential-exclusion-requires-proxy

Conversation

@lpcox
Copy link
Copy Markdown
Collaborator

@lpcox lpcox commented May 21, 2026

Add normative §9.4 to the AWF config spec requiring that tools MUST NOT exclude LLM API keys via excludeEnv without enabling the api-proxy sidecar.

Without the proxy, the agent gets no key and no placeholder, causing authentication failures at runtime.

This codifies the root cause of github/gh-aw#32446 and github/gh-aw#33766 where Codex workflows failed because OPENAI_API_KEY was excluded without enabling the api-proxy that provides placeholder injection.

Also updates the JSON schema description for excludeEnv to warn about this constraint.

Ref: github/gh-aw#33833 (comment)

Add normative §9.4 requiring that tools MUST NOT exclude LLM API keys
via excludeEnv without enabling the api-proxy sidecar. Without the proxy,
the agent gets no key and no placeholder, causing auth failures.

This codifies the root cause of gh-aw#32446 and gh-aw#33766 where Codex
workflows failed because OPENAI_API_KEY was excluded without enabling
the api-proxy that provides placeholder injection.

Also updates the JSON schema description for excludeEnv to warn about
this constraint.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

Documentation Preview

Documentation build failed for this PR. View logs.

Built from commit e11c438

@lpcox lpcox merged commit b0a0a8b into main May 21, 2026
46 of 50 checks passed
@lpcox lpcox deleted the spec/credential-exclusion-requires-proxy branch May 21, 2026 18:45
@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test Results

✅ GitHub API: 2 PR entries confirmed
✅ GitHub Check: playwright_check = PASS
✅ File Verify: smoke-test-claude-26246119319.txt exists

Overall: PASS

💥 [THE END] — Illustrated by Smoke Claude

@github-actions
Copy link
Copy Markdown
Contributor

🔬 Smoke Test Results

Test Result
GitHub MCP connectivity
GitHub.com HTTP connectivity ❌ (pre-step template vars unexpanded)
File write/read ❌ (pre-step template vars unexpanded)

Overall: FAIL — Pre-computed step outputs (steps.smoke-data.outputs.*) were not substituted; tests 2 & 3 could not be evaluated.

PR by @lpcox · Reviewer: @Copilot

📰 BREAKING: Report filed by Smoke Copilot

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test: Copilot BYOK (Offline) Mode

Test Result
1. GitHub MCP ✅ PR #3550 "docs: credential exclusion requires apiProxy.enabled" fetched
2. GitHub.com connectivity ⚠️ Pre-step data not available (template vars unexpanded)
3. File write/read ⚠️ Pre-step data not available (template vars unexpanded)
4. BYOK inference ✅ Responding via api-proxy → api.githubcopilot.com

Running in BYOK offline mode (COPILOT_OFFLINE=true) via api-proxy → api.githubcopilot.com. Author: @lpcox.

Overall: PARTIAL (tests 2 & 3 skipped due to missing pre-step outputs)

🔑 BYOK report filed by Smoke Copilot BYOK

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test: FAIL. Connectivity: ❌, File Write: ✅, Bash: ✅, MCP: ❌

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • localhost

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "localhost"

See Network Configuration for more information.

💎 Faceted by Smoke Gemini

@github-actions
Copy link
Copy Markdown
Contributor

🏗️ Build Test Suite Results

Ecosystem Project Build/Install Tests Status
Bun elysia 1/1 passed ✅ PASS
Bun hono 1/1 passed ✅ PASS
C++ fmt N/A ✅ PASS
C++ json N/A ✅ PASS
Deno oak N/A 1/1 passed ✅ PASS
Deno std N/A 1/1 passed ✅ PASS
.NET hello-world N/A ✅ PASS
.NET json-parse N/A ✅ PASS
Go color ok ✅ PASS
Go env ok ✅ PASS
Go uuid ok ✅ PASS
Java gson 1/1 passed ✅ PASS
Java caffeine 1/1 passed ✅ PASS
Node.js clsx All passed ✅ PASS
Node.js execa All passed ✅ PASS
Node.js p-limit All passed ✅ PASS
Rust fd 1/1 passed ✅ PASS
Rust zoxide 1/1 passed ✅ PASS

Overall: 8/8 ecosystems passed — ✅ PASS

Generated by Build Test Suite for issue #3550 · ● 3.1M ·

@github-actions
Copy link
Copy Markdown
Contributor

Reviewed merged PRs: docs: credential exclusion requires apiProxy.enabled; fix(squid): chown bind-mounted log dirs to proxy user on startup
✅ GitHub PR review; ❌ safeinputs-gh unavailable
✅ Playwright title; ❌ Tavily tool list empty
✅ File write; ✅ Bash readback; ✅ Discussion comment; ✅ Build
Overall status: FAIL

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • registry.npmjs.org

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "registry.npmjs.org"

See Network Configuration for more information.

🔮 The oracle has spoken through Smoke Codex

@github-actions
Copy link
Copy Markdown
Contributor

Smoke Test Results — FAIL ❌

Check Result
Redis PING ❌ Timeout (no response)
PostgreSQL pg_isready ❌ No response on host.docker.internal:5432
PostgreSQL SELECT 1 ❌ Not attempted (pg_isready failed)

Overall: FAILhost.docker.internal is not reachable from this runner. Service containers may not be running or the host alias is not configured.

🔌 Service connectivity validated by Smoke Services

@lpcox lpcox review requested due to automatic review settings May 21, 2026 19:08
lpcox added a commit that referenced this pull request May 21, 2026
PR #3550 updated docs/awf-config.schema.json but missed src/ copy.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
lpcox added a commit that referenced this pull request May 21, 2026
* fix(dind-probe): address review feedback from #3554

- Distinguish 'inconclusive' (Docker unreachable, timeout, infra error)
  from 'splitDetected' (confirmed split filesystem). Infrastructure errors
  (exit code ≥125, ENOENT, timeout) no longer falsely report split topology.

- Add fail-fast Docker connectivity check (docker info, 5s timeout) before
  running probe containers. If Docker is unreachable, return immediately
  instead of waiting up to 45s across 3 probe attempts.

- Reduce per-probe timeout from 15s to 10s (worst-case: 5s ping + 30s
  probes vs previous 45s).

- Remove duplicate info-level logging from probe module. Only the caller
  (main-action.ts) logs at info level; probe uses debug throughout.

- Fix brittle timeout test: explicitly mock all execa calls including the
  connectivity check, and align assertions with the new 'inconclusive'
  semantics.

- Fix OS-specific setup error test: use chmod to force permission errors
  instead of relying on /proc path behavior.

- Add new test cases: Docker unreachable, docker info timeout, exit 125
  infrastructure error, probe throw → all verify inconclusive behavior.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: sync src schema excludeEnv with docs copy

PR #3550 updated docs/awf-config.schema.json but missed src/ copy.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant