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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ai status/do-not-merge Pull requests that are awaiting some event or decision before they can be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants