Skip to content

Enforce required provider secrets on create and upgrade - #262

Merged
bbrowning merged 2 commits into
mainfrom
enforce-required-provider-secrets
Sep 29, 2026
Merged

bbrowning merged 2 commits into
mainfrom
enforce-required-provider-secrets

Conversation

@bbrowning

Copy link
Copy Markdown
Owner

Providers declare required_secret_env_vars, but they were only checked when mutating allowed domains/endpoints. paude create --provider anthropic-oauth without CLAUDE_CODE_OAUTH_TOKEN exported built a session whose proxy had no token, so the agent failed to authenticate with no hint why. The same applied to ANTHROPIC_API_KEY and OPENAI_API_KEY.

Add check_required_secrets() to the provider registry, with an optional per-provider auth_hint, and call it from create (after dry-run, before any build) and upgrade (before the manifest save, teardown, or stopping a running session). start/connect are unchanged since an existing proxy keeps its bindings; the missing-proxy recreate gap is logged as PROXY-001.

bbrowning and others added 2 commits September 29, 2026 10:10
Providers declare required_secret_env_vars, but they were only checked
when mutating allowed domains/endpoints. `paude create --provider
anthropic-oauth` without CLAUDE_CODE_OAUTH_TOKEN exported built a
session whose proxy had no token, so the agent failed to authenticate
with no hint why. The same applied to ANTHROPIC_API_KEY and
OPENAI_API_KEY.

Add check_required_secrets() to the provider registry, with an optional
per-provider auth_hint, and call it from create (after dry-run, before
any build) and upgrade (before the manifest save, teardown, or stopping
a running session). start/connect are unchanged since an existing proxy
keeps its bindings; the missing-proxy recreate gap is logged as
PROXY-001.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upgrade now refuses to add a provider whose required secrets are
missing from the host environment. The chatgpt->openai swap test adds
the openai provider, so it failed in CI where OPENAI_API_KEY is unset.
Provide a dummy key so the test exercises the swap itself.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bbrowning
bbrowning merged commit fb42cec into main Sep 29, 2026
5 checks passed
@bbrowning
bbrowning deleted the enforce-required-provider-secrets branch September 29, 2026 17:37
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.

1 participant