RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 快速入门

  • 规则链

    • 规则链概述
    • 规则链
      • 消息
      • 规则节点
      • Relation Type
    • 标准组件

    • 扩展组件

    • 自定义组件

    • 组件市场

    • 可视化

    • AOP

    • 触发器

    • 高级主题

    • RuleGo-Server

    • 问题

    目录

    规则链

    # 规则链DSL

    规则链的DSL配置文件是一个 JSON格式的文件,用于定义规则链的配置、节点和连接关系。总体结构如下:

    {
      "ruleChain": {
        "id":"rule01"
      },
      "metadata": {
        "endpoints": [
        ],
        "nodes": [
        ],
        "connections": [
        ]
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    # ruleChain:规则链基础信息

    字段 类型 是否必填 说明
    id string 是 规则链ID,规则链的唯一标识
    name string 否 规则链名称,可以是任意字符串
    root boolean 否 表示这个规则链是根规则链还是子规则链
    disabled v0.27.0+ boolean 否 是否禁用规则链,如果为真,则不会被实例化
    debugMode boolean 否 表示是否处于调试模式。如果为真,覆盖node的debugMode值
    configuration object 否 规则链的配置信息,包含变量和密钥列表
    additionalInfo object 否 扩展字段,用于保存额外信息

    # ruleChain.configuration: 规则链的配置信息

    字段 类型 是否必填 说明
    vars object 否 变量列表,格式为:varKey:varValue
    secrets object 否 密钥列表,格式为:secretKey:secretValue

    # metadata: 规则链的元数据,包含节点、连接和接入端点的信息

    字段 类型 是否必填 说明
    endpoints endpoint[] 否 规则链的接入端点列表
    firstNodeIndex int 否 执行的第一个节点的索引值,默认:0
    nodes node[] 是 规则链中的节点列表
    connections connection[] 是 规则链的连接列表

    # metadata.nodes: 规则链中的节点列表

    字段 类型 是否必填 说明
    id string 是 节点ID,节点的唯一标识
    type string 是 节点类型
    name string 否 节点名称,可以是任意字符串
    debugMode boolean 否 表示这个节点是否处于调试模式。如果为真,当节点处理消息时,会触发调试回调函数
    configuration object 否 节点的配置信息,包含变量和密钥列表
    additionalInfo object 否 扩展字段,用于保存额外信息。

    # metadata.nodes.configuration: 节点配置

    不同的节点类型有不同的配置字段,具体请参考具体的组件配置文档。

    # metadata.nodes.additionalInfo: 组件可视化坐标信息

    字段 类型 是否必填 说明
    layoutX int 否 组件的x坐标
    layoutY int 否 组件的y坐标
    description string 否 组件描述

    # metadata.connections: 规则链的连接列表

    字段 类型 是否必填 说明
    fromId string 是 连接源节点id,应该与nodes数组中的某个节点id匹配
    toId string 是 连接目标节点id,应该与nodes数组中的某个节点id匹配
    type string 否 连接类型,决定了什么时候以及如何把消息从一个节点发送到另一个节点。它应该与源节点类型支持的连接类型之一匹配。例如,一个JS过滤器节点支持两种连接类型:"True"和"False",表示消息是否通过或者不通过过滤条件

    # metadata.endpoints: 规则链的接入端点列表 v0.21.0+

    用于配置规则链的自动触发器,例如可以配置:mqtt、http、ws、schedule等接入端点触发器,详细参考:Endpoint DSL

    # 示例

    以下是一个简单的规则链配置文件的示例:

    {
      "ruleChain": {
        "id": "rule01",
        "name": "测试规则链",
        "root": true
      },
      "metadata": {
        "nodes": [
          {
            "id": "s1",
            "type": "jsFilter",
            "name": "过滤",
            "debugMode": true,
            "configuration": {
              "jsScript": "return msg!='bb';"
            }
          },
          {
            "id": "s2",
            "type": "jsTransform",
            "name": "转换",
            "debugMode": true,
            "configuration": {
              "jsScript": "metadata['test']='test02';\n metadata['index']=50;\n msgType='TEST_MSG_TYPE2';\n var msg2=JSON.parse(msg);\n msg2['aa']=66;\n return {'msg':msg2,'metadata':metadata,'msgType':msgType};"
            }
          },
          {
            "id": "s3",
            "type": "restApiCall",
            "name": "推送数据",
            "debugMode": true,
            "configuration": {
              "restEndpointUrlPattern": "http://192.168.216.21:9099/api/socket/msg",
              "requestMethod": "POST",
              "maxParallelRequestsCount": 200
            }
          }
        ],
        "connections": [
          {
            "fromId": "s1",
            "toId": "s2",
            "type": "True"
          },
          {
            "fromId": "s2",
            "toId": "s3",
            "type": "Success"
          }
        ]
      }
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52

    其逻辑如图所示:

    img

    在 GitHub 上编辑此页 (opens new window)
    上次更新: 2025/04/02, 01:29:50
    规则链概述
    消息

    ← 规则链概述 消息→

    Theme by Vdoing | Copyright © 2023-2025 RuleGo Team | Apache 2.0 License

    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式