Cloud API 参考

所有接口以 /api/cloud-saas 为前缀,需要 Bearer Token 认证。

模版 (Templates)

列出模版

GET /api/cloud-saas/templates
参数类型说明
categorystring按分类过滤
qstring搜索关键词
localestring语言 (默认 'en')

返回已审核通过的模版(官方 + 社区),按分类和评分排序。

获取模版

GET /api/cloud-saas/templates/:slug

返回单个模版完整内容。支持服务端国际化渲染。

获取模版环境变量引用

GET /api/cloud-saas/templates/:slug/env-refs

返回模版声明的环境变量、表单字段和自动检测到的环境引用。

我的模版

GET /api/cloud-saas/templates/mine GET /api/cloud-saas/templates/mine/:slug

列出或获取当前用户的模版,包含待审核/已驳回的。

创建模版

POST /api/cloud-saas/templates
字段类型必填说明
slugstringKebab-case 标识 (1–255)
namestring显示名称 (1–255)
descriptionstringMarkdown 描述
contentobjectCloudConfig 快照
tagsstring[]最多 20 个标签
categorystring分类 (≤64)
baseCostnumber预估月费 (虾豆)

内容会经过模版策略白名单校验,提交后状态为 pending

更新模版

PUT /api/cloud-saas/templates/:slug

字段同创建(均可选)。仅作者在 draftrejected 状态下可修改。

重新提交审核

POST /api/cloud-saas/templates/:slug/submit

draftrejected 模版重新提交审核。

删除模版

DELETE /api/cloud-saas/templates/:slug

删除自己的模版(不限审核状态)。


部署 (Deployments)

列出部署

GET /api/cloud-saas/deployments
参数类型说明
limitnumber返回条数 (默认 50, 最大 100)
offsetnumber分页偏移 (默认 0)
includeOrphans'1'包含孤立命名空间
includeHistory'1'包含所有历史部署

每个命名空间返回最新的可见部署。

获取部署成本

GET /api/cloud-saas/deployments/costs

返回所有可见 SaaS 部署的聚合成本。

创建部署

POST /api/cloud-saas/deployments
字段类型必填说明
namespacestringK8s 安全名称 (1–255)
namestring部署显示名称 (1–255)
templateSlugstring模版标识
resourceTierstringlightweight / standard / pro
agentCountnumber代理副本数 (≥0)
configSnapshotobject合规 CloudConfig
envVarsobject环境变量覆盖
runtimeContextobject{ locale?, timezone? }

创建部署时进行计费校验、模版校验、命名空间加锁和钱包余额检查(余额不足返回 402)。部署异步排队执行。

获取部署

GET /api/cloud-saas/deployments/:id

返回部署详情,含当前状态、阻塞信息和成本汇总。

获取单个部署成本

GET /api/cloud-saas/deployments/:id/costs

取消部署

POST /api/cloud-saas/deployments/:id/cancel

取消进行中的部署/销毁任务。不等待命名空间操作锁。

删除部署

DELETE /api/cloud-saas/deployments/:id

排队执行 Pulumi 销毁。中断进行中的操作。

重新部署

POST /api/cloud-saas/deployments/:id/redeploy
字段类型必填说明
modestringsnapshot (默认) 或 template
templateSlugstring从指定模版部署
configSnapshotobject策略校验后的显式配置
envVarsobject覆盖模版声明的环境变量
runtimeContextobject{ locale?, timezone? }

同命名空间重新部署,生成新历史记录。不扣费。


部署日志

GET /api/cloud-saas/deployments/:id/logs GET /api/cloud-saas/deployments/:id/logs/history
参数类型说明
agentstring按代理名过滤
podstring按 Pod 名过滤
pagenumber页码 (1–100)
limitnumber每页条数 (20–500, 默认 200)

GET /logs 返回 SSE 事件流 (text/event-stream),实时推送 logstatuserrorclose 事件。部署到终态时自动终止。

GET /logs/history 返回 JSON 数组。

Pod 信息

GET /api/cloud-saas/deployments/:id/pods GET /api/cloud-saas/deployments/:id/pod-logs
参数类型说明
podstringPod 名 (/pod-logs 必填)
agentstring代理名
tailnumber日志行数 (默认 200, 最大 2000)
containerstring容器名 (默认 'openclaw')

GET /pods 列出部署命名空间中 K8s Pod。GET /pod-logs 通过 SSE 流推送实时 Pod 日志。

孤立命名空间管理

POST /api/cloud-saas/deployments/orphans/:namespace/claim POST /api/cloud-saas/deployments/orphans/:namespace/cleanup

