datai/datai-scenes/datai-scene-salesforce/docs/changelog/0008-pubsub-config-optimization.md
Kris be3640121c feat: 添加 Pub/Sub API 配置项并优化连接工厂
- 新增 salesforce.pubsub.consumer.key 配置项 (ID: 171)
- 新增 salesforce.pubsub.consumer.secret 配置项 (ID: 172)
- 优化 PubSubConnectionFactory.createStsCredentials 方法,从缓存读取配置值
- 注入 SalesforceConfigCacheManager 依赖
- 添加变更记录文档 0008-pubsub-config-optimization.md
- 更新文档索引
2026-01-12 17:02:32 +08:00

91 lines
4.1 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.

# 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 脚本添加新的配置项:
```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 编译通过,依赖注入正常
- 代码逻辑符合预期,能够从缓存中读取配置值
## 相关链接
- [设计文档](../design/0001-salesforce-cdc-realtime-sync.md) - Salesforce CDC实时同步设计
- [架构决策](../decisions/adr/0001-salesforce-cdc-sync.md) - Salesforce CDC同步方案
- [变更记录 0007](./0007-pubsub-api-implementation.md) - Salesforce Pub/Sub API实时同步功能实现
## 发布人员
- 开发人员 - 开发工程师
## 审核信息
- **审核人员**: 待审核
- **审核日期**: 待审核
- **审核状态**: 待审核
- **审核意见**: 待审核