Adding support for merge node similar to N8N implementation
Co-authored-by: nizzan<nizzan.kimhi@huawei.com>
Co-authored-by: nikita-mee<nikita.merkulov1@huawei.com>
Co-authored-by: @aharonamir1<amir.aharon@huawei.com>
# message auto-generated for no-merge-commit merge:
!1019 merge phase2_merge into develop
Adding support for merge node similar to N8N implementation
Created-by: nizzan
Commit-by: nizzan;aharonamir1;nikita-mee;@aharonamir1
Merged-by: ZYQ5333
Description: <!-- Thanks for sending a pull request! Here are some tips for you:
1) If this is your first time, please read our contributor guidelines: https://gitcode.com/openJiuwen/community/blob/master/CONTRIBUTING.md
2) If you want to contribute your code but don't know who will review and merge, please add label openjiuwen-assistant to the pull request, we will find and do it as soon as possible.
-->
**What type of PR is this?**
<!--
选择下面一种标签替换下方 /kind <label>,可选标签类型有:
- /kind bug
- /kind task
- /kind feature
- /kind refactor
- /kind clean_code
如PR描述不符合规范,修改PR描述后需要/check-pr重新检查PR规范。
-->
/kind feature
**Self-checklist**:(**请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入**)
+ - [ ] **设计**:PR对应的方案是否已经经过Maintainer评审,方案检视意见是否均已答复并完成方案修改
+ - [ ] **测试**:PR中的代码是否已有UT/ST测试用例进行充分的覆盖,新增测试用例是否随本PR一并上库或已经上库
+ - [ ] **验证**:PR描述信息中是否已包含对该PR对应的Feature、Refactor、Bugfix的预期目标达成情况的详细验证结果描述
+ - [ ] **接口**:是否涉及对外接口变更,相应变更已得到接口评审组织的通过,API对应的注释信息已经刷新正确
+ - [ ] **文档**:是否涉及官网文档修改,如果涉及请及时提交资料到Doc仓
<!-- **Special notes for your reviewers**: -->
<!-- + - [ ] 是否导致无法前向兼容 -->
<!-- + - [ ] 是否涉及依赖的三方库变更 -->
Adding support for full N8N merge options: append, combine by fields, combine by position, combine al, choose branch, sql query
I used these json files to test merge: <a href="https://gitcode.com/user-attachments/files/8766979/1b90c9f046fd4bc98b769fc3b2f57f1a.zip" target="_blank">1b90c9f046fd4bc98b769fc3b2f57f1a.zip</a>
See merge request: openJiuwen/agent-studio!1019
fix(mcp-openapi): plugin creation fails when creating OpenAPI MCP plugin in plugin management
Co-authored-by: michaelhuawei<michael.atamuk@huawei.com>
# message auto-generated for no-merge-commit merge:
!1036 merge fix/mcp-openapi-plugin-creation-838 into develop
fix(mcp-openapi): plugin creation fails when creating OpenAPI MCP plugin in plugin management
Created-by: michaelhuawei
Commit-by: Michael;michaelhuawei
Merged-by: ZYQ5333
Description: **What type of PR is this?**
/kind bug
---
**What does this PR do / why do we need it**:
This PR fixes **Bug #838**, where creating an **OpenAPI MCP Plugin** in the Plugin Management UI resulted in a plugin creation error.
The root cause was incorrect URL/file‑path validation across backend and frontend layers.
The fixes include:
### **Backend**
- validate_plugin_url now strips whitespace and handles empty values safely.
- _validate_openapi_paths rewritten to correctly support:
- Multiple comma‑separated entries
- Both URLs and local file paths
- SSRF‑safe URL validation via validate_plugin_url
- File‑path existence checks without over‑restrictive “safe root” rules
- plugin_create now validates URLs **only when the input is actually a URL**, not a file path.
- PluginCreate schema (model_post_init) updated:
- OPENAPI transport accepts **URL or file path**
- SSE / Streamable HTTP transports require **URL only**
- Clearer error messages for invalid combinations
### **Frontend**
- isValidUrl updated to correctly bypass URL parsing for file paths.
- isUrlFieldValid updated so OpenAPI transport accepts both URLs and file paths.
- Prevents false validation errors in the MCP Plugin creation dialog.
These changes ensure that OpenAPI MCP plugins can be created successfully using either remote OpenAPI URLs or local OpenAPI spec files.
---
**Which issue(s) this PR fixes**:
Fixes #838
---
**Code review checklist**:
+ - [ ] whether to verify the function's return value
+ - [ ] Whether to comply with **SOLID principle / Demeter's law**
+ - [ ] Whether there is UT test case && the test case is valid (if no test case, explain why)
+ - [ ] Whether the API change is involved
+ - [ ] Whether official document modification is involved
See merge request: openJiuwen/agent-studio!1036