datai/docs/archive/changelog/0008-pubsub-config-optimization.md

4.1 KiB
Raw Permalink Blame History

Changelog - Pub/Sub API 配置项添加与连接工厂优化

变更信息

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

变更摘要

本次变更主要针对 Salesforce Pub/Sub API 的配置管理和连接工厂进行了优化。新增了 Consumer Key 和 Consumer Secret 配置项,并优化了 PubSubConnectionFactory 中 StsCredentials 的创建逻辑,使其从缓存中读取配置值,提高了配置的灵活性和可维护性。

详细变更

特性更新

  • 新增 Pub/Sub API 配置项 - 在 datai_configuration 表中添加了两条新的配置项:

    • salesforce.pubsub.consumer.key (ID: 171): Salesforce Pub/Sub API Consumer Key从 Connected App 获取
    • salesforce.pubsub.consumer.secret (ID: 172): Salesforce Pub/Sub API Consumer Secret从 Connected App 获取
    • 两个配置项都设置为敏感数据is_sensitive=1并启用加密is_encrypted=1
  • 优化 PubSubConnectionFactory - 重构了 createStsCredentials 方法:

    • 添加了 CacheUtils 和 SalesforceConfigCacheManager 的导入
    • 注入了 SalesforceConfigCacheManager 依赖
    • 将硬编码的空字符串替换为从缓存中读取的配置值
    • 使用 CacheUtils.get(cacheKey, "salesforce.pubsub.consumer.key", String.class) 获取 Consumer Key
    • 使用 CacheUtils.get(cacheKey, "salesforce.pubsub.consumer.secret", String.class) 获取 Consumer Secret

影响范围

受影响的模块

  • datai-salesforce-setting - 新增配置项,需要通过配置管理界面录入 Consumer Key 和 Consumer Secret
  • datai-salesforce-integration - PubSubConnectionFactory 类被修改,需要确保 SalesforceConfigCacheManager 正确配置并缓存了相关配置值

兼容性说明

  • 本次变更向后兼容,不会影响现有功能
  • 如果缓存中没有配置值StsCredentials 的前两个参数将为 null需要确保在使用前已正确配置

升级指南

升级步骤

  1. 执行 SQL 脚本添加新的配置项:

    INSERT INTO `datai_configuration` (`id`, `config_key`, `config_value`, `environment_id`, `is_sensitive`, `is_encrypted`, `description`, `is_active`, `version`, `remark`, `dept_id`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (171, 'salesforce.pubsub.consumer.key', '', 1, 1, 1, NULL, 1, NULL, 'Salesforce Pub/Sub API Consumer Key从Connected App获取', NULL, 'admin', '2026-01-12 00:00:00', 'admin', '2026-01-12 00:00:00');
    INSERT INTO `datai_configuration` (`id`, `config_key`, `config_value`, `environment_id`, `is_sensitive`, `is_encrypted`, `description`, `is_active`, `version`, `remark`, `dept_id`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES (172, 'salesforce.pubsub.consumer.secret', '', 1, 1, 1, NULL, 1, NULL, 'Salesforce Pub/Sub API Consumer Secret从Connected App获取', NULL, 'admin', '2026-01-12 00:00:00', 'admin', '2026-01-12 00:00:00');
    
  2. 在 Salesforce 中创建 Connected App 并获取 Consumer Key 和 Consumer Secret

  3. 通过配置管理界面录入 Consumer Key 和 Consumer Secret 到新增的配置项中

  4. 重启应用以加载新的配置

注意事项

  • 确保 Consumer Key 和 Consumer Secret 正确配置,否则 Pub/Sub API 连接可能失败
  • 配置项为敏感数据,已启用加密,请妥善保管
  • 需要确保 SalesforceConfigCacheManager 正确配置并能从数据库加载配置到缓存

测试信息

测试环境

  • 开发环境 - 本地开发环境

测试结果

  • 配置项添加成功,数据库中新增了两条记录
  • PubSubConnectionFactory 编译通过,依赖注入正常
  • 代码逻辑符合预期,能够从缓存中读取配置值

相关链接

发布人员

  • 开发人员 - 开发工程师

审核信息

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