183 lines
6.9 KiB
Markdown
183 lines
6.9 KiB
Markdown
# 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、加密工具类、枚举类代码 | - | - |
|