@guandata/guanetl 0.1.39 → 0.1.41

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/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## @guandata/guanetl 0.1.41 - 2026-10-14
4
+
5
+ - 修复多键 JOIN 与 BI 原生条件结构的兼容问题,避免只按首个关联键得到错误结果。
6
+ - 补齐数据库输入节点的预览配置,并在保存时保留已有配置。
7
+
8
+ ## @guandata/guanetl 0.1.40 - 2026-10-12
9
+
10
+ - 无法读取服务端当前 ETL 版本时停止保存,避免用过期本地基线覆盖。
11
+ - 初始化工作目录时清除旧导出结果;共享配置写入增加并发保护。
12
+ - 平台包发布校验兼容 npm 12。
13
+
3
14
  ## @guandata/guanetl 0.1.39 - 2026-10-12
4
15
 
5
16
  - ETL 保存接口即使返回 HTTP 200,只要结果为 `success=false` 就明确报错,并列出输入数据集校验失败项。
package/README.md CHANGED
@@ -53,6 +53,17 @@ guanetl install-skill
53
53
 
54
54
  ## 版本更新
55
55
 
56
+ ### @guandata/guanetl 0.1.41
57
+
58
+ - 修复多键 JOIN 与 BI 原生条件结构的兼容问题,避免只按首个关联键得到错误结果。
59
+ - 补齐数据库输入节点的预览配置,并在保存时保留已有配置。
60
+
61
+ ### @guandata/guanetl 0.1.40
62
+
63
+ - 无法读取服务端当前 ETL 版本时停止保存,避免用过期本地基线覆盖。
64
+ - 初始化工作目录时清除旧导出结果;共享配置写入增加并发保护。
65
+ - 平台包发布校验兼容 npm 12。
66
+
56
67
  ### @guandata/guanetl 0.1.39
57
68
 
58
69
  - ETL 保存接口返回 `success=false` 时明确报错并列出输入数据集校验结果,避免误报保存成功。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@guandata/guanetl",
3
- "version": "0.1.39",
3
+ "version": "0.1.41",
4
4
  "description": "观远 ETL 本地开发工具 - 拉取、编辑、导出、预览、保存 ETL",
5
5
  "bin": {
6
6
  "guanetl": "bin/run.js"
@@ -41,11 +41,11 @@
41
41
  "node": ">=14"
42
42
  },
43
43
  "optionalDependencies": {
44
- "@guandata/guanetl-darwin-arm64": "0.1.39",
45
- "@guandata/guanetl-darwin-x64": "0.1.39",
46
- "@guandata/guanetl-linux-x64": "0.1.39",
47
- "@guandata/guanetl-linux-arm64": "0.1.39",
48
- "@guandata/guanetl-win32-x64": "0.1.39"
44
+ "@guandata/guanetl-darwin-arm64": "0.1.41",
45
+ "@guandata/guanetl-darwin-x64": "0.1.41",
46
+ "@guandata/guanetl-linux-x64": "0.1.41",
47
+ "@guandata/guanetl-linux-arm64": "0.1.41",
48
+ "@guandata/guanetl-win32-x64": "0.1.41"
49
49
  },
