/ server / RELEASE_NOTES.md
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