diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/node/config/NodeConfig.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/node/config/NodeConfig.java index d1302650..aeca68b0 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/node/config/NodeConfig.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/engine/executor/node/config/NodeConfig.java @@ -27,7 +27,7 @@ public abstract class NodeConfig { /** * 节点ID */ - private String nodeId; + private String id; /** * 节点名称 diff --git a/backend/src/main/resources/db/migration/V1.0.1__init_data.sql b/backend/src/main/resources/db/migration/V1.0.1__init_data.sql index cbdc6e66..108b6e60 100644 --- a/backend/src/main/resources/db/migration/V1.0.1__init_data.sql +++ b/backend/src/main/resources/db/migration/V1.0.1__init_data.sql @@ -241,7 +241,7 @@ INSERT INTO wf_node_instance ( INSERT INTO wf_workflow_variable ( id, create_by, create_time, deleted, update_by, update_time, version, workflow_instance_id, name, value, type -) VALUES +) VALUES (1, 'admin', NOW(), 0, 'admin', NOW(), 0, 1, 'appName', 'test-app', 'STRING'), (2, 'admin', NOW(), 0, 'admin', NOW(), 0, @@ -296,28 +296,54 @@ true, NOW(), 'system', NOW(), 'system', 1, false), true, NOW(), 'system', NOW(), 'system', 1, false), -- 任务节点类型 -(2003, 'SHELL', 'Shell脚本节点', '执行Shell脚本的任务节点', 'TASK', 'code', '#1890ff', +(2003, 'SCRIPT', '脚本执行节点', '执行各种脚本语言的节点', 'TASK', 'code', '#13c2c2', '[{ - "code": "SHELL", - "name": "Shell脚本执行器", - "description": "执行Shell脚本,支持配置超时时间和工作目录", + "code": "SCRIPT", + "name": "脚本执行器", + "description": "支持执行多种脚本语言(Shell、Python、JavaScript等)", "configSchema": { "type": "object", - "required": ["script"], + "required": ["script", "language", "interpreter"], "properties": { "script": { "type": "string", "title": "脚本内容", - "format": "shell", - "description": "需要执行的Shell脚本内容" + "format": "textarea", + "description": "需要执行的脚本内容,例如:\\n#!/bin/bash\\necho \\"开始执行脚本\\"\\nls -la\\necho \\"脚本执行完成\\"" }, - "timeout": { - "type": "number", - "title": "超时时间", - "description": "脚本执行的最大时间(秒)", - "minimum": 1, - "maximum": 3600, - "default": 300 + "language": { + "type": "string", + "title": "脚本语言", + "enum": ["shell", "python", "javascript", "groovy"], + "enumNames": ["Shell脚本 (已支持)", "Python脚本 (开发中)", "JavaScript脚本 (开发中)", "Groovy脚本 (开发中)"], + "default": "shell", + "description": "脚本语言类型", + "oneOf": [ + { + "const": "shell", + "title": "Shell脚本" + }, + { + "const": "python", + "title": "Python脚本", + "readOnly": true + }, + { + "const": "javascript", + "title": "JavaScript脚本", + "readOnly": true + }, + { + "const": "groovy", + "title": "Groovy脚本", + "readOnly": true + } + ] + }, + "interpreter": { + "type": "string", + "title": "解释器路径", + "description": "脚本解释器的路径,例如:/bin/bash, /usr/bin/python3" }, "workingDirectory": { "type": "string", @@ -325,15 +351,23 @@ true, NOW(), 'system', NOW(), 'system', 1, false), "description": "脚本执行的工作目录", "default": "/tmp" }, + "timeout": { + "type": "integer", + "title": "超时时间", + "description": "脚本执行的最大时间(秒)", + "minimum": 1, + "maximum": 3600, + "default": 300 + }, "retryTimes": { - "type": "number", + "type": "integer", "title": "重试次数", "minimum": 0, "maximum": 10, "default": 0 }, "retryInterval": { - "type": "number", + "type": "integer", "title": "重试间隔(秒)", "minimum": 1, "maximum": 3600, @@ -343,19 +377,31 @@ true, NOW(), 'system', NOW(), 'system', 1, false), "type": "object", "title": "环境变量", "description": "脚本执行时的环境变量", - "additionalProperties": {"type": "string"} + "additionalProperties": { + "type": "string" + } }, "successExitCode": { - "type": "number", + "type": "integer", "title": "成功退出码", - "description": "脚本执行成功的退出码", + "description": "脚本执行成功时的退出码", "default": 0 + }, + "supportedLanguages": { + "type": "array", + "title": "支持的脚本语言", + "items": { + "type": "string", + "enum": ["shell", "python", "javascript", "groovy"] + }, + "default": ["shell"] } } } }]', '{ "type": "object", + "required": ["name", "executor"], "properties": { "name": { "type": "string", @@ -371,13 +417,12 @@ true, NOW(), 'system', NOW(), 'system', 1, false), "executor": { "type": "string", "title": "执行器", - "enum": ["SHELL"], - "enumNames": ["Shell脚本执行器"] + "enum": ["SCRIPT"], + "enumNames": ["脚本执行器"] } - }, - "required": ["name", "executor"] + } }', -'{"name": "Shell脚本", "executor": "SHELL"}', +'{"name": "脚本执行", "executor": "SCRIPT"}', true, NOW(), 'system', NOW(), 'system', 1, false), -- Git节点类型