核心模块治理
受众:开发者 摘要:核心模块按真实 owning module 归属;
system是可用业务语义,不再作为禁用词处理。
历史 spring-open-core-system 巨石模块当前不存在。IAM、配置、Knowledge、Plugin、运行时运维、业务域主代码、测试和 Liquibase 迁移均归属对应 owning core 模块。
开发期按模块职责前进,不为了兼容旧路径添加包装;但 system / System / SYSTEM / sys 可在语义正确时正常用于路由、权限、菜单、表名和配置。面向后台的管理 API 优先使用真实域名,例如 IAM 使用 /api/v1/admin/iam/**,配置使用 /api/v1/config/**,Cashier 使用 /api/v1/admin/cashier/**;系统设置或系统级聚合能力可以正常使用 /api/v1/system/**。
当前边界
| 项 | 当前归属 |
|---|---|
| 历史 Maven 模块 | 已删除 |
| 历史迁移文件 | 已迁入真实 owning module |
| 生产源码 / 资源 / 测试 | 不存在 spring-open-core/spring-open-core-system |
| 自动检查 | .ai/scripts/check modules(依赖方向、模块边界、迁移规范,不按 system 字面量禁用) |
IAM / Auth / RBAC / User / Tenant / DataScope / Workspace 的 schema 在 spring-open-core-iam 的 0000_00_00_010000_core_iam_create_tables.xml,seed 在 0000_00_00_010100_core_iam_seed_data.xml。File、Async Task、Runtime、Cashier、Notification、Queue、Scheduler、WebSocket、Audit 等历史资产也各自放在对应 core 模块的 schema / seed 迁移文件中。
运行时模块
| 能力 | 归属模块 | 文档 |
|---|---|---|
| IAM / Auth / User / RBAC / Tenant / DataScope / Workspace | spring-open-core-iam | IAM |
| 配置 / 配置分类 / 配置变更日志 | spring-open-core-config | 配置中心 |
| 站点公开信息 / 访问策略 / 健康入口 | spring-open-core-site | 站点信息 |
| 字典 / 字典项 / 展示文案解析 | spring-open-core-dict | 字典 |
| Knowledge 后台管理面 | spring-open-core-knowledge | 知识库 |
| Plugin 后台治理面 | spring-open-core-plugin | Plugin |
| 岗位 / 用户岗位 | spring-open-core-organization | 组织岗位 |
| 操作审计日志 | spring-open-core-audit | 操作审计 |
| Queue / Scheduler / WebSocket / Approval Workflow / Observability / Document / Rate Limit 运维 | spring-open-core-queue / spring-open-core-scheduler / spring-open-core-websocket / spring-open-core-approval-workflow / spring-open-core-observability / spring-open-core-document / spring-open-core-rate-limit | 架构、限流 |
| 通知 / 站内信 / 通知规则 / 发送日志 | spring-open-core-notification | 通知 |
| 文件 / 媒体资产绑定 | spring-open-core-file | 文件元数据 |
| 异步任务 / CSV 导出 | spring-open-core-async-task | 架构 |
| Outbox / 补偿命令 / Webhook | spring-open-core-outbox | 幂等与 Outbox |
| 内容安全词库 / 检测日志 / 复核任务 / 批量扫描 | spring-open-core-content-safety | 内容安全 |
| 报表定义 / 即时快照 / 异步导出聚合 | spring-open-core-reporting | 报表中心 |
| 风控规则 / 风险事件 / 冻结 / 人工复核 | spring-open-core-risk | 风控限额 |
| 收银台 / 支付订单 / 回调 / 报价 | spring-open-core-cashier | 收银台 |
| 会员积分 / 签到 / 过期任务 | spring-open-core-member-points | 会员积分 |
| 开放 API contract / 演示数据清理 | spring-open-core-runtime | 架构 |
新增代码必须放到真实 owning module。如果能力语义确实属于系统设置或系统级聚合,可以正常使用 System 命名;不要为了避让历史债强行改成 config / core / admin 等近似词。
判断规则
- 新增后台能力先判断真实归属:身份相关进
core-iam,配置相关进core-config,站点公开信息进core-site,字典进core-dict,通知进core-notification,文件 / 媒体进core-file,异步任务 / CSV 导出进core-async-task,Outbox / 补偿 / Webhook 进core-outbox,内容安全运维进core-content-safety,报表定义 / 快照 / 导出聚合进core-reporting,风控限额进core-risk,收银台支付订单进core-cashier,会员积分进core-member-points,开放 API contract / 演示数据清理等剩余运行时支撑进core-runtime,技术能力管理面进对应core-*。 - 不按
system字面量判断对错;只按职责、依赖方向、复用范围、Maven 坐标、迁移归属和前端入口归属判断。 - 如果将来需要重新引入
spring-open-core-system,按普通 core 模块设计和验证处理,不作为历史模块特殊禁区。
验证命令:
./.ai/scripts/check modules
git diff --check