Files
baiyue-firstleg/docs/repository-boundary.md
T
2026-07-30 18:01:36 +08:00

2.4 KiB

头程仓库边界

业务所有权

头程仓库拥有统一身份入口和国内主数据,包括租户、用户、角色、菜单、按钮权限、订单、国内仓储、头程履约、文件、打印、审计和国内渠道集成。auth 负责认证,iam 负责授权与租户隔离;任何海外服务都不能直接写入这两个服务的数据库。

尾程仓库拥有海外尾程履约及海外本地支撑能力。头程仓库不包含尾程服务源码,尾程仓库也不复制认证、权限、角色和租户服务。

技术边界

  • 公共代码由本仓以 com.baiyue.shared 坐标发布,尾程仓通过 com.baiyue.shared:baiyue-platform-bom:1.0.0-SNAPSHOT 锁定版本。
  • 两仓保留各自独立的父工程、构建流水线、配置中心命名空间和数据库实例。
  • 跨区域通信只使用版本化事件信封,通过事件桥、HTTPS 与双向证书完成。
  • 禁止跨公网共享 MySQL、Redis、Nacos,禁止跨区域直接使用 Feign 调用内部服务。
  • 文件二进制存入区域对象存储;跨区仅传递文件标识、签名地址或经批准的复制事件。

身份与权限

统一登录、租户、用户、角色、菜单及按钮权限全部归属头程仓。权限体系按应用端严格分为商户端 MERCHANT 和平台后台端 PLATFORM 两套,角色、菜单、页面、按钮和接口权限均按 tenant_id + app_code 隔离,后端写接口必须校验对应权限码,不能只依赖前端隐藏按钮。海外网关和服务只验证由头程认证中心签发的非对称令牌,通过只读密钥集合校验签名,不连接国内认证数据库。令牌需携带租户、用户、端类型、角色、权限及区域声明;海外服务仍必须执行租户隔离和本地资源授权校验。

数据与事件

订单在头程仓主写,头程完成后发布交接事件。尾程里程碑通过事件桥回传,头程订单服务生成国内只读轨迹投影并触发通知。发送端使用 Outbox,接收端使用 Inbox,事件必须具备全局事件编号、聚合编号、版本、源区域、目标区域、链路编号和摘要。

发布原则

公共制品先发布 BOM 与依赖模块,再构建尾程仓。公共事件契约只允许向后兼容扩展;破坏性变更必须提升主版本并安排双版本消费窗口。两个仓库独立发布,任何一方失败不得要求另一方同时回滚。