datai/datai-scenes/datai-scene-salesforce/docs/sessions/20260117-metadata-retrieve-deploy.md
Kris 469c78cf29 feat: REQ-010-1 完成数据库表结构设计和创建,REQ-010-2 完成基础实体类和Mapper创建需求定义和架构决策
REQ-010-1 完成内容:
- 创建 6 个数据库表设计(datai_meta_org_config、datai_meta_task、datai_meta_job_execution、datai_meta_component、datai_meta_deploy_history、datai_meta_job_log)
- 设计了合理的索引策略
- 对敏感字段进行了加密存储设计
- 表名前缀统一为 datai_meta_
- 所有表包含标准基础字段

REQ-010-2 完成内容:
- 补充用户故事和细化验收标准
- 创建架构决策记录(MyBatis Plus 注解 + XML 映射文件混合方案)
- 对比了 3 种备选方案
- 分析了决策对系统架构、开发流程、运维管理的影响
- 识别了技术风险、业务风险和实施风险
- 定义了回滚策略和验收标准

文档更新:
- 创建 0010-database-table-design.md 架构决策记录
- 创建 0011-entity-mapper-create.md 架构决策记录
- 创建 0020-database-table-design-create.md 变更记录
- 创建 20260117-database-table-design-create.md 会话记录
- 创建 20260117-database-table-design-create-retro.md 复盘报告
- 创建 011-database-table-design-create.md 提示词文档
- 更新 REQ-010-2.md 需求文档
- 更新 docs/index.md 和 CHANGELOG.md
2026-01-18 19:44:13 +08:00

2.9 KiB
Raw Blame History

会话记录:元数据拉取和部署功能实现

现状

已完成元数据拉取和部署功能的需求定义、方案决策和提示词资产化,现开始进入代码实现阶段。

目标

实现 Salesforce 元数据的拉取和部署功能,支持全量/增量部署、验证、单元测试以及破坏性变更,提高元数据管理效率。

执行过程

步骤 1创建项目结构

创建了元数据模块的基本目录结构:

src/main/java/com/datai/metadata/
├── controller      # 控制器层
├── service         # 服务层接口
├── service/impl    # 服务层实现
├── model           # 实体类
└── utils           # 工具类

步骤 2实现实体类

根据架构决策中定义的数据库表结构,实现了以下实体类:

  1. SfOrgConfigSalesforce 组织配置表,存储所有需要连接的 Salesforce 环境信息
  2. SfMetadataTask:元数据任务定义表,定义具体的拉取规则
  3. SfJobExecution:作业执行流水表,记录每一次拉取动作的实例
  4. SfMetadataComponent:元数据组件详情表,将拉取下来的文件进行“结构化”存储
  5. SfDeployHistory:部署历史表,记录从 OSS 把文件推回 Salesforce 的记录

步骤 3更新依赖

更新了 pom.xml 文件,添加了必要的依赖:

  • Spring Boot Starter Web
  • Lombok
  • Salesforce WSC (Web Service Connector)
  • Salesforce Metadata API
  • Apache Commons Lang
  • Apache Commons IO
  • Quartz Scheduler
  • Jackson Databind

下一步计划

  1. 实现服务层接口和实现类
  2. 实现 Salesforce API 调用工具类
  3. 实现控制器层
  4. 实现定时任务
  5. 实现异步处理机制
  6. 实现部署结果解析
  7. 实现快速部署功能

风险与问题

  1. 技术风险Salesforce API 版本变更可能导致兼容性问题
  2. 性能风险:异步处理机制可能引入复杂的并发问题
  3. 依赖风险Salesforce WSC 和 Metadata API 依赖可能存在版本冲突

解决措施

  1. 定期检查 Salesforce API 文档,及时更新依赖版本
  2. 采用成熟的异步处理框架,如 Spring 异步注解或消息队列
  3. 详细测试不同版本依赖的兼容性,选择稳定版本

验收标准

  1. 成功拉取 Salesforce 元数据
  2. 成功部署元数据到目标组织
  3. 支持全量/增量部署、验证、单元测试和破坏性变更
  4. 提供详细的部署结果和错误信息
  5. 支持使用验证 ID 进行快速部署
  6. 拉取和部署操作异步处理,不阻塞请求线程
  7. 所有 Salesforce 认证信息加密存储
  8. 系统能够处理 API 调用失败和重试

参考文档

  1. 需求文档 - 元数据拉取和部署功能实现
  2. 架构决策 - 元数据拉取和部署功能架构决策
  3. 提示词文档 - 元数据拉取和部署功能实现提示词