Skip to content

sbx: document Linux keychain fallback for headless hosts#25232

Open
dvdksn wants to merge 3 commits into
docker:mainfrom
dvdksn:worktree-sbx-linux-keychain-faq
Open

sbx: document Linux keychain fallback for headless hosts#25232
dvdksn wants to merge 3 commits into
docker:mainfrom
dvdksn:worktree-sbx-linux-keychain-faq

Conversation

@dvdksn
Copy link
Copy Markdown
Contributor

@dvdksn dvdksn commented Jun 2, 2026

Summary

On Linux hosts without a running Secret Service (headless servers, some WSL setups), sbx falls back to an encrypted on-disk store instead of the OS keychain. This documents where secrets are stored per platform in the credentials page and adds a headless-Linux FAQ entry.

Note

This documents behavior from the unreleased PR docker/sandboxes#3231. Hold merge until that change ships. Opened as a draft for that reason.

Learnings

  • Origin of this change is a Slack thread, not a GitHub issue, so there's no Closes # linkage.

Generated by Claude Code

On Linux without a running Secret Service (headless servers, some WSL
setups), sbx falls back to an encrypted on-disk store instead of the OS
keychain. Document where secrets are stored per platform in the
credentials page and add a headless-Linux FAQ entry.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@netlify
Copy link
Copy Markdown

netlify Bot commented Jun 2, 2026

Deploy Preview for docsdocker ready!

Name Link
🔨 Latest commit ae4fa30
🔍 Latest deploy log https://app.netlify.com/projects/docsdocker/deploys/6a1fe6bf48f09d0008178fd1
😎 Deploy Preview https://deploy-preview-25232--docsdocker.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dvdksn dvdksn added this to the sbx/v0.32.0 milestone Jun 2, 2026
Copy link
Copy Markdown

@docker-agent docker-agent left a comment

Choose a reason for hiding this comment

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

Assessment: 🟢 APPROVE

The added content is well-structured and clearly documents the Linux keychain fallback behavior. No critical issues found — no vendored content, no missing redirects, no broken commands or incorrect facts. Cross-linking between faq.md and credentials.md uses correct relative paths and anchor fragments. Only minor style-guide items noted below.

Comment thread content/manuals/ai/sandboxes/security/credentials.md Outdated
Comment thread content/manuals/ai/sandboxes/security/credentials.md
Comment thread content/manuals/ai/sandboxes/faq.md Outdated
Copy link
Copy Markdown
Contributor

@akristen akristen left a comment

Choose a reason for hiding this comment

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

non-blocking nit: but our faq docs titles tend to be the plural faqs rather than faq.

@dvdksn dvdksn requested a review from rcjsuen June 3, 2026 08:24
Remove parentheses from the XDG config path per the style guide and
make the per-OS storage list parallel by moving the Ubuntu package
note into prose.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dvdksn
Copy link
Copy Markdown
Contributor Author

dvdksn commented Jun 3, 2026

@akristen thanks! The bot's two style nits are addressed in 068f346 (dropped parentheses, made the per-OS list parallel).

On the faq vs faqs title: this page pre-dates this PR — it already ships as sandboxes/faq.md with title: FAQ, and I only added a section to it. Renaming the title/slug would change the published URL and is unrelated to the keychain change, so I'd rather keep it out of this PR to stay scoped.

Copy link
Copy Markdown

@docker-agent docker-agent left a comment

Choose a reason for hiding this comment

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

Assessment: 🟢 APPROVE

The PR is well-scoped and clearly written. It adds a new FAQ entry and a "Where secrets are stored" section to the credentials page, both documenting the Linux encrypted-file fallback when no Secret Service is running. The writing is clean — no hedge words, no meta-commentary, no marketing language. No structural or Hugo issues found.

Three minor style suggestions are left as inline comments (low-severity only).

Comment thread content/manuals/ai/sandboxes/faq.md
Comment thread content/manuals/ai/sandboxes/faq.md Outdated
Comment thread content/manuals/ai/sandboxes/security/credentials.md
Split the em-dash into two sentences and replace the "a common setup"
hedge with a direct imperative, per review.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dvdksn dvdksn added the status/do-not-merge Pull requests that are awaiting some event or decision before they can be merged. label Jun 3, 2026
@dvdksn dvdksn marked this pull request as ready for review June 3, 2026 12:17
Copy link
Copy Markdown

@docker-agent docker-agent left a comment

Choose a reason for hiding this comment

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

Assessment: 🟡 NEEDS ATTENTION

One path accuracy concern found in the new content across both changed files. The overall writing is clean, well-scoped, and follows the style guide.

Yes. On Linux, `sbx` stores secrets in the Secret Service exposed by your
desktop keyring, such as GNOME Keyring or KDE Wallet. Headless servers and some
WSL setups have no running Secret Service, so `sbx` falls back to an encrypted
file under `$XDG_CONFIG_HOME/com.docker.sandboxes`, which defaults to
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[LIKELY HIGH] Linux fallback path may use the wrong namespace

Both new sections document the Linux credential fallback path as $XDG_CONFIG_HOME/com.docker.sandboxes (defaulting to ~/.config/com.docker.sandboxes), but every other Linux XDG path in the project uses the namespace sandboxes — not com.docker.sandboxes. For example, troubleshooting.md shows:

~/.local/state/sandboxes/
~/.cache/sandboxes/
~/.config/sandboxes/

The com.docker.sandboxes naming is macOS convention (reverse-DNS Application Support directories). If the actual Linux on-disk path is ~/.config/sandboxes/ (consistent with all other Linux paths), the documentation would mislead users looking for the encrypted fallback file.

Please confirm the correct path against the implementation in docker/sandboxes#3231.


On Linux hosts without a running Secret Service — headless servers and some
WSL setups — `sbx` falls back to an encrypted file under your user config
directory `$XDG_CONFIG_HOME/com.docker.sandboxes`, which defaults to
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[LIKELY HIGH] Linux fallback path may use the wrong namespace

Same issue as above: $XDG_CONFIG_HOME/com.docker.sandboxes (defaulting to ~/.config/com.docker.sandboxes) does not match the Linux XDG namespace pattern used elsewhere in the docs (sandboxes, not com.docker.sandboxes). If the actual path is ~/.config/sandboxes/, users following this documentation won't find the file.

@dvdksn dvdksn removed the status/do-not-merge Pull requests that are awaiting some event or decision before they can be merged. label Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants