datai/docs/archive/prompts/013-org-config-management.md

183 lines
6.9 KiB
Markdown
Raw Normal View History

# Prompt-013: Salesforce组织配置管理实现
## 输入引用
引用相关的 docs 文档链接:
- [REQ-010-3.md](../requirements/REQ-010-3.md) - Salesforce组织配置管理需求文档
- [REQ-010-1.md](../requirements/REQ-010-1.md) - 数据库表结构设计和创建
- [REQ-010-2.md](../requirements/REQ-010-2.md) - 基础实体类和Mapper创建
- [ADR-0012-org-config-management.md](../decisions/adr/0012-org-config-management.md) - Salesforce组织配置管理架构决策
- [010-metadata-retrieve-deploy-sub-requirements.md](../requirements/010-metadata-retrieve-deploy-sub-requirements.md) - REQ-010子需求拆分文档
## Context Maps
强制列出本次 Prompt 依赖的 Canvas 文件:
- [Authentication.canvas](../Authentication.canvas) - 项目架构视觉化展示
- **相关节点**: [SessionManager](node_session_manager_detail) - 会话管理,提供登录服务
- **相关节点**: [集成核心](node_integration_core) - 提供与Salesforce的各种连接方式
## 目标
实现 Salesforce 组织配置的完整管理功能,包括:
1. **组织配置 CRUD 功能**:实现组织配置的增删改查,支持多环境配置
2. **OAuth 认证信息加密存储**:使用 AES-256-CBC 加密算法加密存储 OAuth 认证信息
3. **环境类型管理**使用枚举类型管理环境类型Sandbox/Production
4. **存储根路径配置**:支持 OSS 和本地文件系统存储路径配置
5. **连接状态管理**使用枚举类型管理连接状态Active/Inactive/Auth_Invalid
6. **配置验证功能**:验证 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、加密工具类、枚举类代码 | - | - |