workspace run
workspace run 调用 Workflow Server 的 run API,在远程 draft、latest 或指定在线版本上执行 workflow。
从 issue #95 起,CLI 运行使用 API key owner 作为 actor 写入 server run record。项目本身必须已绑定顶层 package.json.id UUID,并且当前账号同时满足“项目可见 + 有运行权限 + 未被 run block 禁止”。
命令格式
参数
| 参数 | 说明 |
|---|---|
<workflow> | 本地 workflow 目录名、workflow 名称或直接传远程项目 UUID。 |
args | 发送到 server run API 的 args 数组。 |
--target <target> | 运行目标。默认 latest。 |
Target
| 值 | 说明 |
|---|---|
latest | 默认值。运行当前 latest 版本。 |
draft | 运行远程 draft。适合发布前验证。 |
| 具体版本号 | 运行指定在线版本。preparing 或 offline 版本会被 server 拒绝。 |
参数解析规则
workspace CLI 会从命令后的所有参数中识别自己的全局选项。未识别的参数会保留到args 数组。当前不会剥离 -- 分隔符,所以业务参数直接写在命令里。
| 场景 | 写法 |
|---|---|
| 普通业务参数 | run hello --message "hello" |
| 指定 target | run hello --target draft --message "hello" |
| 业务参数与全局选项同名 | 建议调整 workflow 参数名,避免被 CLI 解析。 |
API
| 步骤 | Endpoint |
|---|---|
| 远程运行 | POST /api/workflows/{workflow}/run |
target 和 args。直接调用 HTTP API 时,也可以用 version 作为具体版本号别名;未提供 target 时 server 会把 version 作为运行目标。
输出
| 情况 | 输出 |
|---|---|
| 运行成功 | server run API JSON。 |
workflow payload errCode 非 0 | server 返回错误语义,CLI 退出码为 1。 |
| 未登录 | 输出错误信息,退出码为 1。 |
| 403 | 当前阶段会优先区分“没有项目权限”和“当前账号已被该项目禁止运行”,而不是统一提示重新登录。 |
示例
conversation_id,直接调用 server run API;workspace run 当前只发送 target 和 args:
相关命令
| 目标 | 命令 |
|---|---|
| 单节点调试 | debug-node |
| 查看可运行版本 | versions |