50
50
  "publishConfig": {
51
51
  "registry": "https://registry.npmjs.org/",
@@ -225,7 +225,9 @@ guanetl move <etl_id1> <etl_id2> --dir-id <etl_dir_id>
225
225
 
226
226
  `save --dry-run` 只执行到合并和保存影响检查,不执行第 4 步。
227
227
 
228
- 新建 ETL 首次保存前,服务端还没有完整 ETL,因此 edit API 可能返回不存在。此时 `save` 会使用 `create` 生成的本地 `_base_etl.json`,并输出 `信息 [save.first_save_fallback]`;这是正常的首次保存路径,不代表 create 或 save 失败。其他服务端 edit 读取失败会输出 `警告 [save.edit_fallback]`,表示虽然已回退本地 base,但仍需确认网络、权限及本地基线是否可靠。
228
+ 新建 ETL 首次保存时,只有服务端明确返回 ETL 不存在、且本地 base 与工作区 ETL ID 一致并尚无 actions,`save` 才使用 `create` 生成的 `_base_etl.json`,输出 `信息 [save.first_save_fallback]`。其他 edit 读取失败会终止保存(包括 dry-run);恢复网络或权限后重试,不能使用旧 base 覆盖服务端。
229
+
230
+ `edit` / `create` 重新初始化工作目录时会清除旧 `_exported.json`,包括重新编辑同一 ETL;必须重新 `export` 后再保存,避免把旧代码的导出写到新工作区。
229
231
 
230
232
  用户不需要手写服务端保存 payload。`export` 通过只表示本地产物可生成,保存仍由服务端校验。`direct-save` 返回 `success:false` 时,`save` 会非零退出并显示服务端原因与输入节点校验详情,不报告保存成功、不刷新本地 base;先处理失败原因,再重试保存,不要继续运行未保存的修改。
231
233
 
@@ -162,6 +162,10 @@ BasicJoinData(id, name string, leftSource, rightSource Node, joinType JoinType,
162
162
 
163
163
  - `joinType` 用常量 `JoinTypeINNER` `JoinTypeLEFTOUTER` `JoinTypeRIGHTOUTER` `JoinTypeFULLOUTER`
164
164
 
165
+ - 多键 JOIN 与 BI 原生配置保持一致:同一左右源的每个条件使用一条 `columnFuse`,每条只包含一个 predicate,条件之间为 AND。部分后端只读取单条 fuse 的首个谓词(GALAXY-40140)。普通 `BasicJoinData` 已按此格式生成;export 同样适配文件透传节点,preview/save 会在请求副本中适配旧导出产物,不改源文件。适配保留节点 ID、源顺序、关联类型和选出列,不做条件合并或去重。
166
+ - 验收复合键时,必须包含“首键相同、后续键不同”的反例,检查每个关联键、结果行数和金额;任务成功不代表关联正确。
167
+ - 已保存在 BI 的旧配置需经过 `edit -> export -> preview -> save` 才会完成适配;直接 `run` 不会静默修改服务端配置。
168
+
165
169
  ### 聚合
166
170
 
167
171
  ```go
@@ -352,7 +356,7 @@ func DefineETL() []Node {
352
356
 
353
357
  `save` 会先拉取服务端当前 ETL,再把本地 `_exported.json` 合并进去。修改已保存 ETL 时,输出节点必须复用服务端已有输出数据集绑定,否则 direct-save 可能把它当成“创建新输出数据集”,触发“输出数据集目录中存在同名文件”。
354
358
 
355
- 新建 ETL 首次保存时,服务端 edit API 可能返回 ETL 不存在。若当前本地 base 与工作区 ETL ID 一致且尚无 actions,CLI 会将其识别为正常首次保存回退并输出 `save.first_save_fallback`;其他 edit 故障使用 `save.edit_fallback` warning,不应静默当作首次保存。
359
+ 新建 ETL 首次保存时,只有服务端明确返回 ETL 不存在、且当前本地 base 与工作区 ETL ID 一致并尚无 actions,CLI 才回退本地 base 并输出 `save.first_save_fallback`。其他 edit 故障会终止保存及 dry-run;先恢复读取能力再重试,不能用旧 base 继续写入。
356
360
 
357
361
  当本地输出节点 id 被重新生成,但 `outputDsName + parentDirId` 与一个服务端已绑定输出唯一匹配时,`save` 会在请求副本中自动恢复原节点 id 和 dsId,并在影响报告中输出 `save.output_binding_reconciled`。源 `_exported.json` 不会被改写。跨目录、双方重名歧义、删除旧输出或无法唯一匹配时不会自动协调。
358
362