Files
baiyue-firstleg/iam/AGENTS.md
T
2026-07-31 13:52:35 +08:00

2.9 KiB

IAM Service 模块指引

职责边界

  • 商户侧资质公开接口在 IAM 中只提供查询;真实文件上传统一由 File 服务的 multipart 接口完成,IAM 仅接受 File 服务携带内部令牌提交的资质元数据。

  • 负责租户、用户、成员关系、企业资料与审核、角色、权限、数据范围、个人资料和授权快照。

  • 账号凭据与 Token 属于 auth/;资质文件内容属于 file/。IAM 只维护业务元数据和跨服务协作。

功能快速索引

功能 Controller Service / 数据入口
商户个人与企业资料 controller/MerchantTenantController.java PersonalProfileService.java、TenantService.java
商户成员增改、启停、重置密码 MerchantTenantController.java MemberService.java,账号协作看 client/AuthAccountClient.java
平台创建企业与入驻审核 controller/PlatformTenantController.java MerchantOnboardingService.java、TenantService.java
平台内部用户 controller/ProfileResourceController.java PlatformInternalUserService.java;账号创建、显示名、启停和重置密码经 AuthAccountClient 编排
企业地址与资质元数据 controller/ProfileResourceController.java ProfileResourceService.java、ProfileResourceRepository.java
角色、权限、成员角色、角色授权 controller/RbacController.java RbacService.java、RbacRepository.java
Auth/Order 内部授权与资格查询 InternalAuthorizationController.java、InternalTenantController.java AuthorizationSnapshotService.java、TenantGuard.java
DTO src/main/java/com/baiyue/iam/dto/ 按 Authorization、Member、Onboarding、Profile、Rbac、Tenant 分类
持久化 entity/、mapper/、repository/ 租户、成员、角色、权限、地址、资质与审核模型
数据库 src/main/resources/db/ 主结构 iam.sql,一期与 RBAC 增量脚本同目录
OpenAPI 与说明 src/main/resources/openapi/iam-v1.yaml、README-IAM.md 修改接口契约时同步更新
测试 src/test/java/com/baiyue/iam/ Controller 路由、授权快照、成员、资料和 RBAC 测试

修改与验证

  • tenant_id 是商户数据隔离核心;平台端与商户端访问域、角色和权限不可混用。
  • 按钮隐藏不能代替后端 permission code / permissionIds 校验;权限快照变化需同步检查 Auth 与 Gateway Claim 消费。
  • 成员账号操作跨 IAM/Auth,保持幂等与补偿;资质上传跨 IAM/File,IAM 不保存文件内容。
  • 平台内部用户的公开主键是 membershipId;列表必须回显 roleIds,密码只允许通过 DTO 转交 Auth,禁止进入 IAM 实体、日志或审计快照。
  • SQL 增量保持可重复部署顺序,修改 Entity 时同步检查 Mapper、Repository、DTO 与种子数据。
  • 从父目录运行 mvn -pl iam -am test,再按影响执行一期认证/IAM API 回归。