diff --git a/双区域部署与Nacos规划.md b/双区域部署与Nacos规划.md index 635935c..9fde7ef 100644 --- a/双区域部署与Nacos规划.md +++ b/双区域部署与Nacos规划.md @@ -44,7 +44,8 @@ Namespace 名称不是服务名。环境变量必须填写 Nacos 实际 Namespac - `gateway-overseas` - `lastleg-service` - `warehouse-overseas-service` -- 海外 Event Bridge,用于接收目标区域为 `OVERSEAS` 的事件并投递本地 Lastleg +- `overseas-security-service`,持有 `baiyue_overseas_security` 的 IAM 安全事件 Inbox/投影,只开放内部事件和校验端点 +- 海外 Event Bridge,用于接收目标区域为 `OVERSEAS` 的事件;业务事件投递本地 Lastleg,三类 IAM 安全事件投递海外安全服务 海外浏览器请求直接进入海外 Gateway,不经过国内 Gateway。Auth 仍只部署在国内;海外服务通过受控 JWKS 地址验证 Auth 签发的短时海外 Token,不访问国内 Redis。 @@ -70,6 +71,9 @@ DATA_RESIDENCY=CN OVERSEAS_NACOS_SERVER_ADDR=<当前环境Nacos地址> OVERSEAS_NACOS_NAMESPACE=<当前环境海外Namespace ID> OVERSEAS_DEPLOYMENT_CELL=-overseas +OVERSEAS_SECURITY_DB_URL=<海外安全投影MySQL连接> +OVERSEAS_SECURITY_DB_USERNAME=<账号> +OVERSEAS_SECURITY_DB_PASSWORD=<凭据> ``` 海外 Compose 必须强制传入 `REGION_CODE=OVERSEAS` 和 `DATA_RESIDENCY=OVERSEAS`,不得继承共享文件中的国内默认值。 diff --git a/独立任务协作登记.md b/独立任务协作登记.md index 39b28ef..a41aaf8 100644 --- a/独立任务协作登记.md +++ b/独立任务协作登记.md @@ -47,7 +47,7 @@ | `01a01e56-bed3-75f3-ba02-cc28479cd8ee` | `01a0194a-259c-7171-8967-074731a27618` | 四期后端专项三:海外入仓与库存 | 负责 Lastleg 与 Warehouse Overseas 的尾程订单、接柜、入仓计划、卸货入库、换标、平台公共托盘、SKU 库存和库内操作后端;排除箱号平台、产品库、海外出库、退货出库、海外派送,不向 Admin 暴露 PDA 或内部事件端点 | | `01a01e56-c0f2-71f1-9c74-02f6709233f1` | `01a0194a-259c-7171-8967-074731a27618` | 四期后端专项四:海外本土业务 | 负责 Lastleg 海外采购订单、本土卡车、本土散板完整后端,以及客户/仓库候选、字段清空语义、流水、平台写接口、权限、OpenAPI、SQL 和测试;排除采购出库、海外仓出库、退货出库与海外派送 | | `01a01e56-c30b-7513-be9e-03262a387696` | `01a0194a-259c-7171-8967-074731a27618` | 四期后端专项五:船节点自动查询 | 负责国内确认出仓后至还柜的 CarrierScheduleQuery 自动任务、租约、幂等、退避、十个标准节点、异常事实、预计/实际时间、人工补录、还柜停止条件、Integration 供应商适配、查询尝试与历史、货柜 DTO 及跨区衔接;不新建重复轮询体系,不承接海外派送、PDA 或前端页面 | -| `01a03702-e35b-7202-a395-62643ab77ec2` | `01a036f9-1d1c-77a0-a4d4-a99bb0d2532a` | Java架构专项一:拓扑与质量门禁 | 负责 22 Maven 模块、15 个可运行服务的拓扑合同,POM、service-map、GitLab 制品、Jenkins、Compose、Nacos 清单一致性,以及 Maven、OpenAPI、JaCoCo、静态分析和 ArchUnit 共享质量门禁;不修改业务状态机、不部署,海外基础设施内容与四期后端基础设施专项协调 | +| `01a03702-e35b-7202-a395-62643ab77ec2` | `01a036f9-1d1c-77a0-a4d4-a99bb0d2532a` | Java架构专项一:拓扑与质量门禁 | 负责当前 23 Maven 模块、16 个可运行服务的拓扑合同,POM、service-map、GitLab 制品、Jenkins、Compose、Nacos 清单一致性,以及 Maven、OpenAPI、JaCoCo、静态分析和 ArchUnit 共享质量门禁;不修改业务状态机、不部署,海外基础设施内容与四期后端基础设施专项协调 | | `01a03702-e52e-7503-8c4e-b24ebf6aa925` | `01a036f9-1d1c-77a0-a4d4-a99bb0d2532a` | Java架构专项二:同步依赖与失败传播 | 负责 Java 后端 Feign/HTTP 同步调用图,双向依赖、调用链深度、超时、重试、熔断、幂等、错误映射和失败传播治理;不擅自改变财务或四期业务状态机,不以默认成功、空数据或静默降级掩盖远端失败 | | `01a03702-e749-7ce1-9c50-25961c7dfc83` | `01a036f9-1d1c-77a0-a4d4-a99bb0d2532a` | Java架构专项三:Event Bridge可靠传输 | 负责当前 HTTP+DB 跨区事件链路的 common-event-contract、Event Bridge、Firstleg、Lastleg 和 IAM Outbox/Inbox、租约、退避、投递记录、死信、人工补投、幂等冲突、文档口径和链路测试;不定义财务或四期业务语义,不承接部署基础设施 | | `01a03702-e92c-7b12-815d-5e02f1e1adf0` | `01a036f9-1d1c-77a0-a4d4-a99bb0d2532a` | Java架构专项四:Firstleg内部模块化 | 负责 Firstleg 同一部署单元内入库、测量计价、分柜装柜、订舱报关拖车、出仓、船节点、客户统计和财务集成切片的应用 Port、依赖方向与 ArchUnit 治理;不拆新微服务、不扩大业务范围、不替代财务总控 | diff --git a/跨区域认证与服务通信契约.md b/跨区域认证与服务通信契约.md index 21698a4..1c3d14b 100644 --- a/跨区域认证与服务通信契约.md +++ b/跨区域认证与服务通信契约.md @@ -28,6 +28,13 @@ - MQ 使用独立的服务身份、TLS 和 ACL;服务间事件鉴权与用户 JWT 鉴权分开。只有明确的同步 HTTP 内部接口才使用内部服务令牌。 - 修改事件时联查 `common-event-contract/`、`event-bridge-service/`、生产服务、消费服务、幂等记录、重试/死信和契约测试。 +### IAM 安全事件海外投影冻结 + +- `IamUserStatusChanged`、`IamTenantStatusChanged`、`IamPermissionVersionChanged` V1 固定由海外 `overseas-security-service` 消费;不得投递到 Lastleg 的 LoadingCompletedConsumer。 +- Event Bridge 只按冻结的 eventType→consumer URL 选择下游,不解析状态、权限版本或 payload 业务字段。海外业务事件仍投 Lastleg,国内回流事件仍投 Firstleg。 +- 安全服务以 MySQL `overseas_security_event_inbox` 和 `overseas_security_projection` 为可靠来源:eventId 相同 hash 相同幂等,异 hash 冲突;聚合版本只单调推进,旧版本标记 STALE,同版本异 hash 冲突。Redis 仅为提交后写入的可重建镜像,授权校验不依赖 Redis 默认放行。 +- 海外 Gateway 对全部 `/api/**` 在本地 JWT 验签后,仅传递 `userId/tenantId/tokenVersion/permissionVersion` 到安全服务。用户停用返回 A0401;客户停用或 Token 权限版本落后返回 A0403;安全服务、SQL 或调用链不可用均 fail-closed。PDA 在此基础上继续执行 Auth 仓绑定实时核验。 + ## 修改与验收 - Token、Audience、Claim、JWKS、API Base 或刷新策略变化时,至少联查 Auth、IAM、Admin/Client 统一认证层、国内/海外 Gateway、`common-security/` 和目标海外服务。