Skip to content

feat(env): remove macOS keychain and pass secret providers#3713

Merged
dgageot merged 2 commits into
docker:mainfrom
dgageot:remove-keychain-pass-env-providers
Jul 17, 2026
Merged

feat(env): remove macOS keychain and pass secret providers#3713
dgageot merged 2 commits into
docker:mainfrom
dgageot:remove-keychain-pass-env-providers

Conversation

@dgageot

@dgageot dgageot commented Jul 17, 2026

Copy link
Copy Markdown
Member

The macOS Keychain (security) and pass integrations added complexity for a narrow use case: they required external tooling, produced confusing errors when those tools were absent, and duplicated the role of the simpler ~/.config/cagent/.env file store. Removing them shrinks the surface area, eliminates a class of setup failures, and makes the secret-storage story uniform across platforms.

DefaultSources no longer includes the keychain or pass environment providers. SecretStores() now returns only the Docker Agent env file store. The docker agent setup wizard skips the "where should the key be stored?" prompt when only one store is available and fails fast with a clear error if storing fails. SecretSourcesHelp now points users to shell env vars, --env-from-file, and docker agent setup instead of pass/security commands. The secrets guide, getting-started pages, CLI feature doc, and troubleshooting guide are all updated to match, with a migration note for anyone who previously stored keys via Keychain or pass.

The OAuth keyring token store (pkg/tools/mcp/keyringstore) and the registry credential keychain (pkg/remote) are unrelated to secret providers and are intentionally untouched.

dgageot added 2 commits July 17, 2026 11:46
Simplify the secret provider chain to shell env, env files, credential
helper, and Docker Desktop. Drop the pass and security backends and their
write-side stores; update the setup wizard to skip the store-picker when
only one store is available.

Assisted-By: docker-agent
Guard against empty secret-store list in storeSecret; add chmod 600 to
env-file snippet; add migration note for keys previously in Keychain/pass.

Assisted-By: Claude
@dgageot
dgageot requested a review from a team as a code owner July 17, 2026 09:57

@rumpl rumpl left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👋

@docker-agent docker-agent left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 No issues found — LGTM! View logs.

@dgageot
dgageot merged commit 17e3dc1 into docker:main Jul 17, 2026
16 of 17 checks passed
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.

3 participants