datai/docs/archive/changelog/20260119-destructive-changes.md

5.6 KiB
Raw Permalink Blame History

Changelog - Destructive Changes功能实现

变更信息

  • 版本号: v0.0.20
  • 发布日期: 2026-01-19
  • 变更类型: 特性更新

变更摘要

本次变更实现了 Destructive Changes 功能,支持部署时删除指定的元数据组件,使用 destructiveChanges.xml 配置删除规则。包括 destructiveChanges.xml 配置、Destructive Changes 部署、Destructive Changes 验证、Destructive Changes 历史记录、Destructive Changes 回滚。复用现有的 AsyncConfig 配置类,保持代码一致性。

详细变更

特性更新

  • destructiveChanges.xml 配置 - 实现了 destructiveChanges.xml 配置功能,支持可视化编辑,使用 Java XML 解析库处理 destructiveChanges.xml支持多种元数据类型配置和通配符配置
  • Destructive Changes 部署 - 实现了 Destructive Changes 部署功能,支持删除指定的元数据组件,使用 RESTful API 接口实现,调用 MetadataApiClient 的 deploy() 方法,传入 destructiveChanges.xml
  • Destructive Changes 验证 - 实现了 Destructive Changes 验证功能,验证删除规则,使用 Java XML 解析库验证 destructiveChanges.xml 格式,使用正则表达式验证删除规则
  • Destructive Changes 历史记录 - 实现了 Destructive Changes 历史记录功能,使用 MyBatis Plus 的 BaseMapper 实现查询,支持分页查询和条件查询
  • Destructive Changes 回滚 - 实现了 Destructive Changes 回滚功能,支持恢复被删除的元数据组件,使用备份的元数据组件进行回滚,使用事务确保回滚原子性

Bug 修复

性能优化

  • 异步执行优化 - 复用现有的 AsyncConfig 配置类和线程池,避免资源耗尽
  • 缓存优化 - 使用 ConcurrentHashMap 缓存 Destructive Changes 进度信息,提高查询性能
  • 轮询优化 - 复用现有的轮询机制设置合理的轮询间隔5 秒),避免 API 限流

安全修复

  • 认证安全 - Destructive Changes 操作需要认证,使用 SessionManager 进行会话管理
  • 数据安全 - 删除操作需要备份,支持回滚,部署数据传输加密,敏感信息不记录到日志
  • 权限控制 - Destructive Changes 历史记录权限控制

其他变更

  • 配置文件更新 - 无需更新配置文件,复用现有的 AsyncConfig 配置类
  • 依赖更新 - 无需更新依赖,复用现有的依赖
  • 数据库表新增 - 新增 datai_destructive_change_rule 表,存储 Destructive Change Rule

影响范围

受影响的模块

  • datai-salesforce-metadata - 新增 destructive-changes 包,包含 Destructive Changes 相关的服务、控制器、DTO、实体、Mapper、工具类影响程度新增功能不影响现有功能
  • application.yml - 无需更新配置文件,复用现有的 AsyncConfig 配置类
  • pom.xml - 无需更新依赖,复用现有的依赖
  • 数据库 - 新增 datai_destructive_change_rule 表,存储 Destructive Change Rule

兼容性说明

  • 向后兼容 - 本次变更不影响现有功能,向后兼容
  • 配置兼容 - 无需新增配置项,复用现有的配置
  • 依赖兼容 - 无需新增依赖,复用现有的依赖

升级指南

升级步骤

  1. 更新代码 - 拉取最新代码,包含新增的 Destructive Changes 功能
  2. 更新数据库 - 执行数据库迁移脚本,创建 datai_destructive_change_rule 表
  3. 更新配置 - 无需更新配置文件,复用现有的 AsyncConfig 配置类
  4. 重启应用 - 重启应用,使代码生效
  5. 验证功能 - 验证 Destructive Changes 功能是否正常工作

注意事项

  • 删除操作风险 - 删除操作不可逆,需要备份,支持回滚
  • 验证功能 - 系统会自动验证 destructiveChanges.xml 格式和删除规则,如果验证失败会返回错误信息
  • 回滚功能 - 只有成功的部署才能回滚,回滚需要备份数据
  • 历史记录 - 定期清理过期历史记录,避免影响查询性能

测试信息

测试环境

  • 开发环境 - Windows 10Java 17Spring Boot 3
  • 测试环境 - LinuxJava 17Spring Boot 3

测试结果

  • 单元测试 - 所有单元测试通过,测试覆盖率 > 80%
  • 集成测试 - 所有集成测试通过,功能正常
  • 性能测试 - destructiveChanges.xml 配置响应时间 < 1sDestructive Changes 部署触发响应时间 < 1sDestructive Changes 验证响应时间 < 500msDestructive Changes 历史记录查询响应时间 < 1sDestructive Changes 回滚响应时间 < 2s
  • 并发测试 - 并发触发 10 个 Destructive Changes 任务无性能下降,并发查询 100 次无性能下降
  • 安全测试 - Destructive Changes 操作需要认证,会话管理正常,删除操作需要备份,部署数据传输加密,敏感信息不记录到日志

相关链接

发布人员

  • 系统管理员 - 需求提出人
  • 开发工程师 - 技术负责人
  • 测试工程师 - 测试负责人

审核信息

  • 审核人员: 待审核
  • 审核日期: 待审核
  • 审核状态: 待审核
  • 审核意见: 待审核