{ "demand": { "name": "需求节点", "category": "demand", "color": "#1890ff", "icon": "demand-icon", "icon_path": "/assets/icons/demand.svg", "shape": "rect", "width": 180, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "description", "type": "string", "label": "描述" }, { "name": "priority", "type": "select", "label": "优先级", "options": [ "高", "中", "低" ] } ] }, "start": { "name": "开始", "category": "logic", "color": "#722ed1", "icon": "play-circle", "shape": "circle", "width": 60, "height": 60, "ports": [ "right", "bottom", "top", "left" ], "metaFields": [ { "name": "description", "type": "string", "label": "描述" } ] }, "end": { "name": "结束", "category": "logic", "color": "#722ed1", "icon": "stop-circle", "shape": "circle", "width": 60, "height": 60, "ports": [ "left", "top", "right", "bottom" ], "metaFields": [ { "name": "description", "type": "string", "label": "描述" } ] }, "condition": { "name": "条件", "category": "logic", "color": "#fa8c16", "icon": "question-circle", "shape": "diamond", "width": 80, "height": 80, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "condition", "type": "code", "label": "条件表达式" } ] }, "and": { "name": "AND", "category": "logic", "color": "#722ed1", "icon": "and-icon", "shape": "diamond", "width": 80, "height": 80, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "operation", "type": "hidden", "defaultValue": "AND" } ] }, "or": { "name": "OR", "category": "logic", "color": "#eb2f96", "icon": "or-icon", "shape": "diamond", "width": 80, "height": 80, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "operation", "type": "hidden", "defaultValue": "OR" } ] }, "httpRequest": { "name": "HTTP验证", "category": "request", "color": "#52c41a", "icon": "api", "icon_path": "/assets/icons/httpFlow.svg", "shape": "rect", "width": 150, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "method", "type": "select", "label": "请求方法", "options": [ "GET", "POST", "PUT", "DELETE", "PATCH" ] }, { "name": "path", "type": "string", "label": "请求路径" }, { "name": "params", "type": "json", "label": "查询参数", "defaultValue": "{}" }, { "name": "headers", "type": "json", "label": "请求头", "defaultValue": "{\"Content-Type\": \"application/json\"}" }, { "name": "body", "type": "json", "label": "请求体", "defaultValue": "{\"type\": \"json\", \"content\": \"{}\"}" }, { "name": "response", "type": "hidden", "defaultValue": null }, { "name": "endpointId", "type": "hidden", "defaultValue": "" } ] }, "loadTestHttpRequest": { "name": "HTTP 负载测试", "category": "perform", "color": "#722ed1", "icon_path": "/assets/icons/load-test.svg", "shape": "rect", "width": 180, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "endpointId", "type": "hidden", "defaultValue": "" }, { "name": "method", "type": "select", "label": "请求方法", "options": [ "GET", "POST", "PUT", "DELETE", "PATCH" ], "defaultValue": "GET" }, { "name": "path", "type": "string", "label": "请求路径" }, { "name": "params", "type": "json", "label": "查询参数", "defaultValue": "{}" }, { "name": "headers", "type": "json", "label": "请求头", "defaultValue": "{\"Content-Type\": \"application/json\"}" }, { "name": "body", "type": "json", "label": "请求体", "defaultValue": "{\"type\": \"json\", \"content\": \"{}\"}" }, { "name": "concurrentUsers", "type": "number", "label": "并发用户数", "defaultValue": 10 }, { "name": "testDurationSec", "type": "number", "label": "测试时长(秒)", "defaultValue": 30 }, { "name": "rampUpTimeSec", "type": "number", "label": "启动时长(秒)", "defaultValue": 0, "optional": true }, { "name": "resultsSummary", "type": "textarea", "label": "测试结果摘要", "readonly": true, "rows": 4 }, { "name": "detailedResults", "type": "hidden", "defaultValue": null } ] }, "httpLatencyTest": { "name": "HTTP 延迟测试", "category": "perform", "color": "#b37feb", "icon_path": "/assets/icons/latency.svg", "shape": "rect", "width": 180, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "endpointId", "type": "hidden", "defaultValue": "" }, { "name": "method", "type": "select", "label": "请求方法", "options": [ "GET", "POST", "PUT", "DELETE", "PATCH" ], "defaultValue": "GET" }, { "name": "path", "type": "string", "label": "请求路径" }, { "name": "params", "type": "json", "label": "查询参数", "defaultValue": "{}" }, { "name": "headers", "type": "json", "label": "请求头", "defaultValue": "{\"Content-Type\": \"application/json\"}" }, { "name": "body", "type": "json", "label": "请求体", "defaultValue": "{\"type\": \"json\", \"content\": \"{}\"}" }, { "name": "iterations", "type": "number", "label": "迭代次数", "defaultValue": 10, "description": "连续发送请求的次数" }, { "name": "delayBetweenMs", "type": "number", "label": "迭代间隔(ms)", "defaultValue": 0, "optional": true, "description": "每次请求之间的等待时间" }, { "name": "latencyStats", "type": "textarea", "label": "延迟统计", "readonly": true, "rows": 4, "description": "例如: Min, Max, Avg, P95, P99, Errors" }, { "name": "detailedLatencies", "type": "hidden", "defaultValue": null } ] }, "securityScanTrigger": { "name": "安全扫描", "category": "safety", "color": "#f5222d", "icon_path": "/assets/icons/safety.svg", "shape": "rect", "width": 180, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "scanTarget", "type": "string", "label": "扫描目标", "description": "例如 URL, IP, 服务名" }, { "name": "scanProfile", "type": "select", "label": "扫描配置/策略", "options": [ "快速扫描", "全面扫描", "OWASP Top10" ], "defaultValue": "快速扫描" }, { "name": "apiKeyRef", "type": "string", "label": "扫描工具API密钥引用", "optional": true, "description": "引用环境变量或配置" }, { "name": "waitForResult", "type": "boolean", "label": "等待扫描结果", "defaultValue": false }, { "name": "scanId", "type": "string", "label": "扫描任务ID", "readonly": true }, { "name": "scanStatus", "type": "string", "label": "扫描状态", "readonly": true }, { "name": "scanResultSummary", "type": "textarea", "label": "扫描结果摘要", "readonly": true, "rows": 3 }, { "name": "detailedScanResult", "type": "hidden" } ] }, "authCheck": { "name": "认证授权检查", "category": "safety", "color": "#faad14", "icon_path": "/assets/icons/auth-check.svg", "shape": "rect", "width": 170, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "endpointInfo", "type": "json", "label": "目标接口信息", "defaultValue": "{\"method\":\"GET\", \"path\":\"/api/resource\"}" }, { "name": "credentials", "type": "json", "label": "使用的凭证", "defaultValue": "{\"type\":\"token\", \"value\":\"{input.token}\"}", "description": "支持从输入引用值" }, { "name": "expectedStatus", "type": "select", "label": "预期HTTP状态", "options": [ "2xx (成功)", "401 (未授权)", "403 (禁止访问)", "其他" ], "defaultValue": "2xx (成功)" }, { "name": "customExpectedStatus", "type": "number", "label": "预期状态码(其他)", "optional": true }, { "name": "checkResult", "type": "string", "label": "检查结果", "readonly": true }, { "name": "responseDetails", "type": "hidden" } ] }, "dataMaskingCheck": { "name": "数据脱敏检查", "category": "compliance", "color": "#595959", "icon_path": "/assets/icons/masking-check.svg", "shape": "rect", "width": 160, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "dataFieldPath", "type": "string", "label": "检查字段路径", "defaultValue": "body.creditCard", "description": "使用点标记法指定字段" }, { "name": "expectedFormat", "type": "string", "label": "预期脱敏格式", "defaultValue": "**** **** **** 1234", "description": "用*表示脱敏位" }, { "name": "checkResult", "type": "string", "label": "检查结果", "readonly": true }, { "name": "actualValue", "type": "hidden" } ] }, "failureInjection": { "name": "故障注入", "category": "reliability", "color": "#cf1322", "icon_path": "/assets/icons/chaos.svg", "shape": "rect", "width": 160, "height": 50, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "targetResource", "type": "string", "label": "注入目标资源", "description": "e.g., service:my-app, pod:app-*, db:orders" }, { "name": "failureType", "type": "select", "label": "故障类型", "options": [ "latency", "error", "crash", "network_loss", "resource_limit" ] }, { "name": "magnitude", "type": "string", "label": "故障程度", "description": "e.g., latency: 500ms, error: 503, network_loss: 80%" }, { "name": "durationSec", "type": "number", "label": "持续时间(秒)", "defaultValue": 60 }, { "name": "injectionStatus", "type": "string", "label": "注入状态", "readonly": true }, { "name": "details", "type": "hidden" } ] }, "agentBrowserTask": { "name": "Agent UI任务", "category": "ui", "color": "#08979c", "icon_path": "/assets/icons/agent.svg", "shape": "rect", "width": 180, "height": 60, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "targetUrl", "type": "string", "label": "目标页面URL" }, { "name": "taskPrompt", "type": "textarea", "label": "任务指令 (Prompt)", "rows": 5, "description": "给 Agent 的详细操作指令" }, { "name": "agentModel", "type": "string", "label": "Agent模型/配置", "optional": true, "defaultValue": "default_browser_agent" }, { "name": "inputDataUsage", "type": "json", "label": "输入数据使用方式", "optional": true, "defaultValue": "{\"map\": [{\"from\": \"input.username\", \"to\": \"form.user\"}, {\"from\": \"input.password\", \"to\": \"form.pass\"}]}", "description": "定义如何将输入映射到表单或Prompt" }, { "name": "validationCriteria", "type": "textarea", "label": "成功/失败标准", "optional": true, "description": "如何判断 Agent 执行结果是否符合预期" }, { "name": "executionResult", "type": "string", "label": "执行结果", "readonly": true }, { "name": "agentLog", "type": "textarea", "label": "Agent 执行日志", "readonly": true, "rows": 4 }, { "name": "screenshotUrl", "type": "string", "label": "截图链接", "readonly": true, "optional": true }, { "name": "extractedData", "type": "hidden" } ] }, "delayNode": { "name": "延迟等待", "category": "logic", "color": "#bfbfbf", "icon_path": "/assets/icons/delay.svg", "shape": "circle", "width": 60, "height": 60, "ports": [ "top", "right", "bottom", "left" ], "metaFields": [ { "name": "delayMs", "type": "number", "label": "延迟时间 (ms)", "defaultValue": 1000 } ] } }