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