Files
windmill/debugger/nsjail.debug.config.proto
Ruben Fiszel 154f8f461e feat(debugger): install debug session deps from the instance registry settings (#10550)
* feat(debugger): install debug session deps from the instance registry settings

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(debugger): keep install-time registry credentials out of the session-visible tree

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs: drop em dashes from the debugger registry docs and comments

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(debugger): stop installing for a session that went away during the settings fetch

Also serves nativets sessions the npm settings their installer reads.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 20:16:38 +00:00

114 lines
1.7 KiB
Protocol Buffer

name: "debugger sandbox"
mode: ONCE
hostname: "debugger"
log_level: ERROR
disable_rl: true
mount_proc: true
clone_newnet: false
clone_newuser: true
clone_newcgroup: false
skip_setsid: true
keep_caps: false
keep_env: true
# System directories (read-only)
mount {
src: "/bin"
dst: "/bin"
is_bind: true
}
mount {
src: "/lib"
dst: "/lib"
is_bind: true
}
mount {
src: "/lib64"
dst: "/lib64"
is_bind: true
mandatory: false
}
mount {
src: "/usr"
dst: "/usr"
is_bind: true
}
mount {
src: "/etc"
dst: "/etc"
is_bind: true
}
mount {
src: "/sys/fs"
dst: "/sys/fs"
is_bind: true
mandatory: false
}
# Bind-mount /tmp from host (job directories are created here)
mount {
src: "/tmp"
dst: "/tmp"
is_bind: true
rw: true
}
# Private scratch, one instance per jail. `windmill prepare-deps` writes the registry
# credentials here rather than into its install directory under the shared /tmp above, so no
# other session can read them, and they go away with the jail even when it is killed.
mount {
dst: "/var/tmp"
fstype: "tmpfs"
rw: true
}
# Debugger scripts directory (for Python debugger server)
mount {
src: "/debugger"
dst: "/debugger"
is_bind: true
}
# Device nodes
mount {
src: "/dev/null"
dst: "/dev/null"
is_bind: true
rw: true
}
mount {
src: "/dev/random"
dst: "/dev/random"
is_bind: true
}
mount {
src: "/dev/urandom"
dst: "/dev/urandom"
is_bind: true
}
# Home directory (for bun cache etc)
mount {
dst: "/root"
fstype: "tmpfs"
rw: true
}
iface_no_lo: true
envar: "HOME=/root"
envar: "TMPDIR=/tmp"
envar: "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"