Skip to content

规则中心

规则中心是系统内统一的业务决策底座,管理可发布的规则资产,并通过 decide() 为支付、会员、工作流、CMS、开放平台等业务链路提供稳定求值结果。资产编辑态与运行态隔离:业务侧只使用发布快照,后台测试、仿真和影子对比用于评估发布影响。


文档导航

文档内容
决策表输入 / 输出列、单元格 DSL、命中策略、发布门禁、版本、灰度、仿真、测试矩阵、影子对比
决策流多决策表顺序编排、步骤条件、输出命名空间、发布快照、版本回滚、测试 trace
评分卡基础分、变量表达式、分段打分、权重、等级与建议决策、版本与测试求值
名单库黑 / 白 / 灰名单、精确 / 前缀 / 正则匹配、批量导入、过期清理、删除引用保护
求值接入decide() 统一门面、开放平台 evaluate API、内置业务消费方与 facts 约定
执行留痕rule_executions、caller / bizRef / source 语义、调用方展示名、90 天保留策略
接口与数据模型速查API 路径、权限码、表结构、枚举值、种子菜单与内置规则资产

架构总览

  • 资产管理面packages\web\src\pages\rules\ 提供决策表、执行记录、决策流、名单库、评分卡五组页面。
  • 协议边界/api/rules/decision-tables/api/rules/decision-flows/api/rules/lists/api/rules/scorecards/api/rules/executions
  • 运行时入口:业务代码调用 packages\server\src\services\platform\rules-runtime.service.tsdecide(ref, facts, opts)
  • 开放平台入口POST /api/open/v1/rules/evaluate,scope 为 rules:evaluate
  • 执行记录recordRuleExecution() 异步批写,查询前 flush,保留策略键为 rule_executions,默认 90 天。

能力总览

能力当前实现
决策表first / unique / priority / collect / any 命中策略;输入表达式、输出表达式、单元格 DSL、默认输出回退
版本治理决策表使用 rule_decision_table_versions;决策流和评分卡使用 rule_asset_versions;版本回滚覆盖编辑态并置为草稿
发布控制决策表发布前校验输入表达式、条件单元格、输出表达式;有测试用例时要求全部通过且覆盖率 100%;支持 rule_publish_approval 四眼审批
灰度发布决策表可传 grayPercentgrayDimension,按 FNV-1a 主体分桶,灰度外流量走上一版本
批量评估决策表支持测试求值、测试矩阵、批量仿真、命中分析、影子对比
决策流步骤按序执行,前序输出并入 scope,支持条件跳过和输出命名空间
评分卡变量表达式取值,分段 range / eq / in / default 打分,变量得分乘权重后映射等级与建议决策
名单库black / white / grey 类型,条目支持 exact / prefix / regex,支持过期时间、批量导入和过期清理
统一求值decide() 分发 table / flow / scorecard / list,支持 optionalrequired 语义,只使用发布快照
多租户资产按租户精确匹配优先,回退平台级 tenantId = null;无上下文且单一候选时兼容使用
留痕审计rule_executions 记录 refKindruleKeyversioncallerbizRefsource、输入、输出与命中行

页面入口

菜单路由页面组件主要操作
规则中心 / 决策表/rules/tablesrules/tables/RuleTablesPageCRUD、导入导出、发布、灰度、审批、测试、版本、用例、统计、影子对比、仿真
规则中心 / 执行记录/rules/executionsrules/executions/RuleExecutionsPage按资产类型、来源、结果、时间、调用方与业务关联筛选
规则中心 / 决策流/rules/flowsrules/flows/RuleFlowsPageCRUD、步骤编排、发布、启停、测试、版本、回滚
规则中心 / 名单库/rules/listsrules/lists/RuleListsPageCRUD、命中检测、条目管理、批量导入、清理过期条目
规则中心 / 评分卡/rules/scorecardsrules/scorecards/RuleScorecardsPageCRUD、变量 / 分段 / 等级配置、发布、启停、测试、版本、回滚

运行时链路

text
业务调用方 → decide({ kind, key }, facts, opts)
  → 按 kind 解析发布资产
  → 决策表应用灰度选版 / 决策流取 publishedSteps / 评分卡取 publishedSnapshot / 名单取启用条目
  → 纯函数求值
  → 返回 RuleDecision
  → 异步写入 rule_executions

decide() 的默认 modeoptional:资产不存在、未发布、停用或求值异常时返回 matched=false,适合可插拔的业务接入。开放平台 evaluate API 使用 required:资产不可用或输入非法时返回 400。

相关源码

位置
共享类型与校验packages\shared\src\rules\types.tsconstants.tsvalidation.tscell.ts
表结构packages\server\src\db\schema\rules.ts
管理 APIpackages\server\src\routes\platform\rules*.ts
业务服务packages\server\src\services\platform\rules*.service.ts
求值引擎packages\server\src\lib\rules-engine.tsrules-flow.tsrules-scorecard.ts
运行时门面packages\server\src\services\platform\rules-runtime.service.ts
前端页面packages\web\src\pages\rules\
前端查询packages\web\src\hooks\queries\rules.tsrules-scorecards.ts
种子数据packages\shared\src\seed\menus\rules.tspackages\shared\src\seed\rules.ts

Built with VitePress for local documentation preview.