- server proxy by websocket (#547)
- [EXPERIMENTAL] auto-renew on sandbox proxy/ingress access for OSEP-0009 (#535)
- [UNSTABLE] add Pool CRUD API and Kubernetes CRD service (#357)
- [IMPORTANT] restore lifecycle route serialization to omit None fields in JSON responses instead of emitting explicit null (#555)
- ensure httpx streaming responses are closed in sandbox proxy (#547)
- print exception stack when create workload failure (#524)
Thanks to these contributors ❤️
- @wangdengshan
- @Pangjiping
- @ninan-nn
- PyPI: opensandbox-server==0.1.9
- Docker Hub: opensandbox/server:v0.1.9
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.9
- bump execd's image to v1.0.8 (#502)
- Add [egress].mode (dns | dns+nft, default dns); wire to sidecar as OPENSANDBOX_EGRESS_MODE on both Docker and Kubernetes (#501)
- add per-sandbox egress auth header generation and propagation through lifecycle endpoint responses (#492)
- support no-timeout (manual cleanup) in Kubernetes sandbox service (#466)
- support manual cleanup sandboxes (#446)
- implement OSSFS storage for Docker service in sandbox lifecycle (#340)
- Kubernetes egress: Run the sidecar privileged; use a startup command (sysctl for net.ipv6.conf.all.disable_ipv6, then /egress) instead of Pod securityContext.sysctls for IPv6; remove build_ipv6_disable_sysctls. (#501)
- reuse a single volume per claim_name and add multiple volumeMounts instead of one volume per Volume object. (#458)
- fix Docker server-proxy endpoint resolution for bridge sandboxes with egress sidecar by falling back to host-mapped endpoint resolution when internal IP resolution is not applicable (#492)
- increase default pids_limit to 4096 for production use (#496)
- increase default pids_limit to 4096 for production use (#495)
- Fixes the issue where GET requests with query parameters fail through the sandbox proxy while POST requests succeed (#485)
- fix: sanitize subprocess call in ossfs_mixin.py (#461)
- treat the singular Trailer header as hop-by-hop in the sandbox proxy route (#479)
- Remove duplicate sandbox_service instantiation in server lifespan (#468)
- restore port allocation for user-defined Docker networks (#467)
- fix(server): use asyncio.sleep instead of time.sleep in sandbox create (#489)
- disable IPv6 in execd init for Kubernetes egress, fix #501 (#514)
Thanks to these contributors ❤️
- @Pangjiping
- @ninan-nn
- @claw-mini-zz
- @joaquinescalante23
- @orbisai0security
- @Gujiassh
- @wishhyt
- @ctlaltlaltc
- @hittyt
- @skyler0513
- PyPI: opensandbox-server==0.1.8
- Docker Hub: opensandbox/server:v0.1.8
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.8
- refactor kubernetes client service and add rate limter (#429)
- add pvc support in agent-sandbox/batchsandbox runtime (#424)
- support user-defined Docker network stack (#426)
- add server rbac for secrets (#396)
- support image auth in batchsandbox provider (#395)
- clean up failed egress sidecar startup (#418)
- strip hop-by-hop proxy headers (#408)
- currect Kubernetes label key validation (#398)
- use internal endpoint resolution for server proxy mode (#404)
- clean up container when runtime prep fails (#394)
Thanks to these contributors ❤️
- @Generalwin
- @Gujiassh
- @Spground
- @ctlaltlaltc
- @zerone0x
- @suger-m
- @jinghuan-Chen
- PyPI: opensandbox-server==0.1.7
- Docker Hub: opensandbox/server:v0.1.7
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.7
- secure container e2e case & guide doc (#249)
- add configurable resources in execd init container (#349)
- reject websocket upgrades before proxying (#374)
- normalize sandbox resource names to DNS-1035 (#335)
- reject unsupported image.auth with actionable error (#364)
- fix create sandbox timeout in k8s service. No need to wait pod running when create sandbox (#349)
- fix file download path encoding and host volume validation errors (#257)
- sync latest image for v-prefixed TAG (#331)
Thanks to these contributors ❤️
- @fengcone
- @liuxiaopai-ai
- @Gujiassh
- @stablegenius49
- @Generalwin
- @RonaldJEN
- @Pangjiping
- PyPI: opensandbox-server==0.1.6
- Docker Hub: opensandbox/server:v0.1.6
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.6
- add server.eip config for endpoint host in Docker runtime (#316)
- preserve proxy HTTP errors and add route coverage (#312)
- span X-Request-ID by server log (#269)
- validate list metadata query format strictly (#316)
- forward query string in sandbox proxy handler (#266)
- fix packaging config (#325)
- add sandbox router test coverage (#306)
- add list sandbox test coverage (#292)
- add create and delete sandbox test coverage (#291)
- add renew sandbox test coverage (#290)
- add pause and resume sandbox test coverage (#289)
- add get sandbox endpoint test coverage (#288)
- opensandbox server deployment helm charts (#302)
- update README for kubernetes service (#298)
- add bootstrap operation-not-permitted troubleshooting (#286)
- clarify compose bridge networking and proxy usage (#285)
- update server helm template (#327)
- optimize workflow trigger (#320)
Thanks to these contributors ❤️
- @wangdengshan
- @liuxiaopai-ai
- @Spground
- @ninan-nn
- @Pangjiping
- PyPI: opensandbox-server==0.1.5
- Docker Hub: opensandbox/server:v0.1.5
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.5
- Do not validate
OPEN-SANDBOX-API-KEYwhen request is proxied to sandbox (/sandboxes/{id}/proxy/... or /v1/sandboxes/{id}/proxy/...) (#250) - fix server deployment under docker compose bridge network (#256)
- bump egress version to v1.0.1 (#259)
Thanks to these contributors ❤️
- @Pangjiping
- PyPI: opensandbox-server==0.1.4
- Docker Hub: opensandbox/server:v0.1.4
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.4
- support multi ingress gateway mode (#161)
- get kubernetes resource by informer (#213)
- add Docker named volume support with subPath for PVC backend (#233)
- support header ingress gateway mode (#241)
- replaces os.path with posixpath for paths used inside containers to ensure forward slashes are used regardless of the host OS (fixing Windows support) (#234)
- Potential fix for code scanning alert no. 92: Workflow does not contain permissions (#239)
Thanks to these contributors ❤️
- @hittyt
- @Pangjiping
- @dependabot
- PyPI: opensandbox-server==0.1.3
- Docker Hub: opensandbox/server:v0.1.3
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.3
- support local host volume mount in Docker runtime (#188)
- support NetworkPolicy by kubernetes provider (#190)
- chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 in /server (#195)
- chore(deps): bump urllib3 from 2.3.0 to 2.6.3 in /server (#194)
Thanks to these contributors ❤️
- @hittyt
- @Pangjiping
- @dependabot
- PyPI: opensandbox-server==0.1.2
- Docker Hub: opensandbox/server:v0.1.2
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.2
- [preview] add host/pvc volumes API definition (#166)
- support accessing sandbox endpoints via server built-in proxy (#172)
- create kubernetes resource name with sandbox-id (#163)
- extract egress configuration as an independent module,
[runtime].egress_imageis not accepted, you can refer it from Configuration reference (#186)
- package server as PyPI artifact (#170)
- fix server package name (#173)
- add Dockerfile for server image build (#176)
- add config generator for server package (#179)
- update README for server start with package (#175)
- update code owners (#187)
Thanks to these contributors ❤️
- @ninan-nn
- @hittyt
- @Pangjiping
- PyPI: opensandbox-server==0.1.1
- Docker Hub: opensandbox/server:v0.1.1
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.1
This is OpenSandbox server first release. OpenSandbox server is a production-grade, FastAPI-based service for managing the lifecycle of containerized sandboxes. It acts as the control plane to create, run, monitor, and dispose isolated execution environments across container platforms.
Thanks to these contributors ❤️
- @Generalwin
- @jwx0925
- @hittyt
- @ninan-nn
- @Pangjiping
- @yunnian
- PyPI: opensandbox-server==0.1.0
- Docker Hub: opensandbox/server:v0.1.0
- Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.0