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

247 lines
9.6 KiB
Markdown
Raw Permalink 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.

# 会话记录
## 元数据
- 需求编号005
- 开始时间2026-02-03
- 结束时间:进行中
- 当前阶段:阶段 1需求定义与入库
## 需求澄清记录
### 原始需求
调整 Apex 模块,将代码提取出来使用 file 模块进行存储。
### 第一轮澄清
**AI 提问**
1. 这个重构涉及 Apex 模块的哪些具体功能?
2. 代码提取后需要存储到 file 模块的哪种存储方式?
3. 数据库中已存在的代码如何处理?
4. 这个重构对现有功能的影响范围是什么?
**用户回答**
- 涉及所有需要的子需求
- 多种存储方式,可以自定义
- 不处理数据库中的
- 对现有功能为向后兼容
### 第二轮澄清
**AI 提问**
1. 具体涉及的子需求有哪些?
2. file 模块支持 local、minio、oss 三种存储方式,用户如何选择?
3. 数据库表结构是否需要调整?
4. "向后兼容"是指 API 接口保持不变吗?
5. file 模块存储后,代码下载的响应时间要求是多少?
6. 是否需要对存储的代码文件进行加密?
7. 是否需要记录代码文件的访问日志?
**用户回答**
- 所有有可能需要的模块,都提取
- 存储默认 local可以切换其它
- 需要调整数据库表结构
- (未回答 API 接口、响应时间、加密、日志等问题)
### 第三轮澄清
**AI 提问**
1. 数据库表结构调整的具体方式是什么?
2. 向后兼容性的实现方式是什么?
3. 存储切换机制是什么?
4. 代码文件命名规则是什么?
5. 文件删除策略是什么?
**用户回答**
- 改为 file_path 字段
- API 接口是否保持不变
- 数据库配置切换存储方式
- /apex/wsdl/{conversionId}/{className}.cls
- 文件同步删除
- 建议所有 apex 代码文件的唯一索引,所有文件的增删都需要更新该唯一索引
### 澄清总结
- **功能范围**:所有可能需要存储代码的 Apex 模块子需求002-01 到 002-07
- **业务流程**:代码生成 → 存储到 file 模块 → 数据库存储 file_path → 下载时从 file 模块读取
- **数据交互**
- 数据库表结构调整:将代码字段改为 file_path 字段
- 集成 datai-scene-file 模块进行文件存储
- 数据库配置存储方式local/minio/oss
- **性能要求**:响应时间保持现有水平
- **安全要求**:文件同步删除,建立唯一索引防止重复
- **兼容性要求**API 接口保持不变,向后兼容
## 需求描述
调整 Apex 模块,将代码提取出来使用 file 模块进行存储。涉及所有需要的子需求,多种存储方式,可以自定义。不处理数据库中的,对现有功能为向后兼容。改为 file_path 字段API 接口保持不变,数据库配置切换存储方式,/apex/wsdl/{conversionId}/{className}.cls文件同步删除。建议所有 apex 代码文件的唯一索引,所有文件的增删都需要更新该唯一索引。
## 执行阶段
### 阶段 1需求定义与入库
- **状态**:已完成
- **生成文档**[需求文档](../requirements/2026-02-03-005-Apex模块代码存储重构.md)
- **关键决策**
- 需求编号005
- 优先级:高
- 涉及所有 Apex 模块子需求002-01 到 002-07
- 数据库表结构调整:将代码字段改为 file_path 字段
- 集成 datai-scene-file 模块
- 支持多种存储方式local、minio、oss默认 local
- API 接口保持不变,向后兼容
- 文件同步删除机制
- 建立 Apex 代码文件的唯一索引
### 阶段 2方案设计
- **状态**:未开始
### 阶段 3方案决策
- **状态**:未开始
### 阶段 4数据库结构
- **状态**:未开始
### 阶段 5提示词生成
- **状态**:未开始
### 阶段 6代码生成
- **状态**:未开始
### 阶段 7会话记录
- **状态**:未开始
### 阶段 8变更日志
- **状态**:未开始
## 对话记录
### 用户:调整 Apex 模块,将代码提取出来使用 file 模块进行存储。
### AI好的我理解了您的需求。在创建需求文档前我需要先进行需求澄清以确保需求的完整性和准确性。
## 需求澄清
### 原始需求
调整 Apex 模块,将代码提取出来使用 file 模块进行存储。
### 第一轮澄清
让我先了解一些关键信息:
1. **功能范围**:这个重构涉及 Apex 模块的哪些具体功能?
- 是否只涉及 002-07 WSDL 转换功能?
- 还是涉及所有子需求002-01 到 002-07
- 是否包括编译历史、测试结果等存储的代码?
2. **存储目标**:代码提取后需要存储到 file 模块的哪种存储方式?
- 本地存储local
- MinIO 分布式存储
- 阿里云 OSS 对象存储
- 还是支持多种存储方式?
3. **数据迁移**:数据库中已存在的代码如何处理?
- 是否需要将数据库中的历史代码迁移到 file 模块?
- 还是只处理新产生的代码?
- 如果需要迁移,是否需要保留数据库中的代码副本?
4. **业务影响**:这个重构对现有功能的影响范围是什么?
- 是否需要修改现有的 API 接口?
- 前端是否需要相应调整?
- 是否需要保持向后兼容?
请您回答以上问题,我将根据您的回答进行更深入的分析和澄清。
### 用户:涉及到所有需要的子需求 多种存储方式,可以自定义 不处理数据库中的 对现有功能为向后兼容,
### AI感谢您的回答。让我继续了解更多细节
### 第二轮澄清
基于您的回答,我需要进一步了解以下内容:
1. **具体涉及的子需求**
- 根据之前的分析Apex 模块中涉及代码存储的主要是 002-07 WSDL 转换功能(生成的 Apex 类代码)
- 其他子需求002-02 编译、002-03 测试、002-04 覆盖率等)是否也需要将代码提取到 file 模块?
- 请明确列出需要重构的所有子需求编号
2. **存储策略**
- file 模块支持 local、minio、oss 三种存储方式,用户如何选择?
- 是否需要配置化(如在 application.yml 中配置默认存储方式)?
- 是否需要支持运行时动态切换存储方式?
3. **数据库字段变更**
- 不处理数据库中的历史代码,那么数据库表结构是否需要调整?
- 是否需要在数据库中保留 file 模块返回的文件路径file_path
- 还是完全删除 `class_code` 等代码字段?
4. **向后兼容性**
- "向后兼容"是指 API 接口保持不变吗?
- 还是说需要同时支持数据库存储和 file 模块存储两种方式?
- 如果是同时支持,如何判断使用哪种方式?
5. **性能和安全**
- file 模块存储后,代码下载的响应时间要求是多少?
- 是否需要对存储的代码文件进行加密?
- 是否需要记录代码文件的访问日志?
请您回答以上问题,我将进行总结并创建需求文档。
### 用户:所有有可能需要的模块,都提取 存储默认local可以切换其它。。需要调整数据库表结构
### AI感谢您的回答。让我继续了解关键细节
### 第三轮澄清
基于您的回答,我需要明确以下关键问题:
1. **数据库表结构调整**
- 是否将 `class_code` 等代码字段改为 `file_path` 字段?
- 还是保留 `class_code` 字段,新增 `file_path` 字段?
- 如果保留两个字段,如何判断优先使用哪个?
2. **向后兼容性的实现方式**
- API 接口是否保持不变(前端无需修改)?
- 下载接口的响应内容是否保持一致(仍然是代码内容或 ZIP 文件)?
- 如果数据库中既有代码又有文件路径,优先读取哪个?
3. **存储切换机制**
- 如何配置存储方式application.yml数据库配置
- 是否需要支持不同租户使用不同的存储方式?
- 存储方式切换后,已存储的文件是否需要迁移?
4. **代码文件命名规则**
- 存储到 file 模块时,文件路径如何命名?
- 例如:`/apex/wsdl/{conversionId}/{className}.cls`
- 是否需要按日期、用户、租户等维度组织目录结构?
5. **文件删除策略**
- 当删除数据库记录时file 模块中的文件是否同步删除?
- 是否需要提供文件清理机制(定期清理孤立的文件)?
请您回答以上问题,我将进行最终总结并创建需求文档。
### 用户:改为 file_path 字段
API 接口是否保持不变
数据库配置切换存储方式
/apex/wsdl/{conversionId}/{className}.cls
文件同步删除
建议所有apex代码文件的唯一索引所有文件的增删都需要更新该唯一索引
### AI感谢您的详细回答。让我总结一下需求并创建需求文档。
### 澄清总结
- **功能范围**:所有可能需要存储代码的 Apex 模块子需求002-01 到 002-07
- **业务流程**:代码生成 → 存储到 file 模块 → 数据库存储 file_path → 下载时从 file 模块读取
- **数据交互**
- 数据库表结构调整:将代码字段改为 file_path 字段
- 集成 datai-scene-file 模块进行文件存储
- 数据库配置存储方式local/minio/oss
- **性能要求**:响应时间保持现有水平
- **安全要求**:文件同步删除,建立唯一索引防止重复
- **兼容性要求**API 接口保持不变,向后兼容
现在让我查找现有需求编号,确定新需求的编号。
(执行查找需求编号和创建需求文档的操作)
## 生成的文档
- [需求文档](../requirements/2026-02-03-005-Apex模块代码存储重构.md)
## 回退记录