datai/docs/archive/changelog/0022-org-config-management.md

209 lines
6.6 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.

# 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组织配置管理实现会话记录