فهرست منبع

docs(ds/api): 注释 DS 3.4 PUT workflow API 必传字段踩坑

实证:task version / relation version / locations 缺一会让 PUT 看似成功但
UI 不渲染或原 task 丢失。参考 workspace 脚本含 verify checklist。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tianyu.chu 14 ساعت پیش
والد
کامیت
eb687fe87a
1فایلهای تغییر یافته به همراه8 افزوده شده و 0 حذف شده
  1. 8 0
      dw_base/ds/api.py

+ 8 - 0
dw_base/ds/api.py

@@ -7,6 +7,14 @@ DolphinScheduler API 客户端最小封装。
 - requests.Session 注入 token header
 - 通用 get / post,2xx 返回 json,非 2xx 抛 RuntimeError
 - 不预封任何具体 endpoint,调用方按需拼 path
+
+DS 3.4 PUT /workflow-definition/{code} 必传字段(实证踩坑):
+- taskDefinitionJson 中每个 task 字典必须含 version 字段——DS 端用 (code, version) 识别
+  task identity;缺则被当新建 task 处理,原 task 被丢弃
+- taskRelationJson 中 preTaskVersion / postTaskVersion 必须用任务真实 version,不能硬编 0
+- locations 字段必须传 [{taskCode, x, y}, ...] 含全部 task 坐标,否则 UI 不渲染节点
+  (taskDefinitionList 数据上有,但 DAG 看不到)
+实现参考:workspace/20260507/extend_raw_to_ods_workflows.py(含 verify_checklist 校验)
 """
 import os
 from configparser import ConfigParser