datai/datai-scenes/datai-scene-salesforce/docs/sessions/2026-02-03-003-03-session.md

4.2 KiB
Raw Blame History

会话记录 - 部署操作

元数据

  • 需求编号003-03
  • 需求名称:部署操作
  • 开始时间2026-02-03
  • 结束时间2026-02-03
  • 当前阶段:阶段 5提示词生成

阶段记录

阶段 1需求定义

阶段 2方案设计

  • 状态:已完成(已重新生成,覆盖原有内容)
  • 设计文档:2026-02-03-003-03-部署操作-设计.md
  • 关键设计决策(重新生成后):
    1. 架构设计采用分层架构Controller → Service → Factory → Metadata API复用 003-01 和 003-02 的组件
    2. 通用字节流接口Service 层接收 byte[] ZIP 数据,与元数据构建逻辑解耦
    3. 文件上传处理Controller 使用 MultipartFile 接收文件,转换为 byte[] 传递给 Service
    4. 数据复用:完全复用 003-02 的 datai_metadata_deploy_log 表和 MetadataDeployLog 实体类
    5. 同步轮询机制:后端轮询,最多 60 次5 分钟),每 5 秒检查一次状态
    6. 接口设计4 个 REST API 接口(部署 ZIP 包、查询部署状态、同步轮询、取消部署)
    7. VO 设计:定义 AsyncResultVO、DeployResultVO、DeployMessageVO 用于前后端数据交换
    8. 错误处理6 个专用错误码METADATA_DEPLOY_001 ~ METADATA_DEPLOY_006
    9. 性能优化:异步日志、连接复用、轮询优化、超时控制
    10. 安全设计:文件验证、权限控制、参数校验、错误信息隐藏

阶段 3方案决策

  • 状态:已完成(已重新生成,覆盖原有内容)
  • 决策文档:2026-02-03-003-03-ADR-通用部署接口设计.md
  • 关键决策内容(重新生成后):
    1. 通用字节流接口Service 接收 byte[] 格式的 ZIP 包,实现部署操作与元数据构建逻辑的解耦
    2. 选择理由
      • 关注点分离:元数据构建与部署执行解耦
      • 灵活性与通用性:支持系统内部生成和用户上传的 ZIP 包
      • 复用性003-02 可直接调用此接口
      • 架构一致性:符合 Salesforce Metadata API 设计原语
      • 测试便利性:可通过预准备 ZIP 文件测试
    3. 正面影响:极高的复用性、易于测试、支持文件上传、降低耦合度、符合开闭原则
    4. 负面影响及缓解措施
      • 验证滞后 → 依赖 Salesforce 校验机制或增加预检查
      • 类型安全性降低 → Controller 层参数校验
      • 调试困难 → 003-02 中记录 ZIP 生成日志
    5. 替代方案分析
      • 方案 2强类型接口类型安全但耦合度高
      • 方案 3混合接口兼顾灵活但增加复杂度
      • 方案 4回调接口灵活性高但调用方复杂

阶段 4数据库结构生成

  • 状态:已完成(已重新确认)
  • 涉及数据库变更:
  • SQL 脚本:无(复用 003-02 数据库结构)
  • 说明:
    • 本需求完全复用 003-02 中定义的 datai_metadata_deploy_log
    • 无需创建新表、修改现有表或添加索引
    • 仅需在 003-02 的 SQL 脚本中扩展操作类型数据字典(deploy_zip
    • 实体类 MetadataDeployLog 完全复用 003-02 的定义

阶段 5提示词生成

  • 状态:已完成
  • 提示词文档:2026-02-03-003-03-prompt-部署操作.md
  • 关键内容:
    • 目标:实现通用部署接口、状态查询、取消和同步轮询。
    • 接口约束Service 接收 byte[] ZIPController 处理 MultipartFile。
    • 技术栈Spring Boot, MyBatis Plus, Salesforce WSC。

待完成阶段

  • 阶段 1需求定义
  • 阶段 2方案设计已重新生成
  • 阶段 3方案决策已重新生成
  • 阶段 4数据库结构生成已重新确认复用 003-02
  • 阶段 5提示词生成需重新生成
  • 阶段 6代码生成
  • 阶段 7会话记录
  • 阶段 8变更日志
  • 阶段 9复盘和 API 文档
  • 阶段 10代码提交