OpenSandbox API 规范文档
中文 | English
本目录包含 OpenSandbox 项目的 OpenAPI 规范文档,定义了完整的 API 接口和数据模型。发起请求时请使用各规范中定义的服务器地址(例如生命周期 API 的 http://localhost:8080/v1,execd 的 http://localhost:8080)。
规范文件
1. sandbox-lifecycle.yml
沙箱生命周期管理 API
定义了沙箱环境的创建、管理和销毁的完整生命周期接口,并可直接从容器镜像启动。
核心功能:
- 沙箱管理:创建、列表、查询、删除沙箱实例,支持元数据过滤与分页
- 状态控制:暂停 (Pause)、恢复 (Resume) 沙箱执行
- 生命周期:支持 Pending → Running → Pausing → Paused → Stopping → Terminated,并包含错误态
Failed - 资源与运行时配置:指定 CPU/内存/GPU 资源限制、必填
entrypoint、环境变量,以及自定义extensions - 镜像支持:从公共或私有镜像仓库创建沙箱,支持私有仓库认证
- 超时管理:创建时必填
timeout,并可通过 API 续期 - 端点访问:获取沙箱内服务的公共访问端点
主要端点(基础路径 /v1):
POST /sandboxes- 从镜像创建沙箱,设置超时与资源限制GET /sandboxes- 列出沙箱,支持状态/元数据过滤与分页GET /sandboxes/{sandboxId}- 获取完整沙箱详情(包含镜像与 entrypoint)DELETE /sandboxes/{sandboxId}- 删除沙箱POST /sandboxes/{sandboxId}/pause- 异步暂停沙箱POST /sandboxes/{sandboxId}/resume- 恢复已暂停的沙箱POST /sandboxes/{sandboxId}/renew-expiration- 续期沙箱 TTLGET /sandboxes/{sandboxId}/endpoints/{port}- 获取指定端口的访问端点
认证方式:
- HTTP Header:
OPEN-SANDBOX-API-KEY: your-api-key - 环境变量:
OPEN_SANDBOX_API_KEY(SDK 客户端)
2. execd-api.yaml
沙箱内代码执行 API
定义了在沙箱环境内执行代码、命令和文件操作的接口,提供完整的代码解释器和文件系统管理能力。所有端点需要 X-EXECD-ACCESS-TOKEN 认证头。
核心功能:
- 代码执行:支持 Python、JavaScript 等多语言的有状态代码执行,并提供上下文生命周期管理
- 命令执行:Shell 命令执行,支持前台/后台模式,并可通过轮询端点查看状态和输出
- 文件操作:完整的文件和目录 CRUD 操作(创建、读取、更新、删除)
- 实时流式输出:基于 SSE (Server-Sent Events) 的实时输出流
- 系统监控:CPU 和内存指标的实时监控
- 访问控制:通过
X-EXECD-ACCESS-TOKEN进行 Token 认证
主要端点分类:
健康检查:
GET /ping- 服务健康检查
代码解释器:
GET /code/contexts- 列出活跃的代码执行上下文(可按语言过滤)DELETE /code/contexts- 按语言批量删除上下文DELETE /code/contexts/{context_id}- 删除指定上下文POST /code/context- 创建代码执行上下文POST /code- 在上下文中执行代码(流式输出)DELETE /code- 中断代码执行
命令执行:
POST /command- 执行 Shell 命令(流式输出)DELETE /command- 中断命令执行GET /command/status/{session}- 查询前台/后台命令状态GET /command/output/{session}- 获取命令的累积 stdout/stderr
文件系统:
GET /files/info- 获取文件元数据DELETE /files- 删除文件(不包含目录)POST /files/permissions- 修改文件权限POST /files/mv- 移动/重命名文件GET /files/search- 搜索文件(支持 glob 模式)POST /files/replace- 批量替换文件内容POST /files/upload- 上传文件(multipart)GET /files/download- 下载文件(支持断点续传)
目录操作:
POST /directories- 按权限配置创建目录(mkdir -p 语义)DELETE /directories- 递归删除目录
系统指标:
GET /metrics- 获取系统资源指标GET /metrics/watch- 实时监控系统指标(SSE 流)
技术特性
流式输出 (Server-Sent Events)
代码执行和命令执行接口使用 SSE 提供实时流式输出,支持以下事件类型:
init- 初始化事件status- 状态更新stdout/stderr- 标准输出/错误流result- 执行结果execution_complete- 执行完成execution_count- 执行计数error- 错误信息
资源限制
支持灵活的资源配置(类似 Kubernetes):
json
{
"cpu": "500m",
"memory": "512Mi",
"gpu": "1"
}文件权限
支持 Unix 风格的文件权限管理:
- 所有者 (owner)
- 用户组 (group)
- 权限模式 (mode) - 八进制格式,如 755
此页内容来自仓库源文件:
specs/README_zh.md