Skip to content

Add --env and --credential-domain to paude create - #264

Open
bbrowning wants to merge 1 commit into
mainfrom
credential-domain-env
Open

bbrowning wants to merge 1 commit into
mainfrom
credential-domain-env

Conversation

@bbrowning

Copy link
Copy Markdown
Owner

Routing an agent through a company AI gateway needed two things paude could not do: set arbitrary env vars (ANTHROPIC_BASE_URL, model overrides, feature flags) in the agent container, and have the proxy inject the provider API key for a host other than the provider's own domains.

--env KEY=VALUE (or bare KEY to copy the host value) sets agent env vars. Provider credentials and paude-managed proxy/CA/PAUDE_* vars are rejected, since --env values are visible via inspect.

--credential-domain PROVIDER=HOST[:PORT] writes a paude-proxy routing file to the session auth volume and points the proxy at it via PAUDE_PROXY_CREDENTIALS_CONFIG. The proxy replaces its built-in table with a custom file, so paude writes a copy of the pinned defaults with the custom route first. The host is always allowlisted, and a non-443 port is added to allowed endpoints.

Both settings are stored in labels and the upgrade/backup manifests, so they survive start, proxy recreation, allowed-domains/endpoints updates and upgrade. create.py option types and dry-run moved to their own modules to keep it under the file-size limit.

Routing an agent through a company AI gateway needed two things paude
could not do: set arbitrary env vars (ANTHROPIC_BASE_URL, model
overrides, feature flags) in the agent container, and have the proxy
inject the provider API key for a host other than the provider's own
domains.

--env KEY=VALUE (or bare KEY to copy the host value) sets agent env
vars. Provider credentials and paude-managed proxy/CA/PAUDE_* vars are
rejected, since --env values are visible via inspect.

--credential-domain PROVIDER=HOST[:PORT] writes a paude-proxy routing
file to the session auth volume and points the proxy at it via
PAUDE_PROXY_CREDENTIALS_CONFIG. The proxy replaces its built-in table
with a custom file, so paude writes a copy of the pinned defaults with
the custom route first. The host is always allowlisted, and a non-443
port is added to allowed endpoints.

Both settings are stored in labels and the upgrade/backup manifests, so
they survive start, proxy recreation, allowed-domains/endpoints updates
and upgrade. create.py option types and dry-run moved to their own
modules to keep it under the file-size limit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
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