Skip to content

docs: egress jail as a security layer + daemon fail-fast troubleshooting#160

Merged
jraicr merged 2 commits into
devfrom
feat/docs-egress-security-layer
Jun 6, 2026
Merged

docs: egress jail as a security layer + daemon fail-fast troubleshooting#160
jraicr merged 2 commits into
devfrom
feat/docs-egress-security-layer

Conversation

@jraicr

@jraicr jraicr commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

What

Honest doc updates reflecting work on dev, plus a fact-check of the existing
Claude Code sandbox comparison table.

1. Surface the egress jail (README)

The contained-mode egress jail (INV-9) was missing from "drydock's security
layers"
. Added it: deny-by-default L4 domain allowlist via a per-session proxy
sidecar, no Docker socket, no host network — with a pointer to the named residual
gaps in docs/security.md (no over-claim).

2. Daemon fail-fast troubleshooting (docs/troubleshooting.md)

New section for the "Docker daemon is not responding" fail-fast (PR #159):
restart Docker Desktop or native Docker Engine, the DRYDOCK_DOCKER_PROBE_TIMEOUT
knob, and the docker ps verify step.

3. Correct the Claude Code sandbox comparison table (README)

Fact-checked against the live docs (code.claude.com/docs/en/sandboxing):

  • Network — the Claude sandbox allowlist is session-wide, not
    "per-command"; new domains prompt on first use. Dropped drydock's now-moot
    "not per-command" contrast.
  • Filesystem — the sandbox leaves credential files (~/.ssh/,
    ~/.aws/credentials) readable by default unless denyRead is set (noted —
    it sharpens the contrast with drydock not mounting them at all).
  • What it is — enable via the /sandbox panel or sandbox.enabled in
    settings (not only /sandbox).
  • What it's for — prompt reduction is auto-allow mode.
  • Mechanism (Seatbelt/bubblewrap), per-Bash-command scope, the no-TLS-inspection
    note, and the user-namespaces prose were verified correct and left unchanged.

Honest framing preserved

Does not claim "secure"/"done"/"at parity with X" — the egress jail is
implemented but not yet validated in runtime (gates G1/G2 pending). Forbidden-phrase
grep clean (0). Docs-only.

…troubleshooting

README: add the contained-mode egress jail (INV-9) to the "drydock's security
layers" list — deny-by-default L4 domain allowlist via a per-session proxy
sidecar, no socket, no host network — with an honest residual-gaps pointer.

docs/troubleshooting.md: new section for the "Docker daemon is not responding"
fail-fast — restart Docker Desktop or native Docker Engine, the
DRYDOCK_DOCKER_PROBE_TIMEOUT knob, and the 'docker ps' verify step.
@jraicr jraicr added type:docs Documentation size:s Small: under 100 lines labels Jun 6, 2026
Fact-checked against the live sandbox docs (code.claude.com/docs/en/sandboxing).
Two accuracy fixes and two nuances:

- Network: the Claude sandbox allowlist is SESSION-WIDE (shared across all Bash
  commands; new domains prompt on first use), not "per-command" as stated. Dropped
  drydock's now-moot "not per-command" contrast; framed it as static vs prompt-on-use.
- Filesystem: the sandbox leaves credential files (~/.ssh/, ~/.aws/credentials)
  readable by default unless denyRead is set — noted, since it sharpens the contrast
  with drydock not mounting them at all.
- What it is: enable via the /sandbox panel or sandbox.enabled in settings (not
  only "/sandbox").
- What it's for: prompt reduction applies in auto-allow mode.

Mechanism (Seatbelt/bubblewrap), per-Bash-command scope, the no-TLS-inspection
note, and the user-namespaces prose were verified correct and left unchanged.
@jraicr jraicr merged commit 0d50c8e into dev Jun 6, 2026
3 checks passed
@jraicr jraicr deleted the feat/docs-egress-security-layer branch June 6, 2026 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:s Small: under 100 lines type:docs Documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant