docker/execd/v1.0.21

opensandbox-group/OpenSandboxdocker/execd/v1.0.21Jul 12, 2026by Pangjiping

AI Summary

Execd component v1.0.21 adds isolation session listing, bind mount hardening, and JDK CA trust.

Key Highlights

  • List isolated sessions API
  • Explicit bind mounts with updated allowlist
  • Hardened bwrap defaults
  • MITM CA trusted by non-OS-store JDKs

New Features

  • List isolated sessions API
  • Explicit bind mounts support
  • Hardened bwrap defaults (hostname, unshare-cgroup)
  • MITM CA import into JDK cacerts

Full Release Notes

## What's New

### ✨ Features

- **List isolated sessions API.** New `GET /v1/isolated/sessions` returns all active isolated sessions, plus a `list` method in every SDK (Go/Python/JS/Kotlin/C#). (#1269)

- **Explicit bind mounts for bwrap isolation.** `CreateIsolatedSessionRequest` accepts `binds: [{source, dest, readonly}]`, complementing the `source==dest`-only `extra_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-in `uid_mode: "userns"` as an alternative to the default `setpriv` for identity switching. (#1226)

- **MITM CA trusted by non-OS-store JDKs.** `bootstrap.sh` imports the egress MITM CA into every JDK's `cacerts` via `keytool`, 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 ❤️

- @bcho
- @jianpingpei
- @Pangjiping

---
- 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