6.9 KiB
6.9 KiB
Prompt-013: Salesforce组织配置管理实现
输入引用
引用相关的 docs 文档链接:
- REQ-010-3.md - Salesforce组织配置管理需求文档
- REQ-010-1.md - 数据库表结构设计和创建
- REQ-010-2.md - 基础实体类和Mapper创建
- ADR-0012-org-config-management.md - Salesforce组织配置管理架构决策
- 010-metadata-retrieve-deploy-sub-requirements.md - REQ-010子需求拆分文档
Context Maps
强制列出本次 Prompt 依赖的 Canvas 文件:
- Authentication.canvas - 项目架构视觉化展示
- 相关节点: SessionManager - 会话管理,提供登录服务
- 相关节点: 集成核心 - 提供与Salesforce的各种连接方式
目标
实现 Salesforce 组织配置的完整管理功能,包括:
- 组织配置 CRUD 功能:实现组织配置的增删改查,支持多环境配置
- OAuth 认证信息加密存储:使用 AES-256-CBC 加密算法加密存储 OAuth 认证信息
- 环境类型管理:使用枚举类型管理环境类型(Sandbox/Production)
- 存储根路径配置:支持 OSS 和本地文件系统存储路径配置
- 连接状态管理:使用枚举类型管理连接状态(Active/Inactive/Auth_Invalid)
- 配置验证功能:验证 OAuth 认证信息格式和连接可用性
输出格式
1. 代码结构
datai-salesforce-metadata/
└── src/main/java/com/datai/metadata/
├── controller/
│ └── DataiMetaOrgConfigController.java
├── service/
│ ├── DataiMetaOrgConfigService.java
│ └── impl/
│ └── DataiMetaOrgConfigServiceImpl.java
├── util/
│ └── EncryptionUtil.java
└── enums/
├── EnvironmentType.java
└── ConnectionStatus.java
2. 代码要求
- Controller 层:使用
@RestController、@RequestMapping、@PreAuthorize等注解 - Service 层:使用
@Service、@Transactional等注解 - Mapper 层:继承 MyBatis Plus 的
BaseMapper<DataiMetaOrgConfig> - 参数验证:使用
@Valid、@NotNull、@NotBlank等注解 - 异常处理:使用统一的异常处理机制
- 响应格式:使用统一的响应格式(AjaxResult)
3. API 接口
POST /api/metadata/org-config- 创建组织配置PUT /api/metadata/org-config/{id}- 更新组织配置DELETE /api/metadata/org-config/{id}- 删除组织配置GET /api/metadata/org-config/{id}- 查询组织配置详情GET /api/metadata/org-config- 查询组织配置列表(支持分页和条件查询)POST /api/metadata/org-config/{id}/validate- 验证组织配置
4. 单元测试
- 为 Service 层编写单元测试
- 为 Controller 层编写集成测试
- 测试覆盖率 >= 80%
约束
技术栈限制
- 必须基于现有的 Spring Boot 3 + Vue 3 技术栈
- 必须使用 MyBatis Plus 作为持久层框架
- 必须使用现有的认证模块和 SessionManager 进行会话管理
- 必须使用现有的集成核心功能进行 Salesforce API 调用
架构约束
- 必须遵循 Authentication.canvas 中定义的架构和调用关系
- 必须使用 Controller-Service-Mapper 三层架构
- 必须使用 SessionManager 进行会话管理和自动重新登录
- 必须使用现有的认证模块进行 OAuth 认证
安全约束
- OAuth 认证信息必须加密存储,不存明文密码
- 必须使用 AES-256-CBC 加密算法
- 加密密钥必须安全存储
- 必须使用配置文件或环境变量管理加密密钥
API 约束
- API 接口必须符合 RESTful 规范
- 必须使用统一的响应格式
- 必须使用统一的异常处理机制
- 必须使用统一的日志记录规范
代码规范约束
- 代码必须符合项目编码规范
- 必须有清晰的注释
- 必须使用 Lombok 减少样板代码
- 必须使用 Jackson 处理 JSON
Rule Set
"请严格参考 @Authentication.canvas 中的状态机转移逻辑,不要自行发挥。"
具体规则:
- 必须使用 Canvas 中定义的类名和方法名
- 必须遵循 Canvas 中定义的调用关系
- 必须参考 Canvas 中的流程图逻辑
- 必须使用 SessionManager 进行会话管理和自动重新登录
- 必须使用现有的认证模块进行 OAuth 认证
- 必须使用现有的集成核心功能进行 API 调用
- 必须遵循现有的异常处理机制
- 必须遵循现有的日志记录规范
验收标准
功能验收标准
- 能够成功创建、编辑、删除、查询组织配置
- OAuth 认证信息加密存储成功,解密功能正常工作
- 环境类型和连接状态枚举管理正确
- 存储路径配置和验证功能正常工作
- 配置验证功能正常工作,返回详细的错误信息
- API 接口符合 RESTful 规范,支持分页和条件查询
性能验收标准
- 加密解密性能满足要求,不影响系统响应
- 配置查询性能满足要求,支持分页查询
- 配置验证性能满足要求,不影响用户体验
安全验收标准
- OAuth 认证信息加密存储,符合安全标准
- 加密密钥安全存储,不泄露
- 配置信息访问权限控制正确
代码质量验收标准
- 代码符合项目编码规范,有清晰的注释
- 代码结构清晰,易于扩展和维护
- 单元测试覆盖率 >= 80%
- 集成测试覆盖主要业务场景
风险
技术风险
-
加密密钥泄露:如果加密密钥泄露,可能导致 OAuth 认证信息泄露
- 缓解措施:加密密钥存储在配置文件中,使用环境变量或密钥管理服务
-
连接状态同步:连接状态可能因为网络问题或 Salesforce API 限制而变化
- 缓解措施:定期检查连接状态,使用 SessionManager 自动重新登录
-
路径验证失败:路径验证可能因为权限问题或网络问题而失败
- 缓解措施:提供详细的错误信息,支持手动配置路径
业务风险
-
配置错误:配置错误可能导致元数据拉取和部署失败
- 缓解措施:提供配置验证功能,确保配置正确
-
多环境配置混乱:多环境配置可能导致配置混乱
- 缓解措施:使用环境类型枚举管理,提供清晰的配置界面
使用记录
| 日期 | 使用场景 | 输入参数 | 输出结果 | 反馈 | 改进措施 |
|---|---|---|---|---|---|
| 2026-01-18 | 实现 Salesforce 组织配置管理功能 | REQ-010-3 需求文档、ADR-0012 架构决策 | 生成 Controller、Service、Mapper、加密工具类、枚举类代码 | - | - |