RELEASE_NOTES.md
1 # server 0.1.9 2 3 ## What's New 4 5 ### ✨ Features 6 - server proxy by websocket (#547) 7 - **[EXPERIMENTAL]** auto-renew on sandbox proxy/ingress access for [OSEP-0009](https://github.com/alibaba/OpenSandbox/blob/main/oseps/0009-auto-renew-sandbox-on-ingress-access.md) (#535) 8 - **[UNSTABLE]** add Pool CRUD API and Kubernetes CRD service (#357) 9 10 ### 🐛 Bug Fixes 11 - **[IMPORTANT]** restore lifecycle route serialization to omit None fields in JSON responses instead of emitting explicit null (#555) 12 - ensure httpx streaming responses are closed in sandbox proxy (#547) 13 - print exception stack when create workload failure (#524) 14 15 ## 👥 Contributors 16 17 Thanks to these contributors ❤️ 18 19 - @wangdengshan 20 - @Pangjiping 21 - @ninan-nn 22 23 --- 24 - PyPI: opensandbox-server==0.1.9 25 - Docker Hub: opensandbox/server:v0.1.9 26 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.9 27 28 # server 0.1.8 [DEPRECATED] 29 30 ## What's New 31 32 ### ✨ Features 33 - bump execd's image to v1.0.8 (#502) 34 - Add [egress].mode (dns | dns+nft, default dns); wire to sidecar as OPENSANDBOX_EGRESS_MODE on both Docker and Kubernetes (#501) 35 - add per-sandbox egress auth header generation and propagation through lifecycle endpoint responses (#492) 36 - support no-timeout (manual cleanup) in Kubernetes sandbox service (#466) 37 - support manual cleanup sandboxes (#446) 38 - implement OSSFS storage for **Docker service** in sandbox lifecycle (#340) 39 40 ### 🐛 Bug Fixes 41 - 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) 42 - reuse a single volume per claim_name and add multiple volumeMounts instead of one volume per Volume object. (#458) 43 - 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) 44 - increase default pids_limit to 4096 for production use (#496) 45 - increase default pids_limit to 4096 for production use (#495) 46 - Fixes the issue where GET requests with query parameters fail through the sandbox proxy while POST requests succeed (#485) 47 - fix: sanitize subprocess call in ossfs_mixin.py (#461) 48 - treat the singular Trailer header as hop-by-hop in the sandbox proxy route (#479) 49 - Remove duplicate sandbox_service instantiation in server lifespan (#468) 50 - restore port allocation for user-defined Docker networks (#467) 51 - fix(server): use asyncio.sleep instead of time.sleep in sandbox create (#489) 52 - disable IPv6 in execd init for Kubernetes egress, fix #501 (#514) 53 54 ## 👥 Contributors 55 56 Thanks to these contributors ❤️ 57 58 - @Pangjiping 59 - @ninan-nn 60 - @claw-mini-zz 61 - @joaquinescalante23 62 - @orbisai0security 63 - @Gujiassh 64 - @wishhyt 65 - @ctlaltlaltc 66 - @hittyt 67 - @skyler0513 68 69 --- 70 - PyPI: opensandbox-server==0.1.8 71 - Docker Hub: opensandbox/server:v0.1.8 72 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.8 73 74 # server 0.1.7 75 76 ## What's New 77 78 ### ✨ Features 79 - refactor kubernetes client service and add rate limter (#429) 80 - add pvc support in agent-sandbox/batchsandbox runtime (#424) 81 - support user-defined Docker network stack (#426) 82 - add server rbac for secrets (#396) 83 - support image auth in batchsandbox provider (#395) 84 85 ### 🐛 Bug Fixes 86 - clean up failed egress sidecar startup (#418) 87 - strip hop-by-hop proxy headers (#408) 88 - currect Kubernetes label key validation (#398) 89 - use internal endpoint resolution for server proxy mode (#404) 90 - clean up container when runtime prep fails (#394) 91 92 ## 👥 Contributors 93 94 Thanks to these contributors ❤️ 95 96 - @Generalwin 97 - @Gujiassh 98 - @Spground 99 - @ctlaltlaltc 100 - @zerone0x 101 - @suger-m 102 - @jinghuan-Chen 103 104 --- 105 - PyPI: opensandbox-server==0.1.7 106 - Docker Hub: opensandbox/server:v0.1.7 107 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.7 108 109 # server 0.1.6 110 111 ## What's New 112 113 ### ✨ Features 114 - secure container e2e case & guide doc (#249) 115 - add configurable resources in execd init container (#349) 116 117 ### 🐛 Bug Fixes 118 - reject websocket upgrades before proxying (#374) 119 - normalize sandbox resource names to DNS-1035 (#335) 120 - reject unsupported image.auth with actionable error (#364) 121 - fix create sandbox timeout in k8s service. No need to wait pod running when create sandbox (#349) 122 - fix file download path encoding and host volume validation errors (#257) 123 124 ### 📦 Misc 125 - sync latest image for v-prefixed TAG (#331) 126 127 ## 👥 Contributors 128 129 Thanks to these contributors ❤️ 130 131 - @fengcone 132 - @liuxiaopai-ai 133 - @Gujiassh 134 - @stablegenius49 135 - @Generalwin 136 - @RonaldJEN 137 - @Pangjiping 138 139 --- 140 - PyPI: opensandbox-server==0.1.6 141 - Docker Hub: opensandbox/server:v0.1.6 142 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.6 143 144 # server 0.1.5 145 146 ## What's New 147 148 ### ✨ Features 149 - add server.eip config for endpoint host in Docker runtime (#316) 150 - preserve proxy HTTP errors and add route coverage (#312) 151 - span X-Request-ID by server log (#269) 152 153 ### 🐛 Bug Fixes 154 - validate list metadata query format strictly (#316) 155 - forward query string in sandbox proxy handler (#266) 156 157 ### 📦 Misc 158 - fix packaging config (#325) 159 - add sandbox router test coverage (#306) 160 - add list sandbox test coverage (#292) 161 - add create and delete sandbox test coverage (#291) 162 - add renew sandbox test coverage (#290) 163 - add pause and resume sandbox test coverage (#289) 164 - add get sandbox endpoint test coverage (#288) 165 - opensandbox server deployment helm charts (#302) 166 - update README for kubernetes service (#298) 167 - add bootstrap operation-not-permitted troubleshooting (#286) 168 - clarify compose bridge networking and proxy usage (#285) 169 - update server helm template (#327) 170 - optimize workflow trigger (#320) 171 172 ## 👥 Contributors 173 174 Thanks to these contributors ❤️ 175 176 - @wangdengshan 177 - @liuxiaopai-ai 178 - @Spground 179 - @ninan-nn 180 - @Pangjiping 181 182 --- 183 - PyPI: opensandbox-server==0.1.5 184 - Docker Hub: opensandbox/server:v0.1.5 185 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.5 186 187 # server 0.1.4 188 189 ## What's New 190 191 ### 🐛 Bug Fixes 192 - Do not validate `OPEN-SANDBOX-API-KEY` when request is proxied to sandbox (/sandboxes/{id}/proxy/... or /v1/sandboxes/{id}/proxy/...) (#250) 193 - fix server deployment under docker compose bridge network (#256) 194 195 ### 📦 Misc 196 - bump egress version to v1.0.1 (#259) 197 198 ## 👥 Contributors 199 200 Thanks to these contributors ❤️ 201 202 - @Pangjiping 203 204 --- 205 - PyPI: opensandbox-server==0.1.4 206 - Docker Hub: opensandbox/server:v0.1.4 207 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.4 208 209 # server 0.1.3 210 211 ## What's New 212 213 ### ✨ Features 214 - support multi ingress gateway mode (#161) 215 - get kubernetes resource by informer (#213) 216 - add Docker named volume support with subPath for PVC backend (#233) 217 - support header ingress gateway mode (#241) 218 219 ### 🐛 Bug Fixes 220 - 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) 221 222 ### 📦 Misc 223 - Potential fix for code scanning alert no. 92: Workflow does not contain permissions (#239) 224 225 ## 👥 Contributors 226 227 Thanks to these contributors ❤️ 228 229 - @hittyt 230 - @Pangjiping 231 - @dependabot 232 233 --- 234 - PyPI: opensandbox-server==0.1.3 235 - Docker Hub: opensandbox/server:v0.1.3 236 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.3 237 238 # server 0.1.2 239 240 ## What's New 241 242 ### ✨ Features 243 - support local host volume mount in Docker runtime (#188) 244 - support NetworkPolicy by kubernetes provider (#190) 245 246 ### 📦 Misc 247 - chore(deps): bump pyasn1 from 0.6.1 to 0.6.2 in /server (#195) 248 - chore(deps): bump urllib3 from 2.3.0 to 2.6.3 in /server (#194) 249 250 ## 👥 Contributors 251 252 Thanks to these contributors ❤️ 253 254 - @hittyt 255 - @Pangjiping 256 - @dependabot 257 258 --- 259 - PyPI: opensandbox-server==0.1.2 260 - Docker Hub: opensandbox/server:v0.1.2 261 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.2 262 263 # server 0.1.1 264 265 ## What's New 266 267 ### ✨ Features 268 - [preview] add host/pvc volumes API definition (#166) 269 - support accessing sandbox endpoints via server built-in proxy (#172) 270 271 ### 🐛 Bug Fixes 272 - create kubernetes resource name with sandbox-id (#163) 273 274 ### ⚠️ Breaking Changes 275 - extract egress configuration as an independent module, `[runtime].egress_image` is not accepted, you can refer it from [Configuration reference](https://github.com/alibaba/OpenSandbox/blob/main/server/README.md#configuration-reference) (#186) 276 277 ### 📦 Misc 278 - package server as PyPI artifact (#170) 279 - fix server package name (#173) 280 - add Dockerfile for server image build (#176) 281 - add config generator for server package (#179) 282 - update README for server start with package (#175) 283 - update code owners (#187) 284 285 ## 👥 Contributors 286 287 Thanks to these contributors ❤️ 288 289 - @ninan-nn 290 - @hittyt 291 - @Pangjiping 292 293 --- 294 - PyPI: opensandbox-server==0.1.1 295 - Docker Hub: opensandbox/server:v0.1.1 296 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.1 297 298 # server 0.1.0 299 300 ## What's New 301 302 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. 303 304 ## 👥 Contributors 305 306 Thanks to these contributors ❤️ 307 308 - @Generalwin 309 - @jwx0925 310 - @hittyt 311 - @ninan-nn 312 - @Pangjiping 313 - @yunnian 314 315 --- 316 - PyPI: opensandbox-server==0.1.0 317 - Docker Hub: opensandbox/server:v0.1.0 318 - Aliyun Registry: sandbox-registry.cn-zhangjiakou.cr.aliyuncs.com/opensandbox/server:v0.1.0