@dazitech/cli 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -13
- package/dist/clis/dazi-app.js +5 -5
- package/dist/clis/dazi-flow.js +600 -170
- package/dist/docs/app/app-init.md +15 -15
- package/dist/docs/app/build-upload.md +13 -13
- package/dist/docs/app/release-guide.md +9 -9
- package/dist/docs/app//344/270/273/350/246/201/350/264/242/345/212/241/346/214/207/346/240/207/345/244/215/346/235/202/346/212/245/350/241/250/345/274/200/345/217/221/345/256/236/350/267/265.md +45 -41
- package/dist/docs/auth/auth-login.md +4 -4
- package/dist/docs/auth/token-management.md +5 -5
- package/dist/docs/data/cube-guide.md +2 -2
- package/dist/docs/data/data-spaces.md +4 -3
- package/dist/docs/data/table-preview.md +6 -6
- package/dist/docs/flow/ai-workflow-playbook.md +69 -0
- package/dist/docs/flow/flow-project-guide.md +92 -87
- package/dist/docs/flow/flows-guide.md +98 -94
- package/dist/docs/flow/local-files-spec.md +194 -0
- package/dist/docs/flow/node-code-guide.md +57 -55
- package/dist/docs/flow/run-guide.md +18 -18
- package/dist/docs/flow/variables-guide.md +61 -61
- package/dist/docs/flow//346/265/201/347/250/213/345/274/200/345/217/221/346/234/200/344/275/263/345/256/236/350/267/265-VS-flow0/346/241/210/344/276/213.md +31 -31
- package/dist/docs/guides/cli-invocation.md +30 -29
- package/dist/docs/guides/cli-reference.md +72 -71
- package/dist/docs/guides/flow-consistency-checklist.md +42 -0
- package/dist/docs/guides/mcp-setup.md +34 -34
- package/dist/docs/guides/migrate-v2-v3.md +6 -5
- package/dist/docs/guides/quickstart.md +8 -8
- package/dist/docs/guides/troubleshooting.md +39 -21
- package/dist/docs/guides/workspace-v3.md +17 -17
- package/dist/docs/index.json +18 -6
- package/dist/docs/onto/action-guide.md +4 -3
- package/dist/docs/onto/dazi_script_sdk_reference.md +20 -14
- package/dist/docs/onto/dazi_script_seed_data_guide.md +14 -14
- package/dist/docs/onto/function-guide.md +5 -5
- package/dist/docs/onto/rule-guide.md +7 -6
- package/dist/docs/onto/space-management.md +5 -3
- package/dist/docs/onto//346/234/254/344/275/223/350/204/232/346/234/254/347/274/226/345/206/231/346/214/207/345/215/227.md +35 -35
- package/dist/docs/onto//346/234/254/344/275/223/350/247/204/345/210/222/346/214/207/345/215/227.md +21 -21
- package/dist/docs/onto//350/247/204/345/210/222/347/244/272/344/276/213_/345/210/251/346/266/246/345/210/206/346/236/220/346/234/254/344/275/223/346/226/271/346/241/210.md +11 -11
- package/dist/examples/flow/minimal-excel-python/README.md +5 -0
- package/dist/examples/flow/minimal-excel-python/flow.json +48 -0
- package/dist/examples/flow/minimal-excel-python/flow.meta.json +23 -0
- package/dist/examples/flow/minimal-excel-python//350/212/202/347/202/271/Excel/347/244/272/344/276/213/code.py +7 -0
- package/dist/examples/flow/minimal-excel-python//350/212/202/347/202/271/Excel/347/244/272/344/276/213/node.info.json +14 -0
- package/dist/examples/index.json +6 -0
- package/dist/prompts/data/data-analysis.md +2 -2
- package/dist/prompts/flow/ai-workflow-playbook.md +69 -0
- package/dist/prompts/flow/flow-design.md +33 -19
- package/dist/prompts/flow/plan-generate.md +7 -7
- package/dist/prompts/flow/run-debug.md +15 -15
- package/dist/prompts/flow/run-fix-loop.md +20 -17
- package/dist/prompts/general/ask-dazi.md +6 -6
- package/dist/prompts/general/troubleshoot.md +4 -3
- package/dist/prompts/index.json +1 -0
- package/dist/prompts/onto/action-design.md +7 -5
- package/dist/prompts/onto/function-design.md +6 -4
- package/dist/prompts/onto/rule-seed.md +4 -2
- package/dist/prompts/onto/script-publish-run.md +19 -19
- package/package.json +1 -1
|
@@ -7,15 +7,16 @@
|
|
|
7
7
|
|
|
8
8
|
## 1. 定位与核心约定
|
|
9
9
|
|
|
10
|
-
| 维度
|
|
11
|
-
|
|
12
|
-
| CLI 入口
|
|
13
|
-
|
|
|
14
|
-
|
|
|
15
|
-
|
|
|
16
|
-
|
|
|
17
|
-
|
|
|
18
|
-
|
|
|
10
|
+
| 维度 | 说明 |
|
|
11
|
+
| ---------- | --------------------------------------------------------------- | ------------------- |
|
|
12
|
+
| CLI 入口 | `dazi flow …` → `dazi-flow`(Trae / VS Code / Cursor 交付环境) |
|
|
13
|
+
| **本地文件** | **[流程本地文件规范](./local-files-spec.md)**(AI 必读) |
|
|
14
|
+
| 工作区 | `dazi-work` + `项目/flow_<名>/` |
|
|
15
|
+
| 本地流程树 | `流程/<名>/flow.json` + `节点/<名>/code.*` |
|
|
16
|
+
| 画布真理源 | **`flow.json`**(= 平台 `config_json` 镜像,代码已剥离) |
|
|
17
|
+
| 代码真理源 | \*\*`节点/<名>/code.sql | py`** + `node push` |
|
|
18
|
+
| 主交互 | **资源管理器右键** + MVP 流程设计器 |
|
|
19
|
+
| AI | **Cursor 侧读文件** + `dazi-flow mcp` |
|
|
19
20
|
|
|
20
21
|
API 根路径:**`{serverUrl}/api/data-pipelines/v1`**(搭子数据流程引擎)。
|
|
21
22
|
|
|
@@ -36,7 +37,7 @@ dazi-work/
|
|
|
36
37
|
└── 客户数据清洗/ ← 一个流程 = 一个目录
|
|
37
38
|
├── 快速启动_<流程名>.md pull 后生成(flowId、常用命令、AI 单文件入口)
|
|
38
39
|
├── flow.json ★ 画布(节点配置 + 边,不含代码正文)
|
|
39
|
-
├── flow.meta.json flowId、uuid
|
|
40
|
+
├── flow.meta.json flowId、uuid 映射、代码指纹(pull / node new / repair-meta 维护,勿手改)
|
|
40
41
|
├── 节点/
|
|
41
42
|
│ └── SQL查询/
|
|
42
43
|
│ ├── code.sql ★ 代码唯一真理源
|
|
@@ -55,12 +56,12 @@ dazi-work/
|
|
|
55
56
|
|
|
56
57
|
---
|
|
57
58
|
|
|
58
|
-
## 3. CLI
|
|
59
|
+
## 3. CLI 怎么跑:全局 `dazi` 与 bundled
|
|
59
60
|
|
|
60
61
|
### 3.1 调用链(Trae / VS Code / Cursor 交付环境)
|
|
61
62
|
|
|
62
63
|
```text
|
|
63
|
-
|
|
64
|
+
dazi flow <子命令...>
|
|
64
65
|
│
|
|
65
66
|
▼ node bundled/clis/dazi.js
|
|
66
67
|
│ (设置 DAZI_BUNDLED_DIR,cwd = dazi-work 根)
|
|
@@ -68,33 +69,33 @@ dazi-work/
|
|
|
68
69
|
forward → node bundled/clis/dazi-flow.js <子命令...>
|
|
69
70
|
```
|
|
70
71
|
|
|
71
|
-
- **没有**全局 `dazi-flow` 命令;与本体一致,统一走
|
|
72
|
+
- **没有**全局 `dazi-flow` 命令;与本体一致,统一走 **`dazi`**。
|
|
72
73
|
- 扩展侧栏/右键菜单与上述 CLI **同源**(同一套 bundled `dazi-flow.js`)。
|
|
73
|
-
- 首次使用:在 **`dazi-work` 根**执行 `.\scripts\doctor-cli.ps1` →
|
|
74
|
+
- 首次使用:在 **`dazi-work` 根**执行 `.\scripts\doctor-cli.ps1` → `dazi auth login`。
|
|
74
75
|
|
|
75
76
|
### 3.2 命令写法对照
|
|
76
77
|
|
|
77
|
-
| 文档/扩展内部
|
|
78
|
-
|
|
79
|
-
| `dazi-flow project pull …`
|
|
80
|
-
| `dazi-flow node push …`
|
|
81
|
-
| `dazi-flow run node-exec …` |
|
|
82
|
-
| `dazi-flow variable pull …` |
|
|
78
|
+
| 文档/扩展内部 | 在 `dazi-work` 根目录终端 |
|
|
79
|
+
| --------------------------- | --------------------------- |
|
|
80
|
+
| `dazi-flow project pull …` | `dazi flow project pull …` |
|
|
81
|
+
| `dazi-flow node push …` | `dazi flow node push …` |
|
|
82
|
+
| `dazi-flow run node-exec …` | `dazi flow run node-exec …` |
|
|
83
|
+
| `dazi-flow variable pull …` | `dazi flow variable pull …` |
|
|
83
84
|
|
|
84
85
|
**工作目录技巧**:多数命令支持 `--dir <流程目录>`。也可 **`cd` 到流程目录**后省略 `--dir`(cwd 即 `流程/<名>/`)。
|
|
85
86
|
|
|
86
87
|
```powershell
|
|
87
88
|
# 在 dazi-work 根
|
|
88
89
|
cd D:\path\to\dazi-work
|
|
89
|
-
|
|
90
|
+
dazi auth whoami
|
|
90
91
|
|
|
91
92
|
# 拉取平台流程到本地(首次)
|
|
92
|
-
|
|
93
|
+
dazi flow project pull --flow 98 --dir "项目\flow_流程项目01\流程\MyFlow0529"
|
|
93
94
|
|
|
94
95
|
# 进入流程目录后,后续命令可省略 --dir
|
|
95
96
|
cd "项目\flow_流程项目01\流程\MyFlow0529"
|
|
96
|
-
|
|
97
|
-
|
|
97
|
+
dazi flow project status
|
|
98
|
+
dazi flow node push --node <node_uuid>
|
|
98
99
|
```
|
|
99
100
|
|
|
100
101
|
**常用子命令速查**(拉取 / 提交 / 测试 / 变量等)见 [Flow 文档索引 · 流程项目常用命令](./flows-guide.md#流程项目flow_-常用命令)。Plan、数据源等专题见 [执行计划](./plan-guide.md)、[数据源管理](./source-guide.md)。
|
|
@@ -138,27 +139,31 @@ cd "项目\flow_流程项目01\流程\MyFlow0529"
|
|
|
138
139
|
|
|
139
140
|
## 5. 同步策略(pull / push)
|
|
140
141
|
|
|
141
|
-
| 操作
|
|
142
|
-
|
|
143
|
-
| **pull**
|
|
144
|
-
| **push 代码** | 仅脏节点:`PATCH /flows/{id}/flow-nodes/{uuid}`(乐观锁 `expected_version`)
|
|
145
|
-
| **push 画布** | `PUT /flows/{id}` body `{ data: 完整 document }`(`--canvas`)
|
|
146
|
-
| **status**
|
|
142
|
+
| 操作 | API / 行为 |
|
|
143
|
+
| ------------- | ------------------------------------------------------------------------------------------- |
|
|
144
|
+
| **pull** | `GET /flows/{id}/snapshot` 一次拿全 → 拆成 `flow.json` + `节点/*/code.*` + `flow.meta.json` |
|
|
145
|
+
| **push 代码** | 仅脏节点:`PATCH /flows/{id}/flow-nodes/{uuid}`(乐观锁 `expected_version`) |
|
|
146
|
+
| **push 画布** | `PUT /flows/{id}` body `{ data: 完整 document }`(`--canvas`) |
|
|
147
|
+
| **status** | 本地 `code.*` 的 sha1 与 meta 中 `codeHash` 比对 |
|
|
148
|
+
| **doctor** | 检查 `flow.json` / `flow.meta.json` / `节点/` 一致性 |
|
|
149
|
+
| **repair-meta** | 按 `flow.json` 与 `节点/` 重建 meta 索引;并刷新 `快速启动_*.md` |
|
|
147
150
|
|
|
148
|
-
冲突时:先 **拉取** 或 **`node push --force
|
|
151
|
+
冲突时:先 **拉取** 或 **`node push --force`**(慎用覆盖)。**本地节点多于平台时勿 pull**,应先 `push --canvas`。
|
|
152
|
+
|
|
153
|
+
`pull` 前若 doctor 报错会打印警告;拉取后若平台节点少于本地会提示可能已覆盖手改画布。
|
|
149
154
|
|
|
150
155
|
---
|
|
151
156
|
|
|
152
157
|
## 6. 资源管理器菜单(主交互)
|
|
153
158
|
|
|
154
|
-
| 右键对象
|
|
155
|
-
|
|
156
|
-
| `flow.json` / 流程目录
|
|
157
|
-
| `节点/<名>/`
|
|
158
|
-
| `节点/<名>/code.*`
|
|
159
|
-
| `变量/`
|
|
160
|
-
| `变量/<名>.json`
|
|
161
|
-
| `项目/flow_*`
|
|
159
|
+
| 右键对象 | 常用命令 |
|
|
160
|
+
| --------------------------- | ------------------------------------------------------ |
|
|
161
|
+
| `flow.json` / 流程目录 | 打开设计器、拉取、**提交**、状态、**doctor**、**修复 meta**、运行整流程 |
|
|
162
|
+
| `节点/<名>/` | 打开代码、拉取/提交节点、**测试运行** |
|
|
163
|
+
| `节点/<名>/code.*` | 提交、测试、拉取 |
|
|
164
|
+
| `变量/` | 同步变量到本地 |
|
|
165
|
+
| `变量/<名>.json` | 刷新变量、查看变量信息 |
|
|
166
|
+
| `项目/flow_*` | 新建流程、拉取平台流程 |
|
|
162
167
|
| **数据资源 → 文件上传管理** | 浏览平台登记文件、**拉取到本地资源**、复制 AI 附加说明 |
|
|
163
168
|
|
|
164
169
|
设计器工具栏:**保存 / 校验 / 运行 / 提交 / 拉取**。
|
|
@@ -187,9 +192,9 @@ dazi-work/资源/files/<显示名>_<fileId前8位>/
|
|
|
187
192
|
CLI 等价命令:
|
|
188
193
|
|
|
189
194
|
```powershell
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
195
|
+
dazi flow managed-files list
|
|
196
|
+
dazi flow managed-files dirs --path excel
|
|
197
|
+
dazi flow managed-files pull --file-id <uuid> --relative-dir excel
|
|
193
198
|
```
|
|
194
199
|
|
|
195
200
|
---
|
|
@@ -202,15 +207,15 @@ Web 端 `@xyflow/react` 与 VS Code MVP 设计器共用同一套 **`flow.json`
|
|
|
202
207
|
|
|
203
208
|
### 6.2.1 节点尺寸与布局
|
|
204
209
|
|
|
205
|
-
| 项
|
|
206
|
-
|
|
207
|
-
| 最小宽度
|
|
208
|
-
| 典型高度
|
|
209
|
-
| 边框 / 圆角
|
|
210
|
-
| 锚点直径
|
|
211
|
-
| 横向间距
|
|
212
|
-
| 纵向间距
|
|
213
|
-
| 首节点参考坐标 | `x: 80, y: 80` | 从左上网格起点排布
|
|
210
|
+
| 项 | 规范值 | 说明 |
|
|
211
|
+
| -------------- | -------------- | -------------------------------------------------- |
|
|
212
|
+
| 最小宽度 | **200px** | 对齐 Web `CustomNode` 的 `min-w-[200px]` |
|
|
213
|
+
| 典型高度 | **约 88px** | header(约 36px)+ body(约 52px);内容多时会增高 |
|
|
214
|
+
| 边框 / 圆角 | 2px / 8px | 与系统设计器一致 |
|
|
215
|
+
| 锚点直径 | **12px** | 对应 Tailwind `w-3 h-3` |
|
|
216
|
+
| 横向间距 | **≥ 260px** | 相邻节点 `position.x` 差值,避免 200px 宽节点重叠 |
|
|
217
|
+
| 纵向间距 | **≥ 140px** | 相邻节点 `position.y` 差值 |
|
|
218
|
+
| 首节点参考坐标 | `x: 80, y: 80` | 从左上网格起点排布 |
|
|
214
219
|
|
|
215
220
|
**结构**:每个节点为 **header(标题)+ body(状态摘要)** 双层;`position` 为节点**左上角**在画布上的像素坐标。
|
|
216
221
|
|
|
@@ -227,13 +232,13 @@ Web 端 `@xyflow/react` 与 VS Code MVP 设计器共用同一套 **`flow.json`
|
|
|
227
232
|
|
|
228
233
|
锚点 ID 写入边的 **`sourceHandle`**(输出端)与 **`targetHandle`**(输入端)。**必须显式填写**,不要省略后依赖推断。
|
|
229
234
|
|
|
230
|
-
| 锚点 ID | 节点上的位置
|
|
231
|
-
|
|
232
|
-
| `l`
|
|
233
|
-
| `t`
|
|
234
|
-
| `r`
|
|
235
|
-
| `b`
|
|
236
|
-
| `true`
|
|
235
|
+
| 锚点 ID | 节点上的位置 | 角色 | 用于 |
|
|
236
|
+
| ------- | ----------------- | ------------------ | ---------------------------------- |
|
|
237
|
+
| `l` | 左侧中点 | **输入**(target) | 常规入边(最常见) |
|
|
238
|
+
| `t` | 顶部中点 | **输入**(target) | 自下方节点连入 |
|
|
239
|
+
| `r` | 右侧中点 | **输出**(source) | 常规出边(最常见) |
|
|
240
|
+
| `b` | 底部中点 | **输出**(source) | 连到下方节点 |
|
|
241
|
+
| `true` | 右侧 **30%** 高度 | **输出**(source) | **仅** `condition` 节点 True 分支 |
|
|
237
242
|
| `false` | 右侧 **70%** 高度 | **输出**(source) | **仅** `condition` 节点 False 分支 |
|
|
238
243
|
|
|
239
244
|
**合法组合**
|
|
@@ -246,14 +251,14 @@ Web 端 `@xyflow/react` 与 VS Code MVP 设计器共用同一套 **`flow.json`
|
|
|
246
251
|
|
|
247
252
|
**常用拓扑与锚点配对**
|
|
248
253
|
|
|
249
|
-
| 场景
|
|
250
|
-
|
|
251
|
-
| 左 → 右(主流水线) | `r`
|
|
252
|
-
| 上 → 下
|
|
253
|
-
| 右 → 下
|
|
254
|
-
| 下 → 左
|
|
255
|
-
| 条件 True 分支
|
|
256
|
-
| 条件 False 分支
|
|
254
|
+
| 场景 | sourceHandle | targetHandle |
|
|
255
|
+
| ------------------- | ------------ | ------------ |
|
|
256
|
+
| 左 → 右(主流水线) | `r` | `l` |
|
|
257
|
+
| 上 → 下 | `b` | `t` |
|
|
258
|
+
| 右 → 下 | `r` | `t` |
|
|
259
|
+
| 下 → 左 | `b` | `l` |
|
|
260
|
+
| 条件 True 分支 | `true` | `l` 或 `t` |
|
|
261
|
+
| 条件 False 分支 | `false` | `l` 或 `t` |
|
|
257
262
|
|
|
258
263
|
**边 `id` 命名**(与 React Flow 一致,便于 diff):
|
|
259
264
|
|
|
@@ -265,12 +270,12 @@ xy-edge__{source节点id}{sourceHandle}-{target节点id}{targetHandle}
|
|
|
265
270
|
|
|
266
271
|
### 6.2.3 各类节点锚点一览
|
|
267
272
|
|
|
268
|
-
| `data.type`
|
|
269
|
-
|
|
270
|
-
| `start`
|
|
271
|
-
| `end`
|
|
272
|
-
| `condition`
|
|
273
|
-
| 其他业务节点 |
|
|
273
|
+
| `data.type` | 输入 `l`/`t` | 输出 `r`/`b` | 输出 `true`/`false` | 备注 |
|
|
274
|
+
| ------------ | :----------: | :----------: | :-----------------: | ---------------------------------- |
|
|
275
|
+
| `start` | — | `r`, `b` | — | 无入边;语义 id 常为 `start-node` |
|
|
276
|
+
| `end` | `l`, `t` | — | — | 无出边;语义 id 常为 `end-node` |
|
|
277
|
+
| `condition` | `l`, `t` | — | **`true`, `false`** | **不用** `r`/`b` |
|
|
278
|
+
| 其他业务节点 | `l`, `t` | `r`, `b` | — | 如 `sql-query`、`python-script` 等 |
|
|
274
279
|
|
|
275
280
|
画布上节点 **`type` 恒为 `"custom"`**,业务类型在 **`data.type`**。
|
|
276
281
|
|
|
@@ -483,23 +488,23 @@ VS Code **打开流程设计器**(右键 `flow.json`)时:
|
|
|
483
488
|
|
|
484
489
|
## 8. 相关文档
|
|
485
490
|
|
|
486
|
-
| 文档
|
|
487
|
-
|
|
488
|
-
| [流程变量系统指南](./variables-guide.md)
|
|
489
|
-
| [节点代码编写指南](./node-code-guide.md)
|
|
490
|
-
| [Flow 运行与测试](./run-guide.md)
|
|
491
|
-
| [CLI 调用约定](../guides/cli-invocation.md) | `dazi.ps1`、Trae 扩展路径、doctor
|
|
492
|
-
| [CLI 命令速查](../guides/cli-reference.md)
|
|
493
|
-
| [Flow 管理入门](./flows-guide.md)
|
|
491
|
+
| 文档 | 内容 |
|
|
492
|
+
| ------------------------------------------- | ---------------------------------------------------------- |
|
|
493
|
+
| [流程变量系统指南](./variables-guide.md) | 变量模型、`output_variable_name`、各节点读写变量与代码示例 |
|
|
494
|
+
| [节点代码编写指南](./node-code-guide.md) | `python-script`、`sql-query` 等单节点代码约定 |
|
|
495
|
+
| [Flow 运行与测试](./run-guide.md) | `node-exec`、`flow-exec`、变量命令 |
|
|
496
|
+
| [CLI 调用约定](../guides/cli-invocation.md) | `dazi.ps1`、Trae 扩展路径、doctor |
|
|
497
|
+
| [CLI 命令速查](../guides/cli-reference.md) | 完整命令表 |
|
|
498
|
+
| [Flow 管理入门](./flows-guide.md) | 文档索引、**AI 创建流程速查**、平台级 Flow 操作 |
|
|
494
499
|
|
|
495
500
|
---
|
|
496
501
|
|
|
497
502
|
## 9. 常见问题
|
|
498
503
|
|
|
499
|
-
| 现象
|
|
500
|
-
|
|
501
|
-
| `dazi-flow` 找不到
|
|
502
|
-
| 提交 HTTP 405
|
|
503
|
-
| 变量查看失败
|
|
504
|
-
| 节点测试报缺上游变量 | 先运行上游节点,或 **运行整流程(debug)** 再测当前节点
|
|
505
|
-
| 代码改了平台没更新
|
|
504
|
+
| 现象 | 处理 |
|
|
505
|
+
| -------------------- | ----------------------------------------------------------------------------------- |
|
|
506
|
+
| `dazi-flow` 找不到 | 使用 `dazi flow …`,运行 `doctor-cli.ps1` |
|
|
507
|
+
| 提交 HTTP 405 | 画布提交须 `PUT /flows/{id}`,用 `project push --canvas`,勿对 `apply-patch` 发 PUT |
|
|
508
|
+
| 变量查看失败 | 先 **测试节点** 或 **运行流程**;确认 `flow.meta.json` 有 `flowId` |
|
|
509
|
+
| 节点测试报缺上游变量 | 先运行上游节点,或 **运行整流程(debug)** 再测当前节点 |
|
|
510
|
+
| 代码改了平台没更新 | `node push` 或 `project push`;看 `project status` 是否脏 |
|
|
@@ -9,13 +9,15 @@
|
|
|
9
9
|
|
|
10
10
|
## 推荐阅读顺序
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
0. **[流程本地文件规范](./local-files-spec.md)** — **AI 必读**:`flow.json` / `flow.meta.json` / `node.info.json` 职责与标准示例
|
|
13
|
+
0.1 [流程 AI 工作手册](./ai-workflow-playbook.md) — 一分钟决策树与禁止清单
|
|
14
|
+
1. [数据流程项目开发指南](./flow-project-guide.md) — 目录结构、`dazi flow`、菜单、pull/push 循环
|
|
13
15
|
2. **[画布节点与连线规范](./flow-project-guide.md#62-画布节点与连线规范ai-创建--编辑-flowjson-必读)** — **AI 创建流程必读**:节点尺寸 200px、锚点 `l/t/r/b/true/false`、条件分支
|
|
14
16
|
3. [流程开发最佳实践(VS-flow0 案例)](./流程开发最佳实践-VS-flow0案例.md) — **端到端案例**:Excel → 质检 → SQL → 落库、五阶段开发法、检查表
|
|
15
17
|
4. [流程变量系统指南](./variables-guide.md) — 变量模型、`output_variable_name`、代码节点如何用变量
|
|
16
18
|
5. [节点代码编写指南](./node-code-guide.md) — `python-script`、`sql-query` 等单节点代码
|
|
17
19
|
6. [Flow 运行与测试](./run-guide.md) — 单节点/整流程运行、变量
|
|
18
|
-
7. [CLI 调用约定](../guides/cli-invocation.md) —
|
|
20
|
+
7. [CLI 调用约定](../guides/cli-invocation.md) — `dazi` 在 Trae/VS Code 中的用法
|
|
19
21
|
|
|
20
22
|
---
|
|
21
23
|
|
|
@@ -24,14 +26,14 @@
|
|
|
24
26
|
在 **`dazi-work` 根目录**(Trae、VS Code、Cursor 交付环境):
|
|
25
27
|
|
|
26
28
|
```powershell
|
|
27
|
-
|
|
29
|
+
dazi flow <子命令...>
|
|
28
30
|
```
|
|
29
31
|
|
|
30
32
|
等价于开发时的 `dazi-flow <子命令...>`。示例:
|
|
31
33
|
|
|
32
34
|
```powershell
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
dazi flow flows list
|
|
36
|
+
dazi flow project pull --flow 98 --dir "项目\flow_xxx\流程\MyFlow"
|
|
35
37
|
```
|
|
36
38
|
|
|
37
39
|
---
|
|
@@ -42,6 +44,8 @@
|
|
|
42
44
|
| ------------------ | --------------------------------------------------- |
|
|
43
45
|
| 拉取平台流程到本地 | `flow project pull --flow <id> --dir <流程目录>` |
|
|
44
46
|
| 提交代码 + 画布 | `flow project push --dir <流程目录> --canvas` |
|
|
47
|
+
| 目录一致性检查 | `flow project doctor --dir <流程目录>` |
|
|
48
|
+
| 修复 meta 索引 | `flow project repair-meta --dir <流程目录>` |
|
|
45
49
|
| 查看本地改动 | `flow project status --dir <流程目录>` |
|
|
46
50
|
| 提交单个节点代码 | `flow node push --node <uuid> --dir <流程目录>` |
|
|
47
51
|
| 单节点测试 | `flow run node-exec --node <uuid> --dir <流程目录>` |
|
|
@@ -87,46 +91,46 @@
|
|
|
87
91
|
新建节点(在流程目录):
|
|
88
92
|
|
|
89
93
|
```powershell
|
|
90
|
-
|
|
94
|
+
dazi flow node new --type <data.type> --dir . --label "<显示名>"
|
|
91
95
|
```
|
|
92
96
|
|
|
93
97
|
### 总览
|
|
94
98
|
|
|
95
|
-
| 分组
|
|
96
|
-
|
|
97
|
-
| 流程控制 | `condition`
|
|
98
|
-
| 流程控制 | `delay`
|
|
99
|
-
| 数据处理 | `file-source`
|
|
100
|
-
| 数据处理 | `excel-import`
|
|
101
|
-
| 数据处理 | `excel-python`
|
|
102
|
-
| 数据处理 | `sql-query`
|
|
103
|
-
| 数据处理 | `python-script`
|
|
104
|
-
| 数据处理 | `database-source`
|
|
105
|
-
| 数据处理 | `database-sink`
|
|
106
|
-
| 数据处理 | `dataspace-source`
|
|
107
|
-
| 数据处理 | `dataspace-sink`
|
|
108
|
-
| 数据处理 | `data-quality-check`
|
|
109
|
-
| 数据处理 | `folder-resource-import`
|
|
110
|
-
| 数据处理 | `folder-resource-register` | 资源注册
|
|
99
|
+
| 分组 | `data.type` | 名称 | 代码文件 | 典型用途 |
|
|
100
|
+
| -------- | -------------------------- | -------------- | ---------- | ------------------------------- |
|
|
101
|
+
| 流程控制 | `condition` | 条件判断 | `code.py` | 布尔分支,出边 `true`/`false` |
|
|
102
|
+
| 流程控制 | `delay` | 延时等待 | — | 暂停 N 秒 |
|
|
103
|
+
| 数据处理 | `file-source` | 文件输入 | — | 托管/上传文件 → 表变量 |
|
|
104
|
+
| 数据处理 | `excel-import` | Excel 导入 | — | 单 Sheet 简单导入 |
|
|
105
|
+
| 数据处理 | `excel-python` | Excel 开发 | `code.py` | 多 Sheet、复杂表头 |
|
|
106
|
+
| 数据处理 | `sql-query` | SQL 查询 | `code.sql` | DuckDB 内存 SQL,上游变量作表名 |
|
|
107
|
+
| 数据处理 | `python-script` | Python 脚本 | `code.py` | pandas 转换(最常用) |
|
|
108
|
+
| 数据处理 | `database-source` | 数据库读取 | `code.sql` | 外部库只读(`connectionId`) |
|
|
109
|
+
| 数据处理 | `database-sink` | 数据库写入 | — | 表变量 → 外部库表 |
|
|
110
|
+
| 数据处理 | `dataspace-source` | 数据空间读取 | `code.sql` | 空间只读(`spaceId`) |
|
|
111
|
+
| 数据处理 | `dataspace-sink` | 数据空间写入 | — | 表变量 → 空间表 |
|
|
112
|
+
| 数据处理 | `data-quality-check` | 数据质量检查 | `code.py` | 规则或自定义质检脚本 |
|
|
113
|
+
| 数据处理 | `folder-resource-import` | 文件夹资源导入 | — | 文件夹批量导入 |
|
|
114
|
+
| 数据处理 | `folder-resource-register` | 资源注册 | — | 注册到连接/目录 |
|
|
111
115
|
|
|
112
116
|
### 流程控制
|
|
113
117
|
|
|
114
118
|
#### `condition` — 条件判断
|
|
115
119
|
|
|
116
|
-
| 项
|
|
117
|
-
|
|
118
|
-
| 代码 | `节点/<名>/code.py`(布尔表达式,运行时 eval)
|
|
119
|
-
| 入边 | 至少一条;上游表注入为 **`df`**
|
|
120
|
-
| 出边 | **`sourceHandle: "true"`** / **`"false"`**(禁止用 `r`/`b`)
|
|
121
|
-
| 变量 | 不产生新表,仅路由
|
|
120
|
+
| 项 | 说明 |
|
|
121
|
+
| ---- | -------------------------------------------------------------------------- |
|
|
122
|
+
| 代码 | `节点/<名>/code.py`(布尔表达式,运行时 eval) |
|
|
123
|
+
| 入边 | 至少一条;上游表注入为 **`df`** |
|
|
124
|
+
| 出边 | **`sourceHandle: "true"`** / **`"false"`**(禁止用 `r`/`b`) |
|
|
125
|
+
| 变量 | 不产生新表,仅路由 |
|
|
122
126
|
| 详见 | [flow-project-guide §6.2.4](./flow-project-guide.md#624-条件节点condition) |
|
|
123
127
|
|
|
124
128
|
#### `delay` — 延时等待
|
|
125
129
|
|
|
126
|
-
| 项
|
|
127
|
-
|
|
130
|
+
| 项 | 说明 |
|
|
131
|
+
| ---- | ------------------------------------ |
|
|
128
132
|
| 配置 | `data.delaySeconds` 或 `delay`(秒) |
|
|
129
|
-
| 变量 | 无
|
|
133
|
+
| 变量 | 无 |
|
|
130
134
|
|
|
131
135
|
### 数据输入 / 读取
|
|
132
136
|
|
|
@@ -134,11 +138,11 @@
|
|
|
134
138
|
|
|
135
139
|
数据源来自 **文件上传管理**(有 `file_id` / `managed_file_id`)且文件为 **`.xlsx` / `.xls`** 时:
|
|
136
140
|
|
|
137
|
-
|
|
|
138
|
-
|
|
141
|
+
| 优先级 | 节点 | 说明 |
|
|
142
|
+
| :-----------: | ------------------ | --------------------------------------------------------------------------------------------- |
|
|
139
143
|
| **1(默认)** | **`excel-python`** | **优先使用**。可控制 Sheet、表头行、列范围、多表 `set_table_output`;画布配 `managed_file_id` |
|
|
140
|
-
|
|
|
141
|
-
|
|
|
144
|
+
| 2 | `excel-import` | 仅当 **单 Sheet、第 1 行即标准表头、无需任何解析逻辑** 时 |
|
|
145
|
+
| **禁止** | `file-source` | **不要**用 file-source 读 Excel——它只做原始文件透传,**不会**解析为表变量 |
|
|
142
146
|
|
|
143
147
|
```text
|
|
144
148
|
有 managed_file_id + Excel → excel-python(默认)
|
|
@@ -150,114 +154,114 @@ CSV / Parquet / 非 Excel → file-source 或其他专用节点
|
|
|
150
154
|
|
|
151
155
|
#### `file-source` — 文件输入
|
|
152
156
|
|
|
153
|
-
| 项
|
|
154
|
-
|
|
155
|
-
| 何时用
|
|
157
|
+
| 项 | 说明 |
|
|
158
|
+
| ---------- | -------------------------------------------------------- |
|
|
159
|
+
| 何时用 | **非 Excel** 的原始文件透传(CSV、Parquet 等已登记文件) |
|
|
156
160
|
| **勿用于** | **`.xlsx` / `.xls`** → 改用 **`excel-python`**(见上表) |
|
|
157
|
-
| 配置
|
|
158
|
-
| 产出
|
|
161
|
+
| 配置 | `file_id` / `managed_file_id`、`output_variable_name` |
|
|
162
|
+
| 产出 | 原始文件路径对应的表变量(**不解析 Excel**) |
|
|
159
163
|
|
|
160
164
|
#### `excel-import` — Excel 导入(简单)
|
|
161
165
|
|
|
162
|
-
| 项
|
|
163
|
-
|
|
164
|
-
| 何时用
|
|
166
|
+
| 项 | 说明 |
|
|
167
|
+
| -------- | ---------------------------------------------------------------------------- |
|
|
168
|
+
| 何时用 | **单 Sheet、第 1 行标准表头、零自定义逻辑** 的极少数场景 |
|
|
165
169
|
| 默认建议 | 有 `managed_file_id` 的 Excel **优先 `excel-python`**,便于后续改 Sheet/表头 |
|
|
166
|
-
| 配置
|
|
167
|
-
| 产出
|
|
170
|
+
| 配置 | `file_id` / `source_excel_id`、`sheetName`(可选)、`output_variable_name` |
|
|
171
|
+
| 产出 | 表变量(如 `excel_raw`) |
|
|
168
172
|
|
|
169
173
|
#### `excel-python` — Excel 开发(Excel 默认首选)
|
|
170
174
|
|
|
171
|
-
| 项
|
|
172
|
-
|
|
173
|
-
| 何时用
|
|
174
|
-
| 画布配置 | **`managed_file_id`**(UUID,来自文件上传管理 / `文件信息.json` 的 `file_id`)
|
|
175
|
-
| 代码
|
|
176
|
-
| 产出
|
|
177
|
-
| 详见
|
|
175
|
+
| 项 | 说明 |
|
|
176
|
+
| -------- | ---------------------------------------------------------------------------------------------------- |
|
|
177
|
+
| 何时用 | **凡 `.xlsx`/`.xls` 且已有 `managed_file_id` 时优先本节点**;多 Sheet、非标准表头、需清洗/拆表 |
|
|
178
|
+
| 画布配置 | **`managed_file_id`**(UUID,来自文件上传管理 / `文件信息.json` 的 `file_id`) |
|
|
179
|
+
| 代码 | `code.py` 内 **只读 `excel_source_path`**(引擎注入),**禁止**写文件名或本地路径 |
|
|
180
|
+
| 产出 | **`set_table_output(变量名, df)`**;主表名 **= `output_variable_name`** |
|
|
181
|
+
| 详见 | [node-code-guide §5 excel-python](./node-code-guide.md#5-excel-pythonexcel-开发)(含完整示例与反例) |
|
|
178
182
|
|
|
179
183
|
#### `database-source` — 数据库读取
|
|
180
184
|
|
|
181
|
-
| 项
|
|
182
|
-
|
|
183
|
-
| 代码 | `code.sql`(SELECT,直连外部库)
|
|
184
|
-
| 配置 | **`connectionId`**(`ads_connections.id`)、`output_variable_name`
|
|
185
|
-
| 消费 | **不**消费 Run 内变量
|
|
185
|
+
| 项 | 说明 |
|
|
186
|
+
| ---- | ------------------------------------------------------------------------------------------------------------ |
|
|
187
|
+
| 代码 | `code.sql`(SELECT,直连外部库) |
|
|
188
|
+
| 配置 | **`connectionId`**(`ads_connections.id`)、`output_variable_name` |
|
|
189
|
+
| 消费 | **不**消费 Run 内变量 |
|
|
186
190
|
| 详见 | [source-guide](./source-guide.md)、[variables-guide §6.2](./variables-guide.md#62-database-source外部库只读) |
|
|
187
191
|
|
|
188
192
|
#### `dataspace-source` — 数据空间读取
|
|
189
193
|
|
|
190
|
-
| 项
|
|
191
|
-
|
|
192
|
-
| 代码 | `code.sql`
|
|
193
|
-
| 配置 | **`spaceId`**、`output_variable_name`、`limit`(可选)
|
|
194
|
-
| 消费 | **不**消费 Run 内变量
|
|
194
|
+
| 项 | 说明 |
|
|
195
|
+
| ---- | ------------------------------------------------------------------------------ |
|
|
196
|
+
| 代码 | `code.sql` |
|
|
197
|
+
| 配置 | **`spaceId`**、`output_variable_name`、`limit`(可选) |
|
|
198
|
+
| 消费 | **不**消费 Run 内变量 |
|
|
195
199
|
| 详见 | [variables-guide §6.2b](./variables-guide.md#62b-dataspace-source数据空间只读) |
|
|
196
200
|
|
|
197
201
|
### 数据加工
|
|
198
202
|
|
|
199
203
|
#### `sql-query` — SQL 查询
|
|
200
204
|
|
|
201
|
-
| 项
|
|
202
|
-
|
|
203
|
-
| 代码 | `code.sql`
|
|
204
|
-
| 消费 | 上游 **`output_variable_name` 作 SQL 表名**(`FROM 上游变量名`)
|
|
205
|
-
| 产出 | `output_variable_name`
|
|
206
|
-
| 注意 | 单节点测试前须先跑上游;SQL 末尾勿加分号
|
|
205
|
+
| 项 | 说明 |
|
|
206
|
+
| ---- | ------------------------------------------------------------------------ |
|
|
207
|
+
| 代码 | `code.sql` |
|
|
208
|
+
| 消费 | 上游 **`output_variable_name` 作 SQL 表名**(`FROM 上游变量名`) |
|
|
209
|
+
| 产出 | `output_variable_name` |
|
|
210
|
+
| 注意 | 单节点测试前须先跑上游;SQL 末尾勿加分号 |
|
|
207
211
|
| 详见 | [variables-guide §6.1](./variables-guide.md#61-sql-queryduckdb-内存-sql) |
|
|
208
212
|
|
|
209
213
|
#### `python-script` — Python 脚本
|
|
210
214
|
|
|
211
|
-
| 项
|
|
212
|
-
|
|
213
|
-
| 代码 | `code.py`
|
|
214
|
-
| 消费 | **`get_variable("上游变量名")`**(单节点测试首选)或入边 `df`
|
|
215
|
-
| 产出 | **`result_df`** → `output_variable_name`
|
|
215
|
+
| 项 | 说明 |
|
|
216
|
+
| ---- | ------------------------------------------------------------------------------------------------------------ |
|
|
217
|
+
| 代码 | `code.py` |
|
|
218
|
+
| 消费 | **`get_variable("上游变量名")`**(单节点测试首选)或入边 `df` |
|
|
219
|
+
| 产出 | **`result_df`** → `output_variable_name` |
|
|
216
220
|
| 详见 | [variables-guide §6.3](./variables-guide.md#63-python-script最常用)、[node-code-guide](./node-code-guide.md) |
|
|
217
221
|
|
|
218
222
|
#### `data-quality-check` — 数据质量检查
|
|
219
223
|
|
|
220
|
-
| 项
|
|
221
|
-
|
|
224
|
+
| 项 | 说明 |
|
|
225
|
+
| ---- | ---------------------------------------------------- |
|
|
222
226
|
| 代码 | `code.py`(平台键 `dqPythonCode`;非空时优先于规则) |
|
|
223
|
-
| 配置 | `qualityConfig`、`output_variable_name`
|
|
224
|
-
| 消费 | 上游表 / `get_variable`
|
|
225
|
-
| 典型 | 与 **`condition`** 组合做合格/不合格分支
|
|
227
|
+
| 配置 | `qualityConfig`、`output_variable_name` |
|
|
228
|
+
| 消费 | 上游表 / `get_variable` |
|
|
229
|
+
| 典型 | 与 **`condition`** 组合做合格/不合格分支 |
|
|
226
230
|
|
|
227
231
|
### 数据输出 / 写入
|
|
228
232
|
|
|
229
233
|
#### `database-sink` — 数据库写入
|
|
230
234
|
|
|
231
|
-
| 项
|
|
232
|
-
|
|
233
|
-
| 代码 | 无
|
|
234
|
-
| 配置 | **`connectionId`**、**`tableName`**、**`input_variable_name`**、`mode`
|
|
235
|
-
| 消费 | 指定变量或入边 Parquet
|
|
235
|
+
| 项 | 说明 |
|
|
236
|
+
| ---- | ----------------------------------------------------------------------- |
|
|
237
|
+
| 代码 | 无 |
|
|
238
|
+
| 配置 | **`connectionId`**、**`tableName`**、**`input_variable_name`**、`mode` |
|
|
239
|
+
| 消费 | 指定变量或入边 Parquet |
|
|
236
240
|
| 详见 | [variables-guide §6.6](./variables-guide.md#66-database-sink无代码文件) |
|
|
237
241
|
|
|
238
242
|
#### `dataspace-sink` — 数据空间写入
|
|
239
243
|
|
|
240
|
-
| 项
|
|
241
|
-
|
|
242
|
-
| 代码 | 无
|
|
244
|
+
| 项 | 说明 |
|
|
245
|
+
| ---- | ------------------------------------------------------------------------- |
|
|
246
|
+
| 代码 | 无 |
|
|
243
247
|
| 配置 | **`spaceId`**、**`tableName`**、**`input_variable_name`**、`syncMetadata` |
|
|
244
|
-
| 消费 | 同 database-sink
|
|
248
|
+
| 消费 | 同 database-sink |
|
|
245
249
|
|
|
246
250
|
### 资源与文件夹
|
|
247
251
|
|
|
248
252
|
#### `folder-resource-import` — 文件夹资源导入
|
|
249
253
|
|
|
250
|
-
| 项
|
|
251
|
-
|
|
254
|
+
| 项 | 说明 |
|
|
255
|
+
| ---- | ------------------------------------------------------------ |
|
|
252
256
|
| 配置 | `folderId`、`resourceId`、`pageSize`、`output_variable_name` |
|
|
253
|
-
| 产出 | 表变量
|
|
257
|
+
| 产出 | 表变量 |
|
|
254
258
|
|
|
255
259
|
#### `folder-resource-register` — 资源注册
|
|
256
260
|
|
|
257
|
-
| 项
|
|
258
|
-
|
|
261
|
+
| 项 | 说明 |
|
|
262
|
+
| ---- | ------------------------------------- |
|
|
259
263
|
| 配置 | `connectionName`、`targetFolderId` 等 |
|
|
260
|
-
| 用途 | 将导入结果注册到连接/资源目录
|
|
264
|
+
| 用途 | 将导入结果注册到连接/资源目录 |
|
|
261
265
|
|
|
262
266
|
### 选型速查(AI 常用)
|
|
263
267
|
|
|
@@ -294,7 +298,7 @@ pandas 清洗/聚合 → python-script
|
|
|
294
298
|
| ------------------------------------------ | ------------------------------------------- |
|
|
295
299
|
| [流程变量系统指南](./variables-guide.md) | 变量产生/消费、`get_variable`、SQL 表名约定 |
|
|
296
300
|
| [Flow 运行与测试](./run-guide.md) | Run、debug、变量、流程项目测试 |
|
|
297
|
-
| [
|
|
301
|
+
| [数据流程项目开发指南 §5 pull/push](./flow-project-guide.md#5-同步策略pull--push) | 平台快照拉取与本地拆分 |
|
|
298
302
|
| [数据源管理](./source-guide.md) | connectionId、表结构 |
|
|
299
303
|
| [Flow 执行计划](./plan-guide.md) | FlowPlan / markdown 规划 |
|
|
300
304
|
| [CLI 命令速查](../guides/cli-reference.md) | 完整命令表 |
|