github alibaba/OpenSandbox java/sandbox/v1.0.10
java/sandbox 1.0.10

6 hours ago

What's Changed

✨ Features

  • Add snapshot lifecycle support to the Sandbox Kotlin SDK. The SDK now exposes snapshot create/get/list/delete flows and supports creating a sandbox from snapshotId, matching the new lifecycle API. Snapshot creation is asynchronous, so consumers should poll snapshot status until it reaches Ready or Failed; Docker is supported by the server implementation, while Kubernetes snapshot runtime support remains a follow-up. #721 #764
  • Add secure endpoint access support for Kubernetes gateway mode. Kotlin sandbox creation can now opt into secureAccess, endpoint response headers are propagated into subsequent execd/generated API calls, and sensitive access headers are redacted from SDK HTTP logs. This is opt-in and only applies to Kubernetes sandboxes exposed through ingress.mode='gateway'; Docker runtime support is intentionally rejected by the server. #745
  • Add signed endpoint retrieval for short-lived sandbox port access. The Kotlin SDK now includes the signed endpoint API introduced by OSEP-0011, allowing callers to request time-limited route tokens instead of relying on static endpoint credentials. This is additive and keeps existing endpoint access behavior unchanged. #779 #787
  • Add Windows sandbox model support to the Kotlin SDK. The SDK models and converters now understand Windows OS platform values, alongside updated user documentation and unit coverage. #785
  • Add PVC auto-provisioning fields to the Kotlin sandbox models. This aligns Kotlin with the cross-language SDK surface for automatic PVC or Docker volume creation on sandbox startup. #749
  • Allow Sandbox.Connector to target a custom execd port. Callers can now set execdPort(port: Int) when the default 44772 port is not appropriate, while Builder and Resumer behavior remain unchanged. #806
  • Add distributed SandboxPool support for the Kotlin SDK through the optional Redis-backed sandbox-pool-redis module. Pool coordination now supports shared maxIdle, resize propagation through shared state, primary election and renewal, atomic idle acquisition, stale idle cleanup, and best-effort cleanup semantics. For distributed drain, use resize(0) and wait until snapshot().idleCount == 0; releaseAllIdle() remains a best-effort cleanup pass. #823

📦 Misc

  • Align secure routing constants with the ingress gateway implementation as part of the secure endpoint rollout. #761

👥 Contributors

Thanks to these contributors ❤️

@Pangjiping
@ninan-nn

Don't miss a new OpenSandbox release

NewReleases is sending notifications on new releases.