What's New
✨ Features
-
List isolated sessions API. New
GET /v1/isolated/sessionsreturns all active isolated sessions, plus alistmethod in every SDK (Go/Python/JS/Kotlin/C#). (#1269) -
Explicit bind mounts for bwrap isolation.
CreateIsolatedSessionRequestacceptsbinds: [{source, dest, readonly}], complementing thesource==dest-onlyextra_writable. Sources are validated against a writable allowlist; default allowlist changes from empty to/workspace, /mnt, /media, /data(feature was unreleased, no callers affected). Bind destinations must already exist inside the sandbox root. (#1264) -
Hardened bwrap defaults + opt-in
uid_mode: "userns". Every bwrap invocation now sets--hostname sandbox,--unshare-cgroup,--die-with-parent,--new-session. New opt-inuid_mode: "userns"as an alternative to the defaultsetprivfor identity switching. (#1226) -
MITM CA trusted by non-OS-store JDKs.
bootstrap.shimports the egress MITM CA into every JDK'scacertsviakeytool, fixing PKIX failures on tarball / Alpine / distroless JDKs. Idempotent, best-effort. (#1229)
🔧 Improvements
- OTel metrics normalized. Attribute keys
.→_(http_method,http_status_code,routing_result) and OTLP export switched to delta temporality. Update dashboards/alerts accordingly. (#1209)
📦 Misc
- GHCR image publishing. execd images now also published to
ghcr.io. (#1161) - Dead code cleanup. Removed unused Jupyter auth helpers, orphan types, and stale aliases (
log.Warning→log.Warn); net −296 lines, no behavior change. (#1266)
👥 Contributors
Thanks to these contributors ❤️
- Docker Hub: opensandbox/execd:v1.0.21
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/execd:v1.0.21
- GHCR: ghcr.io/opensandbox-group/opensandbox/execd:v1.0.21