克隆历史版本¶
POST /api/v1/pipeline_history/{pipeline_history_uuid}/clone
概述¶
从历史配置创建新Pipeline v1;source缺省沿用历史,显式空数组覆盖为空,继续执行新增校验。
路由参数¶
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| pipeline_history_uuid | string | Y | 历史列表 historyRecord[].uuid 返回的历史 UUID,不是 Pipeline UUID 或数字 id。 |
Body 请求参数¶
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| name | string | Y | 新 Pipeline 名称 允许为空: False 允许为空字符串: False 最大长度: 256 $notSearchRegExp: [^a-zA-Z0-9_\u4e00-\u9fa5-]+ |
| type | string | Y | 新 Pipeline 运行类型 允许为空: False 可选值: ['local', 'central'] |
| source | array | 可选的新 source 列表;缺省使用历史版本 source 允许为空: False |
|
| isForce | boolean | 默认 Pipeline 冲突确认 允许为空: False |
参数补充说明¶
从指定历史配置创建一条独立 Pipeline,适用于保留旧版本、创建新规则或切换运行类型;不会修改来源 Pipeline。
参数与行为¶
name 和 type 必填;type=local 表示本地 Pipeline,type=central 表示中心 Pipeline。新名称最长 256 个字符,允许字符约束与普通新增接口一致。名称和 source 必须通过现有新增校验。
source 缺省时继承历史值;显式 [] 表示用空列表替换;显式传非空数组则使用新列表。特殊类别仍会按现有业务规则组装 source,因此空数组不保证绕过类别校验或源冲突。沿用历史 source 常会与原 Pipeline 冲突,建议根据目标运行类型和类别选择新的 source。
新资源从 configVersion=1 开始,来源标记为 history/history_clone,保留来源历史 UUID、Pipeline UUID 和版本号。克隆不会继承原资源的整个历史链,也不会自动设为默认 Pipeline(asDefault=0)。其余配置来自历史快照,不支持在此请求中任意提交 content、category 或 extend;如需进一步编辑,克隆后调用普通修改接口。
isForce 为与 Front 对齐保留的默认冲突确认参数,缺省 false;历史克隆当前固定 asDefault=0,通常无需设置。此参数不能跳过名称/source校验。
使用前提¶
使用所属工作空间的 DF-API-KEY 调用 OpenAPI 服务。查询需要读取权限;恢复和克隆需要 Pipeline 管理及写入权限。接口不支持通过请求体指定其他工作空间或操作人。示例中的 Endpoint、资源 UUID 和 API-Key 均为占位符,请替换后调用,不要在日志中输出 API Key。
响应示例使用虚构资源,展示典型业务字段;实际响应可能包含普通 Pipeline 接口的其他字段。调用方应兼容新增字段。
版本字段¶
| 字段 | 含义 |
|---|---|
| configVersion | 配置版本号,新建资源从 1 开始;启用、禁用不推进此版本 |
| configVersionAt | 此配置版本生成时间,Unix 秒级时间戳,不是毫秒 |
| configVersionOperator / configVersionOperatorInfo | 操作人标识及展示信息;无法解析展示信息时可能为空对象 |
| configVersionSource / configVersionAction | 版本来源及动作,例如 openapi/modify、history/history_restore |
| configVersionSourceInfo | 来源补充信息;历史操作含 pipelineHistoryUUID、pipelineUUID、configVersion |
| createAt | 历史快照归档时间,可能晚于 configVersionAt;历史列表保留窗口按此字段计算 |
历史 config.content 和 config.testData 为 Base64 编码字符串。调用方先 Base64 解码,再按 UTF-8 读取;testData 是测试样例,不会因读取或恢复接口自动执行。不要把 configVersionSourceInfo 中的来源版本号当成当前版本号。
返回及重试¶
成功 content 沿用普通新增接口的 Pipeline 对象,uuid 是新资源 UUID;来源 UUID 在 configVersionSourceInfo 中。新建操作不提供幂等键,超时后先查询目标资源是否已创建,避免无条件重试产生重复创建或名称冲突。无权限、来源不存在或所属 Pipeline 已删除时不创建资源。
请求例子¶
curl -X POST 'https://openapi.guance.com/api/v1/pipeline_history/<pipeline_history_uuid>/clone' -H 'DF-API-KEY: <API-Key>' -H 'Content-Type: application/json' -d '{"name":"copy","type":"local","source":[]}'
响应¶
{
"code": 200,
"content": {
"name": "copy",
"type": "local",
"category": "logging",
"source": [],
"content": "YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==",
"testData": "W10=",
"dataType": "line_protocol",
"asDefault": 0,
"enableByLogBackup": 0,
"extend": {},
"id": 11,
"uuid": "pl_copy",
"workspaceUUID": "wksp_example",
"status": 0,
"creator": "acnt_example",
"updator": "acnt_example",
"createAt": 1788799900,
"updateAt": 1788800200,
"deleteAt": -1,
"configVersion": 1,
"configVersionAt": 1788800200,
"configVersionOperator": "acnt_example",
"configVersionSource": "history",
"configVersionAction": "history_clone",
"configVersionSourceInfo": {
"pipelineHistoryUUID": "plh_example",
"pipelineUUID": "pl_example",
"configVersion": 2
}
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE_EXAMPLE"
}