更新工作流模板

替换一个工作流模板的内容。该接口按完整定义更新;要保留的字段也应在请求中提供。

PUT https://moi.matrixorigin.cn/newmoi/workflow-templates/{id}

调用前准备

查询工作流模板详情,取得当前完整定义;要保留的字段应复制到本次请求中。准备有目标工作区访问权限的个人访问令牌和目标工作区 ID。更新内置模板还需要管理员权限。

下方示例使用:

  • $AI_STUDIO_API_KEY:实际个人访问令牌,通过 X-API-Key Header 传递。

  • $WORKSPACE_ID:目标工作区 ID,通过 X-Workspace-ID Header 传递。

  • $TEMPLATE_ID:要更新的模板 ID。

路径参数

参数

类型

说明

id

integer

大于 0 的模板 ID。

请求体

字段

类型

是否必填

说明

template_key

string

条件必填

更新内置模板时可省略以保留原值;自定义模板中会被忽略并清空。不能借此把自定义模板改为内置模板,或反向修改类型。

name

string

更新后的模板名称。自定义模板在当前工作区和语言下不能重名。

description

string

更新后的模板说明;不传时会清空该字段。

dsl_yaml

string

更新后的工作流 DSL YAML。

runtime_fields

string

更新后的运行时字段 JSON 文本;不传时会清空该字段。提供时必须是合法 JSON。

is_builtin

boolean

不能变更模板类型。更新自定义模板时设为 true 会被拒绝;内置模板的权限由服务端按原模板类型校验。

请求示例

以下示例更新自定义模板:

curl -X PUT "https://moi.matrixorigin.cn/newmoi/workflow-templates/$TEMPLATE_ID" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "<TEMPLATE_NAME>",
    "description": "<DESCRIPTION>",
    "dsl_yaml": "<WORKFLOW_DSL_YAML>",
    "runtime_fields": "{\"fields\":[]}",
    "is_builtin": false
  }'

成功响应

成功时返回 200data 为更新后的完整模板对象。

{
  "code": "OK",
  "msg": "OK",
  "data": {
    "id": 12,
    "workspace_id": "ws-001",
    "created_by": "user-001",
    "updated_by": "user-002",
    "template_key": "",
    "name": "daily-import-template",
    "description": "更新后的每日导入工作流模板",
    "language": "zh-CN",
    "dsl_yaml": "workflow: {}",
    "runtime_fields": "{\"fields\":[]}",
    "is_builtin": false,
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T11:00:00Z"
  }
}

响应字段如下。

字段

类型

说明

code

string

成功时为 OK

msg

string

成功时为 OK

data.id

integer

模板 ID。

data.workspace_id

string

所属工作区 ID;内置模板为空字符串。

data.created_by

string

创建者标识。

data.updated_by

string

最后更新者标识。

data.template_key

string

内置模板标识;自定义模板为空字符串。

data.name

string

更新后的名称。

data.description

string

更新后的说明。

data.language

string

模板语言。

data.dsl_yaml

string

更新后的工作流 DSL YAML。

data.runtime_fields

string

更新后的运行时字段 JSON 文本。

data.is_builtin

boolean

模板的原有类型。

data.created_at

string

创建时间;服务端未提供时可能省略。

data.updated_at

string

最后更新时间;服务端未提供时可能省略。

错误响应

失败响应的 datanull

{
  "code": "ErrTemplateTypeImmutable",
  "msg": "不能修改模板类型",
  "data": null
}

常见 HTTP 错误

HTTP 状态码

错误代码

常见原因

建议操作

400

ErrParamInvalid

请求体无法解析,namedsl_yaml 为空,或 runtime_fields 不是合法 JSON 文本。

提供完整、合法的模板定义。

400

ErrWorkspaceIDMissing

请求上下文中缺少工作区。

传入有效的 X-Workspace-ID

400

ErrTemplateTypeImmutable

尝试将自定义模板改为内置模板。

保持模板原有类型;如需新类型,请新建模板。

400

ErrSeedTemplateManaged

尝试更新系统管理的内置模板,或使用受系统管理的内置模板标识。

不要修改该内置模板;创建或更新自定义模板。

403

ErrPermissionDenied

更新内置模板时当前身份不是管理员。

使用有管理员权限的身份。

404

ErrNotFound

模板不存在,或自定义模板不属于当前工作区。

核对模板 ID 和工作区。

409

ErrDuplicateName

自定义模板名称在当前工作区和语言下已存在。

修改 name 后重试。

409

ErrDuplicateKey

内置模板的 template_key 在当前语言下已存在。

更换 template_key

500

ErrServer

服务端未能更新模板。

稍后重试。

后续操作

查询工作流模板详情确认更新结果。

最后更新于