Skip to main content
Environments

Environment 数据结构

Forward Environment API 复用的响应结构、配置对象与元数据约束。

Environment 对象

创建、查询、列表、更新接口都会返回该结构。
字段类型说明
idstringEnvironment ID,前缀为 env_
typestring固定值 "environment"
namestringEnvironment 名称,最长 255 字符;去除首尾空白后不能为空
descriptionstringEnvironment 描述
configEnvironment config规范化后的 Environment 配置;缺省的 package manager 字段会被补齐
metadataobjectEnvironment metadata,省略时为 {}
archived_atstring | null归档时间,RFC 3339 格式;active 时为 null
created_atstring创建时间,RFC 3339 格式
updated_atstring最后更新时间,RFC 3339 格式
identity_idstring | nullForward 归属身份;PAT 创建时通常为 null
icon_urlstring | nullForward 关联的 icon URL
binding_infoBinding info绑定信息(Template 引用计数等)

Environment config

Environment 运行时配置对象。省略时默认使用 {"type":"cloud"};显式传入时不能为 null 或空对象。
字段类型必填说明
typestring"cloud""self_hosted"。仅当整个 config 省略时,才默认使用 cloud
packagesEnvironment packagescloud Environment 的预装包声明;不能为 null
setup_scriptstringEnvironment setup script

self_hosted config

self_hosted Environment 只允许 type 和可选的 setup_script;传入 packages 或其他不支持的字段返回 400 invalid_request_error
{"type": "self_hosted", "setup_script": "./initialize-worker.sh"}

cloud config 响应形态

响应中的 cloud config 会补齐 packages 中所有保留的 package manager 数组(未声明的返回 []),示例:
{
  "type": "cloud",
  "packages": {
    "type": "packages",
    "apt": [],
    "cargo": [],
    "gem": [],
    "go": [],
    "npm": [],
    "pip": []
  }
}

Environment packages

packages 是"包管理器名称 → 软件包规格字符串数组"的映射。当前实际执行安装的管理器为 apt / npm / pipcargo / gem / go 是响应中的保留字段,暂不支持通过这里安装依赖。
key类型说明示例
typestring响应中固定为 "packages",请求侧不要传入"packages"
aptstring 数组Debian/Ubuntu 包声明,通过 apt-get install -y 安装["git", "curl"]
npmstring 数组Node.js 全局包声明,通过 npm install -g 安装["pnpm@9"]
pipstring 数组Python 包声明,通过 pip install 安装["PyYAML==6.0.1"]
cargostring 数组响应保留字段;当前不支持通过该字段安装依赖[]
gemstring 数组响应保留字段;当前不支持通过该字段安装依赖[]
gostring 数组响应保留字段;当前不支持通过该字段安装依赖[]
每个 value 都必须是字符串数组。未声明的 package manager 数组会在响应中补为 []

Environment setup script

setup_script 是 sandbox 准备阶段、packages 安装完成之后执行的一段 shell 脚本,常用于克隆代码、写配置文件、warmup 缓存等无法用 packages 表达的初始化步骤。
约束
类型string
最大长度64 KB
解释器/bin/bash -lc
执行时机sandbox 准备阶段,packages 安装完成之后
超时10 分钟
非零退出本次 sandbox 准备失败
重复执行同一个 sandbox 中成功执行后不再重复;sandbox 回收重建后会再次执行
{
  "config": {
    "type": "cloud",
    "setup_script": "set -euo pipefail\n[ -d /workspace/.git ] || git clone https://github.com/me/repo /workspace\ncd /workspace && pnpm install --frozen-lockfile"
  }
}

Environment metadata

Environment 的自定义元数据键值对;created_by 为 Forward 保留字段,调用方不可传入(传入返回 400)。
约束
调用方提交上限通常 15 个自定义键值对
key 最长64 个字符
value 类型string
value 最长512 个字符

Binding info

Forward 在 Environment 响应中携带的引用聚合。
字段类型说明
agent_template_countinteger当前绑定该 Environment 的 Template 数量

列表分页字段

字段类型说明
dataEnvironment 对象 数组当前页记录
has_moreboolean是否还有下一页
next_pagestring | null下一页向后游标(推荐使用);has_more=true 时等于当前页 last_id,否则为 null
first_idstring | null当前页第一条记录 ID
last_idstring | null当前页最后一条记录 ID
请求侧的三种游标参数 page / after_id / before_id 互斥,同时提供多个返回 400;推荐使用 page,语义等价于 after_id