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

183 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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、加密工具类、枚举类代码 | - | - |