datai/datai-scenes/datai-scene-salesforce/docs/changelog/0022-org-config-management.md

209 lines
6.6 KiB
Markdown
Raw Normal View History

# Changelog - Salesforce组织配置管理
## 变更信息
- **版本号**: v0.1.20
- **发布日期**: 2026-01-18
- **变更类型**: 特性更新
## 变更摘要
本次变更完成了 `datai-salesforce-metadata` 模块的 Salesforce 组织配置管理功能,包括组织配置的 CRUD 管理、OAuth 认证信息加密存储、环境类型管理、存储路径配置、连接状态管理、配置验证功能等,为元数据拉取和部署系统提供了配置管理基础。
## 详细变更
### 特性更新
- **组织配置 CRUD 功能** - 实现组织配置的增删改查功能
- 支持创建 Salesforce 组织配置
- 支持编辑组织配置
- 支持删除组织配置
- 支持查询组织配置列表(支持分页和条件查询)
- 支持查询组织配置详情
- API 接口符合 RESTful 规范
- **OAuth 认证信息加密存储** - 实现OAuth认证信息的加密存储
- 使用 AES-256-CBC 加密算法
- 加密密钥安全存储
- 解密功能正常工作
- 加密算法符合安全标准
- 使用 Base64 编码存储加密后的数据
- **环境类型管理** - 实现环境类型选择和管理
- 支持环境类型选择Sandbox/Production
- 使用枚举类型管理环境类型
- 环境类型验证正确
- 环境类型显示友好
- **存储根路径配置** - 实现存储根路径配置
- 支持存储根路径配置
- 路径格式验证正确
- 支持相对路径和绝对路径
- 路径存在性检查正确
- 支持 OSS 和本地文件系统存储
- **连接状态管理** - 实现连接状态管理
- 支持连接状态管理Active/Inactive/Auth_Invalid
- 使用枚举类型管理连接状态
- 连接状态更新正确
- 连接状态显示友好
- **配置验证功能** - 实现配置验证功能
- 验证 OAuth 认证信息格式正确
- 验证连接可用性
- 验证失败返回详细错误信息
### 代码更新
- **枚举类创建** - 创建环境类型和连接状态枚举类
- `EnvironmentType` - 环境类型枚举SANDBOX, PRODUCTION
- `ConnectionStatus` - 连接状态枚举ACTIVE, INACTIVE, AUTH_INVALID
- **加密工具类创建** - 创建加密工具类
- `EncryptionUtil` - 加密工具类
- 实现 AES-256-CBC 加密方法
- 实现 AES-256-CBC 解密方法
- 配置加密密钥
- **Service 层创建** - 创建组织配置服务层
- `DataiMetaOrgConfigService` - 组织配置服务接口
- `DataiMetaOrgConfigServiceImpl` - 组织配置服务实现
- 实现组织配置 CRUD 方法
- 实现配置验证方法
- 实现加密解密逻辑
- **Controller 层创建** - 创建组织配置控制器
- `DataiMetaOrgConfigController` - 组织配置控制器
- 实现创建组织配置接口:`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`
### 文档更新
- **需求文档更新** - 更新 REQ-010-3 需求文档
- 更新需求状态为"阶段2-架构决策"
- **架构决策记录创建** - 创建 ADR-0012-org-config-management.md
- 记录 Salesforce 组织配置管理的架构决策
- 确定分层架构设计
- 确定 OAuth 认证信息加密方案
- 确定环境类型和连接状态管理方案
- 确定存储路径配置和验证方案
- 确定 API 接口设计
- **提示词文档创建** - 创建 Prompt-013-org-config-management.md
- 记录 Salesforce 组织配置管理实现的提示词
- 定义代码结构
- 定义代码要求
- 定义 API 接口
- 定义单元测试要求
- **会话记录创建** - 创建 20260118-org-config-management.md
- 记录 Salesforce 组织配置管理实现的会话过程
- 记录执行步骤
- 记录关键产出
- 记录质疑与替代方案
- 记录复现步骤
## 影响范围
### 模块影响
- `datai-salesforce-metadata` - 新增 Salesforce 组织配置管理功能
### API 变更
- 新增 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` - 验证组织配置
### 数据库变更
无数据库变更(使用 REQ-010-1 创建的 datai_meta_org_config 表)
### 配置变更
- 新增配置项:
- `encryption.key` - 加密密钥配置
## 依赖更新
### 新增依赖
无新增依赖(使用现有的 Spring Boot 3 + MyBatis Plus 技术栈)
### 依赖变更
无依赖变更
## 测试
### 单元测试
-`DataiMetaOrgConfigServiceImpl` 编写单元测试
-`EncryptionUtil` 编写单元测试
- 测试覆盖率 >= 80%
### 集成测试
-`DataiMetaOrgConfigController` 编写集成测试
- 测试所有 API 接口
- 测试加密解密功能
- 测试配置验证功能
## 已知问题
无已知问题
## 升级指南
### 配置升级
1.`application.yml` 中添加加密密钥配置:
```yaml
encryption:
key: ${ENCRYPTION_KEY:your-256-bit-encryption-key}
```
2. 确保加密密钥长度为 256 位32 字节)
### 数据库升级
无需数据库升级(使用 REQ-010-1 创建的 datai_meta_org_config 表)
### API 使用升级
1. 使用新的 API 接口管理 Salesforce 组织配置
2. OAuth 认证信息将自动加密存储
3. 使用配置验证接口验证配置正确性
## 回滚计划
如果需要回滚本次变更,可以采取以下步骤:
1. 删除新增的代码文件:
- 删除 `DataiMetaOrgConfigController.java`
- 删除 `DataiMetaOrgConfigService.java`
- 删除 `DataiMetaOrgConfigServiceImpl.java`
- 删除 `EncryptionUtil.java`
- 删除 `EnvironmentType.java`
- 删除 `ConnectionStatus.java`
2. 删除新增的 API 接口
3. 删除新增的配置项
## 相关文档
- [REQ-010-3.md](../requirements/REQ-010-3.md) - Salesforce组织配置管理需求文档
- [ADR-0012-org-config-management.md](../decisions/adr/0012-org-config-management.md) - Salesforce组织配置管理架构决策
- [013-org-config-management.md](../prompts/013-org-config-management.md) - Salesforce组织配置管理实现提示词
- [20260118-org-config-management.md](../sessions/20260118-org-config-management.md) - Salesforce组织配置管理实现会话记录