datai/docs/archive/sessions/20260118-org-config-management.md

8.6 KiB
Raw Permalink Blame History

会话记录 - Salesforce组织配置管理实现

现状

REQ-010-3Salesforce组织配置管理已完成前三个阶段

  • 阶段1需求定义与入库 - 已完成,需求文档状态已更新
  • 阶段2架构决策 - 已完成,创建了 ADR-0012-org-config-management.md 架构决策记录
  • 阶段3提示词资产化 - 已完成,创建了 Prompt-013-org-config-management.md 提示词文档

现在进入阶段4执行会话与代码生成需要实现 Salesforce 组织配置的完整管理功能。

目标

实现 Salesforce 组织配置的完整管理功能,包括:

  1. 组织配置 CRUD 功能:实现组织配置的增删改查,支持多环境配置
  2. OAuth 认证信息加密存储:使用 AES-256-CBC 加密算法加密存储 OAuth 认证信息
  3. 环境类型管理使用枚举类型管理环境类型Sandbox/Production
  4. 存储根路径配置:支持 OSS 和本地文件系统存储路径配置
  5. 连接状态管理使用枚举类型管理连接状态Active/Inactive/Auth_Invalid
  6. 配置验证功能:验证 OAuth 认证信息格式和连接可用性

输入链接

Prompt 文件

Context Snapshot

记录本次会话参考了哪些 Canvas 节点:

执行过程

计划执行步骤

  1. 创建枚举类

    • 创建 EnvironmentType 枚举类SANDBOX, PRODUCTION
    • 创建 ConnectionStatus 枚举类ACTIVE, INACTIVE, AUTH_INVALID
  2. 创建加密工具类

    • 创建 EncryptionUtil 工具类
    • 实现 AES-256-CBC 加密方法
    • 实现 AES-256-CBC 解密方法
    • 配置加密密钥
  3. 创建 Service 层

    • 创建 DataiMetaOrgConfigService 接口
    • 创建 DataiMetaOrgConfigServiceImpl 实现类
    • 实现组织配置 CRUD 方法
    • 实现配置验证方法
    • 实现加密解密逻辑
  4. 创建 Controller 层

    • 创建 DataiMetaOrgConfigController 控制器
    • 实现创建组织配置接口
    • 实现更新组织配置接口
    • 实现删除组织配置接口
    • 实现查询组织配置详情接口
    • 实现查询组织配置列表接口
    • 实现验证组织配置接口
  5. 编写单元测试

    • 为 Service 层编写单元测试
    • 为 Controller 层编写集成测试
    • 确保测试覆盖率 >= 80%
  6. 更新文档

    • 更新 REQ-010-3 需求文档状态
    • 创建变更记录文档
    • 创建复盘报告文档

预期问题和解决方案

  • 问题1: 加密密钥管理

    • 解决方案: 使用配置文件或环境变量管理加密密钥
  • 问题2: 连接状态同步

    • 解决方案: 使用 SessionManager 定期检查连接状态
  • 问题3: 路径验证失败

    • 解决方案: 提供详细的错误信息,支持手动配置路径

关键产出

记录本次会话的关键产出,例如:

质疑与替代方案

记录在执行过程中提出的质疑和考虑的替代方案:

  • 质疑: 是否需要使用 RSA 加密算法?

    • 替代方案: 使用 RSA 非对称加密算法
    • 评估: AES-256 加密已经足够安全,且性能更好,因此选择 AES-256
  • 质疑: 是否需要使用数据库加密函数?

    • 替代方案: 使用数据库加密函数
    • 评估: 应用层加密更灵活,不依赖数据库特定功能,因此选择应用层加密
  • 质疑: 是否需要使用 JPA/Hibernate

    • 替代方案: 使用 JPA/Hibernate
    • 评估: 项目已经使用 MyBatis Plus保持技术栈一致性更重要因此选择 MyBatis Plus

结论

总结本次会话的结果,包括:

  • 完成的工作:

    • 完成了 REQ-010-3 的前三个阶段(需求定义、架构决策、提示词资产化)
    • 创建了架构决策记录 ADR-0012-org-config-management.md
    • 创建了提示词文档 Prompt-013-org-config-management.md
    • 创建了会话记录文档
  • 达成的目标:

    • 明确了 Salesforce 组织配置管理的架构设计
    • 确定了加密方案AES-256-CBC
    • 确定了 API 接口设计6 个 RESTful 接口)
    • 确定了代码结构和实现方式
  • 后续的行动计划:

    • 实现组织配置 CRUD 功能
    • 实现 OAuth 认证信息加密存储
    • 实现环境类型和连接状态管理
    • 实现存储路径配置和验证
    • 实现配置验证功能
    • 编写单元测试和集成测试
    • 更新文档
  • 需要跟进的事项:

    • 配置加密密钥
    • 集成 SessionManager 进行连接验证
    • 测试加密解密功能
    • 测试配置验证功能

Design Update

  • 是否需要更新 Canvas?
  • Authentication.canvas
  • 其他 Canvas 文件: ____________________

复现步骤

提供复现本次会话结果的具体步骤:

  1. 创建枚举类

    • 创建 EnvironmentType 枚举类,包含 SANDBOX 和 PRODUCTION 两个值
    • 创建 ConnectionStatus 枚举类,包含 ACTIVE、INACTIVE 和 AUTH_INVALID 三个值
    • 使用 @EnumValue 注解映射枚举值到数据库
  2. 创建加密工具类

    • 创建 EncryptionUtil 工具类
    • 实现 encrypt(String data, String key) 方法,使用 AES-256-CBC 加密
    • 实现 decrypt(String encryptedData, String key) 方法,使用 AES-256-CBC 解密
    • 配置加密密钥到 application.yml 或环境变量
  3. 创建 Service 层

    • 创建 DataiMetaOrgConfigService 接口,定义 CRUD 和验证方法
    • 创建 DataiMetaOrgConfigServiceImpl 实现类
    • 注入 DataiMetaOrgConfigMapperEncryptionUtil
    • 实现创建、更新、删除、查询方法
    • 实现配置验证方法,包括 OAuth 认证信息验证、路径验证、连接验证
  4. 创建 Controller 层

    • 创建 DataiMetaOrgConfigController 控制器
    • 使用 @RestController@RequestMapping("/api/metadata/org-config") 注解
    • 实现创建接口: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
    • 使用 @PreAuthorize 注解进行权限控制
    • 使用 @Valid 注解进行参数验证
  5. 编写单元测试

    • DataiMetaOrgConfigServiceImpl 编写单元测试
    • EncryptionUtil 编写单元测试
    • DataiMetaOrgConfigController 编写集成测试
    • 确保测试覆盖率 >= 80%
  6. 验证方法

    • 启动应用,测试所有 API 接口
    • 验证加密解密功能是否正常
    • 验证配置验证功能是否正常
    • 验证环境类型和连接状态管理是否正常
    • 验证存储路径配置和验证是否正常