/claim 认领无数据库行的 Cloud 命名空间。/cleanup 强制删除孤立命名空间(仅管理员)。


环境变量 (Environment Variables)

部署级环境变量

GET /api/cloud-saas/envvars/:deploymentId GET /api/cloud-saas/envvars/:deploymentId/:key PUT /api/cloud-saas/envvars/:deploymentId DELETE /api/cloud-saas/envvars/:deploymentId/:key
字段类型必填说明
varsarray是 (PUT)[{ key: string, value: string }]

值进行加密存储。GET 列表返回脱敏值 ('****'),按 Key 获取返回解密值供编辑。

全局环境变量

GET /api/cloud-saas/global-envvars GET /api/cloud-saas/global-envvars/:key PUT /api/cloud-saas/global-envvars DELETE /api/cloud-saas/global-envvars/:key
字段类型必填说明
keystring变量名
valuestring变量值
isSecretboolean是否涉密(脱敏)
groupNamestring所属分组

全局环境变量分组

POST /api/cloud-saas/global-envvars/groups DELETE /api/cloud-saas/global-envvars/groups/:name
字段类型必填说明
namestring分组名 (1–255)

供应商配置与目录 (Provider Profiles & Catalogs)

列出供应商目录

GET /api/cloud-saas/provider-catalogs

返回 Cloud 插件发现的模型供应商。每条包含插件 ID、供应商详情和必填密钥字段。

列出供应商配置

GET /api/cloud-saas/provider-profiles

返回当前用户的加密供应商配置。值已脱敏。

增改供应商配置

PUT /api/cloud-saas/provider-profiles
字段类型必填说明
idstring配置 ID(更新时)
providerIdstring提供商标识 (1–120)
namestring显示名称 (1–255)
enabledboolean是否启用
configobject供应商配置
envVarsobject加密环境变量

校验配置中的模型列表并对 Base URL 做 SSRF 检查。

测试供应商配置

POST /api/cloud-saas/provider-profiles/:id/test

用加密凭证测试供应商 API 连通性,8 秒超时,含 SSRF 防护。

刷新模型列表

POST /api/cloud-saas/provider-profiles/:id/models/refresh

从供应商原生 API 获取模型列表并写入配置。

删除供应商配置

DELETE /api/cloud-saas/provider-profiles/:id

删除配置及所有加密值。


钱包 (Wallet)

获取余额

GET /api/cloud-saas/wallet

返回当前用户虾豆余额。

{
  "balance": 5000,
  "currency": "shrimp_coin"
}

交易记录

GET /api/cloud-saas/wallet/transactions
参数类型说明
limitnumber条数 (默认 50, 最大 100)
offsetnumber分页偏移 (默认 0)

活动日志 (Activity)

GET /api/cloud-saas/activity
参数类型说明
limitnumber条数 (默认 50, 最大 100)
offsetnumber分页偏移 (默认 0)

返回用户 Cloud 活动日志(分页),包含部署创建、暂停、恢复、备份、恢复、删除等事件。


DIY Cloud (AI 生成)

创建生成运行

POST /api/cloud-saas/diy/runs
字段类型必填说明
promptstring生成提示词 (4–2000 字符)
feedbackstring反馈意见 (≤2000)
previousConfigobject历史 CloudConfig 快照
localestring语言 (≤16)
timezonestring时区 (≤64)

限流 12 次/分钟。返回 runIdstatusstreamUrl

AI 生成接入点需先进行能力校验、速率/预算控制及 Token 估算。

获取运行

GET /api/cloud-saas/diy/runs/:runId GET /api/cloud-saas/diy/runs/:runId/stream
参数类型说明
afterSeqnumber事件偏移 (≥0)

GET /runs/:runId 返回运行及 afterSeq 之后的事件。GET /stream 返回 SSE 实时流。

追加运行

POST /api/cloud-saas/diy/runs/:runId/feedback
字段类型必填说明
feedbackstring优化反馈 (1–2000)
promptstring更新提示词 (4–2000)
localestring语言
timezonestring时区

取消运行

POST /api/cloud-saas/diy/runs/:runId/cancel

取消生成运行。

DIY 资源

GET /api/cloud-saas/diy/templates GET /api/cloud-saas/diy/plugins GET /api/cloud-saas/diy/plugins/search?q=...

列出可用的社区模版和插件。


Schema 与校验

GET /api/cloud-saas/schema POST /api/cloud-saas/validate

GET /schema 返回 CloudConfig JSON Schema,供前端校验和编辑器自动补全。

POST /validate 接收原始 JSON 配置快照,返回校验结果及错误信息。


Next Steps