10 KiB
10 KiB
Salesforce 多系统配置需求
元数据
- 需求编号:2026-01-21-003-01
- 父需求编号:2026-01-21-003
- 创建时间:2026-01-21
- 创建人:SSOT 架构师
- 状态:待开始
- 优先级:高
需求概述
实现 Salesforce 多系统配置功能,支持配置多个不同类型的 Salesforce 系统,支持用户自定义系统类型,支持区分源 org 和目标 org(支持同一系统既是源 org 又是目标 org),支持配置系统名称、自定义类型、登录方式等,支持启用/停用系统,系统配置变更无需审批流程,系统配置无权限限制,密码、安全令牌等敏感信息使用 EncryptUtils 加密存储。
目标
- 多系统配置:支持配置多个不同类型的 Salesforce 系统
- 用户自定义类型:支持用户自定义系统类型(不限于 production/sandbox/developer)
- 源目标区分:支持区分源 org 和目标 org,支持同一系统既是源 org 又是目标 org
- 系统管理:支持配置系统名称、自定义类型、登录方式等
- 状态管理:支持启用/停用系统
- 无审批流程:系统配置变更无需审批流程
- 无权限限制:系统配置无权限限制
- 敏感信息加密:密码、安全令牌等敏感信息使用 EncryptUtils 加密存储
业务上下文
当前问题
- 系统只支持单个 Salesforce 系统配置
- 缺乏对不同类型 Salesforce 系统的支持
- 缺乏源 org 和目标 org 的区分
业务场景
Salesforce 多系统配置
├─ 支持多个 Salesforce 系统
├─ 支持用户自定义系统类型
├─ 支持区分源 org 和目标 org
├─ 支持同一系统既是源 org 又是目标 org
├─ 敏感信息加密存储(使用 EncryptUtils)
└─ 无需审批,无权限限制
应用场景
- 多环境管理:管理生产环境、沙盒环境、自定义环境等多个 Salesforce 系统
- 灵活配置:用户可以自定义系统类型,无需审批和权限限制
功能需求
核心功能
功能 1:系统配置管理
- 描述:支持配置多个不同类型的 Salesforce 系统
- 验收标准:
- 支持添加 Salesforce 系统
- 支持编辑 Salesforce 系统
- 支持删除 Salesforce 系统
- 支持查询 Salesforce 系统列表
- 支持分页查询
- 支持按系统名称、系统类型、org 类型筛选查询
- 支持按状态筛选查询(正常/停用)
- 系统名称必须唯一
- 优先级:高
- 依赖关系:依赖数据库表设计
功能 2:系统类型管理
- 描述:支持用户自定义系统类型
- 验收标准:
- 支持用户自定义系统类型(不限于 production/sandbox/developer)
- 系统类型为自由文本字段
- 不限制系统类型的取值范围
- 优先级:高
- 依赖关系:依赖系统配置管理功能
功能 3:源目标区分
- 描述:支持区分源 org 和目标 org,支持同一系统既是源 org 又是目标 org
- 验收标准:
- 支持标记系统为源 org
- 支持标记系统为目标 org
- 支持同一系统既是源 org 又是目标 org
- 支持查询所有源 org
- 支持查询所有目标 org
- 支持根据 org 类型筛选系统
- 优先级:高
- 依赖关系:依赖系统配置管理功能
功能 4:登录方式配置
- 描述:支持配置不同的登录方式
- 验收标准:
- 支持配置 OAuth2 登录方式(oauth2)
- 支持配置 Session ID 登录方式(session_id)
- 支持配置 Salesforce CLI 登录方式(cli)
- 支持配置 Legacy Credential 登录方式(legacy_credential)
- OAuth2 登录方式需要配置:login_url、client_id、client_secret、grant_type、username、password、security_token
- Session ID 登录方式需要配置:login_url、session_id、server_url
- Salesforce CLI 登录方式需要配置:org_alias、private_key_path、private_key_password
- Legacy Credential 登录方式需要配置:login_url、username、password、security_token
- OAuth2 授权类型支持:password(密码授权)、client_credentials(客户端凭证授权)、authorization_code(授权码授权)
- 授权码授权方式需要配置:code、state 参数(用于防止 CSRF 攻击)
- 优先级:高
- 依赖关系:依赖系统配置管理功能
功能 5:敏感信息加密
- 描述:密码、安全令牌等敏感信息使用 EncryptUtils 加密存储
- 验收标准:
- 密码使用 EncryptUtils 加密存储
- 安全令牌使用 EncryptUtils 加密存储
- OAuth 客户端密钥使用 EncryptUtils 加密存储
- 私有密钥密码使用 EncryptUtils 加密存储
- 读取时自动解密
- 存储时自动加密
- 优先级:高
- 依赖关系:依赖系统配置管理功能
功能 6:状态管理
- 描述:支持启用/停用系统
- 验收标准:
- 支持启用系统
- 支持停用系统
- 停用的系统不能用于登录
- 支持按状态筛选查询(正常/停用)
- 优先级:高
- 依赖关系:依赖系统配置管理功能
非功能需求
性能需求
- 查询时间:系统列表查询响应时间 < 1 秒
- 并发用户数:支持 100+ 并发用户
安全需求
- 数据安全:密码、安全令牌等敏感信息使用 EncryptUtils 加密存储
- 无权限限制:系统配置无权限限制
可维护性需求
- 代码可读性:代码符合项目编码规范,注释完整
- 测试覆盖率:单元测试覆盖率 ≥ 80%
数据需求
数据模型
datai_sf_system_config(Salesforce 系统配置表)
datai_sf_system_config (Salesforce 系统配置表)
├─ id (BIGINT) - 主键ID
├─ system_name (VARCHAR) - 系统名称(唯一)
├─ system_type (VARCHAR) - 系统类型(用户自定义)
├─ org_type (VARCHAR) - 组织类型(S=源 org T=目标 org ST=源和目标 org,可同时选中)
├─ login_type (VARCHAR) - 登录类型(oauth2/session_id/cli/legacy_credential)
├─ login_url (VARCHAR) - 登录 URL(如 https://login.salesforce.com)
├─ client_id (VARCHAR) - OAuth 客户端 ID
├─ client_secret (VARCHAR) - OAuth 客户端密钥(使用 EncryptUtils 加密存储)
├─ grant_type (VARCHAR) - OAuth 授权类型(password/client_credentials/authorization_code)
├─ username (VARCHAR) - 用户名
├─ password (VARCHAR) - 密码(使用 EncryptUtils 加密存储)
├─ security_token (VARCHAR) - 安全令牌(使用 EncryptUtils 加密存储)
├─ session_id (VARCHAR) - Session ID(由 Salesforce 登录后返回)
├─ server_url (VARCHAR) - 服务器 URL(Instance URL)
├─ refresh_token (VARCHAR) - 刷新令牌
├─ token_expires_at (DATETIME) - 令牌过期时间
├─ org_alias (VARCHAR) - Salesforce CLI 组织别名
├─ private_key_path (VARCHAR) - 私有密钥路径
├─ private_key_password (VARCHAR) - 私有密钥密码(使用 EncryptUtils 加密存储)
├─ code (VARCHAR) - OAuth 授权码
├─ state (VARCHAR) - OAuth state 参数,用于防止 CSRF 攻击
├─ sf_user_id (VARCHAR) - Salesforce 用户 ID(由 Salesforce 登录后返回)
├─ user_id (VARCHAR) - 用户 ID(由 Salesforce 登录后返回)
├─ org_id (VARCHAR) - 组织 ID(由 Salesforce 登录后返回)
├─ org_name (VARCHAR) - 组织名称(由 Salesforce 登录后返回)
├─ status (CHAR) - 状态(0正常 1停用)
├─ sort_order (INT) - 排序
├─ create_by (VARCHAR) - 创建者
├─ create_time (DATETIME) - 创建时间
├─ update_by (VARCHAR) - 更新者
└─ update_time (DATETIME) - 更新时间
数据存储需求
- 数据库类型:MySQL 8.3.0
- 存储容量:单表支持 1000 万+ 数据
- 数据备份策略:每日备份,保留 7 天
数据流转需求
系统配置
└─ 管理员添加/编辑/删除 Salesforce 系统
└─ 更新数据库中的系统配置
└─ 密码、安全令牌等敏感信息使用 EncryptUtils 加密存储
└─ 无需审批流程
└─ 无权限限制
业务规则
- 系统名称唯一性:系统名称(system_name)必须唯一
- 用户自定义类型:系统类型(system_type)由用户自定义,不限制为固定值
- 源目标区分:每个系统可以标记为源 org 或目标 org,支持同一系统既是源 org 又是目标 org
- 敏感信息加密:密码、安全令牌等敏感信息必须使用 EncryptUtils 加密存储
- 无审批流程:系统配置变更无需审批流程
- 无权限限制:系统配置无权限限制
- 停用系统限制:停用的系统不能用于登录
接口需求
系统配置管理接口
-
添加系统配置
- 接口路径:POST /api/salesforce/system/config
- 请求参数:系统配置信息
- 响应:系统配置 ID
-
编辑系统配置
- 接口路径:PUT /api/salesforce/system/config/{id}
- 请求参数:系统配置信息
- 响应:成功/失败
-
删除系统配置
- 接口路径:DELETE /api/salesforce/system/config/{id}
- 响应:成功/失败
-
查询系统配置列表
- 接口路径:GET /api/salesforce/system/config/list
- 请求参数:分页参数、筛选参数
- 响应:系统配置列表
-
查询系统配置详情
- 接口路径:GET /api/salesforce/system/config/{id}
- 响应:系统配置详情
-
启用系统
- 接口路径:PUT /api/salesforce/system/config/{id}/enable
- 响应:成功/失败
-
停用系统
- 接口路径:PUT /api/salesforce/system/config/{id}/disable
- 响应:成功/失败
-
查询源 org 列表
- 接口路径:GET /api/salesforce/system/config/source
- 响应:源 org 列表
-
查询目标 org 列表
- 接口路径:GET /api/salesforce/system/config/target
- 响应:目标 org 列表
依赖关系
- 依赖
datai-common模块的EncryptUtils工具类 - 依赖
datai-system模块的基础功能 - 依赖
datai-salesforce-common模块的 Salesforce API 封装
后续需求
- 2026-01-21-003-02:策略模式登录
- 2026-01-21-003-03:登录历史
- 2026-01-21-003-04:缓存优化
- 2026-01-21-003-05:会话管理
- 2026-01-21-003-06:登录状态查询
- 2026-01-21-003-07:错误码映射