components/execd 1.0.20
What's New
✨ Features
- Filesystem isolation with bubblewrap (bwrap). New
pkg/isolation/package adds abubblewrap-based filesystem isolation layer for sandbox command execution. Includes anIsolatorinterface, bwrap argv builder, startup probe, upper directory management, and seccomp loading. The bwrap binary is now statically built (musl-gcc) and injected into the execd container image via init container alongside execd itself. Configurable via isolation flags (upper root,max bytes,diff max bytes,allowed writable) with env var overrides. Diff/commit support deferred to Phase 2 (returns 503). Includes a CI smoke test validating static linking and bwrap namespace creation. (#1008)
🐛 Bug Fixes
-
False command failures from global signal interference resolved.
execdcould report a successfully-executed command asCommandExecErrorwhencmd.Wait()returned a spuriousECHILD("waitid: no child processes"). Root cause:signal.Notify(signals)with no signal list captured ALL signals (including SIGCHLD/SIGURG used by Go runtime for child reaping and async preemption), andsignal.Reset()was process-global, racing across concurrent commands. Now uses an explicit signal set withsignal.Stop()for scoped cleanup, and ignores spuriousECHILDfromWait()when the child already ran to completion. (#1042) -
Auto-created parent directories now inherit owner/group. When uploading a file to a path whose parent directories don't exist,
resolveUploadTargetnow propagatesowner/groupmetadata to each newly created parent directory via the newMkdirAllWithOwnershiphelper. Pre-existing directories are left untouched. TheMakeDirAPI also uses this helper for consistent behavior during multi-level directory creation. (#1075)
📖 Documentation
-
DEVELOPMENT.md rewritten. Reduced from 598 to 99 lines — removed generic Go boilerplate and fixed all code examples from Beego to Gin to match the current codebase (migrated in v1.0.3). (#1071)
-
Missing
EXECD_ACCESS_TOKENenv var documented. The README env var table now includesEXECD_ACCESS_TOKEN, whichparser.godefines but was previously undocumented. (#1071) -
Docs site links updated. execd component docs updated as part of the VitePress docs site restructure — fixed broken cross-references and aligned with the new section-based information architecture. (#1090)
👥 Contributors
Thanks to these contributors ❤️
- Docker Hub: opensandbox/execd:v1.0.20
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/execd:v1.0.20