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

81 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 会话记录 - 部署操作
## 元数据
- 需求编号003-03
- 需求名称:部署操作
- 开始时间2026-02-03
- 结束时间2026-02-03
- 当前阶段:阶段 5提示词生成
## 阶段记录
### 阶段 1需求定义
- 状态:已完成
- 需求文档:[2026-01-28-003-03-部署操作.md](../requirements/sub/2026-01-28-003-03-部署操作.md)
### 阶段 2方案设计
- 状态:已完成(已重新生成,覆盖原有内容)
- 设计文档:[2026-02-03-003-03-部署操作-设计.md](../design/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](../decisions/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](../prompts/2026-02-03-003-03-prompt-部署操作.md)
- 关键内容:
- **目标**:实现通用部署接口、状态查询、取消和同步轮询。
- **接口约束**Service 接收 `byte[]` ZIPController 处理 MultipartFile。
- **技术栈**Spring Boot, MyBatis Plus, Salesforce WSC。
## 待完成阶段
- [x] 阶段 1需求定义
- [x] 阶段 2方案设计已重新生成
- [x] 阶段 3方案决策已重新生成
- [x] 阶段 4数据库结构生成已重新确认复用 003-02
- [ ] 阶段 5提示词生成需重新生成
- [ ] 阶段 6代码生成
- [ ] 阶段 7会话记录
- [ ] 阶段 8变更日志
- [ ] 阶段 9复盘和 API 文档
- [ ] 阶段 10代码提交