4.2 KiB
4.2 KiB
会话记录 - 部署操作
元数据
- 需求编号:003-03
- 需求名称:部署操作
- 开始时间:2026-02-03
- 结束时间:2026-02-03
- 当前阶段:阶段 5:提示词生成
阶段记录
阶段 1:需求定义
- 状态:已完成
- 需求文档:2026-01-28-003-03-部署操作.md
阶段 2:方案设计
- 状态:已完成(已重新生成,覆盖原有内容)
- 设计文档:2026-02-03-003-03-部署操作-设计.md
- 关键设计决策(重新生成后):
- 架构设计:采用分层架构(Controller → Service → Factory → Metadata API),复用 003-01 和 003-02 的组件
- 通用字节流接口:Service 层接收
byte[]ZIP 数据,与元数据构建逻辑解耦 - 文件上传处理:Controller 使用
MultipartFile接收文件,转换为byte[]传递给 Service - 数据复用:完全复用 003-02 的
datai_metadata_deploy_log表和MetadataDeployLog实体类 - 同步轮询机制:后端轮询,最多 60 次(5 分钟),每 5 秒检查一次状态
- 接口设计:4 个 REST API 接口(部署 ZIP 包、查询部署状态、同步轮询、取消部署)
- VO 设计:定义 AsyncResultVO、DeployResultVO、DeployMessageVO 用于前后端数据交换
- 错误处理:6 个专用错误码(METADATA_DEPLOY_001 ~ METADATA_DEPLOY_006)
- 性能优化:异步日志、连接复用、轮询优化、超时控制
- 安全设计:文件验证、权限控制、参数校验、错误信息隐藏
阶段 3:方案决策
- 状态:已完成(已重新生成,覆盖原有内容)
- 决策文档:2026-02-03-003-03-ADR-通用部署接口设计.md
- 关键决策内容(重新生成后):
- 通用字节流接口:Service 接收
byte[]格式的 ZIP 包,实现部署操作与元数据构建逻辑的解耦 - 选择理由:
- 关注点分离:元数据构建与部署执行解耦
- 灵活性与通用性:支持系统内部生成和用户上传的 ZIP 包
- 复用性:003-02 可直接调用此接口
- 架构一致性:符合 Salesforce Metadata API 设计原语
- 测试便利性:可通过预准备 ZIP 文件测试
- 正面影响:极高的复用性、易于测试、支持文件上传、降低耦合度、符合开闭原则
- 负面影响及缓解措施:
- 验证滞后 → 依赖 Salesforce 校验机制或增加预检查
- 类型安全性降低 → Controller 层参数校验
- 调试困难 → 003-02 中记录 ZIP 生成日志
- 替代方案分析:
- 方案 2(强类型接口):类型安全但耦合度高
- 方案 3(混合接口):兼顾灵活但增加复杂度
- 方案 4(回调接口):灵活性高但调用方复杂
- 通用字节流接口:Service 接收
阶段 4:数据库结构生成
- 状态:已完成(已重新确认)
- 涉及数据库变更:否
- SQL 脚本:无(复用 003-02 数据库结构)
- 说明:
- 本需求完全复用 003-02 中定义的
datai_metadata_deploy_log表 - 无需创建新表、修改现有表或添加索引
- 仅需在 003-02 的 SQL 脚本中扩展操作类型数据字典(
deploy_zip) - 实体类
MetadataDeployLog完全复用 003-02 的定义
- 本需求完全复用 003-02 中定义的
阶段 5:提示词生成
- 状态:已完成
- 提示词文档:2026-02-03-003-03-prompt-部署操作.md
- 关键内容:
- 目标:实现通用部署接口、状态查询、取消和同步轮询。
- 接口约束:Service 接收
byte[]ZIP,Controller 处理 MultipartFile。 - 技术栈:Spring Boot, MyBatis Plus, Salesforce WSC。
待完成阶段
- 阶段 1:需求定义
- 阶段 2:方案设计(已重新生成)
- 阶段 3:方案决策(已重新生成)
- 阶段 4:数据库结构生成(已重新确认,复用 003-02)
- 阶段 5:提示词生成(需重新生成)
- 阶段 6:代码生成
- 阶段 7:会话记录
- 阶段 8:变更日志
- 阶段 9:复盘和 API 文档
- 阶段 10:代码提交