datai/docs/requirements/2026-01-21-003-01-salesforce-multi-system-config.md

10 KiB
Raw Blame History

Salesforce 多系统配置需求

元数据

  • 需求编号2026-01-21-003-01
  • 父需求编号2026-01-21-003
  • 创建时间2026-01-21
  • 创建人SSOT 架构师
  • 状态:待开始
  • 优先级:高

需求概述

实现 Salesforce 多系统配置功能,支持配置多个不同类型的 Salesforce 系统,支持用户自定义系统类型,支持区分源 org 和目标 org支持同一系统既是源 org 又是目标 org支持配置系统名称、自定义类型、登录方式等支持启用/停用系统,系统配置变更无需审批流程,系统配置无权限限制,密码、安全令牌等敏感信息使用 EncryptUtils 加密存储。

目标

  1. 多系统配置:支持配置多个不同类型的 Salesforce 系统
  2. 用户自定义类型:支持用户自定义系统类型(不限于 production/sandbox/developer
  3. 源目标区分:支持区分源 org 和目标 org支持同一系统既是源 org 又是目标 org
  4. 系统管理:支持配置系统名称、自定义类型、登录方式等
  5. 状态管理:支持启用/停用系统
  6. 无审批流程:系统配置变更无需审批流程
  7. 无权限限制:系统配置无权限限制
  8. 敏感信息加密:密码、安全令牌等敏感信息使用 EncryptUtils 加密存储

业务上下文

当前问题

  • 系统只支持单个 Salesforce 系统配置
  • 缺乏对不同类型 Salesforce 系统的支持
  • 缺乏源 org 和目标 org 的区分

业务场景

Salesforce 多系统配置
├─ 支持多个 Salesforce 系统
├─ 支持用户自定义系统类型
├─ 支持区分源 org 和目标 org
├─ 支持同一系统既是源 org 又是目标 org
├─ 敏感信息加密存储(使用 EncryptUtils
└─ 无需审批,无权限限制

应用场景

  1. 多环境管理:管理生产环境、沙盒环境、自定义环境等多个 Salesforce 系统
  2. 灵活配置:用户可以自定义系统类型,无需审批和权限限制

功能需求

核心功能

功能 1系统配置管理

  • 描述:支持配置多个不同类型的 Salesforce 系统
  • 验收标准
    1. 支持添加 Salesforce 系统
    2. 支持编辑 Salesforce 系统
    3. 支持删除 Salesforce 系统
    4. 支持查询 Salesforce 系统列表
    5. 支持分页查询
    6. 支持按系统名称、系统类型、org 类型筛选查询
    7. 支持按状态筛选查询(正常/停用)
    8. 系统名称必须唯一
  • 优先级:高
  • 依赖关系:依赖数据库表设计

功能 2系统类型管理

  • 描述:支持用户自定义系统类型
  • 验收标准
    1. 支持用户自定义系统类型(不限于 production/sandbox/developer
    2. 系统类型为自由文本字段
    3. 不限制系统类型的取值范围
  • 优先级:高
  • 依赖关系:依赖系统配置管理功能

功能 3源目标区分

  • 描述:支持区分源 org 和目标 org支持同一系统既是源 org 又是目标 org
  • 验收标准
    1. 支持标记系统为源 org
    2. 支持标记系统为目标 org
    3. 支持同一系统既是源 org 又是目标 org
    4. 支持查询所有源 org
    5. 支持查询所有目标 org
    6. 支持根据 org 类型筛选系统
  • 优先级:高
  • 依赖关系:依赖系统配置管理功能

功能 4登录方式配置

  • 描述:支持配置不同的登录方式
  • 验收标准
    1. 支持配置 OAuth2 登录方式oauth2
    2. 支持配置 Session ID 登录方式session_id
    3. 支持配置 Salesforce CLI 登录方式cli
    4. 支持配置 Legacy Credential 登录方式legacy_credential
    5. OAuth2 登录方式需要配置login_url、client_id、client_secret、grant_type、username、password、security_token
    6. Session ID 登录方式需要配置login_url、session_id、server_url
    7. Salesforce CLI 登录方式需要配置org_alias、private_key_path、private_key_password
    8. Legacy Credential 登录方式需要配置login_url、username、password、security_token
    9. OAuth2 授权类型支持password密码授权、client_credentials客户端凭证授权、authorization_code授权码授权
    10. 授权码授权方式需要配置code、state 参数(用于防止 CSRF 攻击)
  • 优先级:高
  • 依赖关系:依赖系统配置管理功能

功能 5敏感信息加密

  • 描述:密码、安全令牌等敏感信息使用 EncryptUtils 加密存储
  • 验收标准
    1. 密码使用 EncryptUtils 加密存储
    2. 安全令牌使用 EncryptUtils 加密存储
    3. OAuth 客户端密钥使用 EncryptUtils 加密存储
    4. 私有密钥密码使用 EncryptUtils 加密存储
    5. 读取时自动解密
    6. 存储时自动加密
  • 优先级:高
  • 依赖关系:依赖系统配置管理功能

功能 6状态管理

  • 描述:支持启用/停用系统
  • 验收标准
    1. 支持启用系统
    2. 支持停用系统
    3. 停用的系统不能用于登录
    4. 支持按状态筛选查询(正常/停用)
  • 优先级:高
  • 依赖关系:依赖系统配置管理功能

非功能需求

性能需求

  • 查询时间:系统列表查询响应时间 < 1 秒
  • 并发用户数:支持 100+ 并发用户

安全需求

  • 数据安全:密码、安全令牌等敏感信息使用 EncryptUtils 加密存储
  • 无权限限制:系统配置无权限限制

可维护性需求

  • 代码可读性:代码符合项目编码规范,注释完整
  • 测试覆盖率:单元测试覆盖率 ≥ 80%

数据需求

数据模型

datai_sf_system_configSalesforce 系统配置表)

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) - 服务器 URLInstance 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 加密存储
  └─ 无需审批流程
  └─ 无权限限制

业务规则

  1. 系统名称唯一性系统名称system_name必须唯一
  2. 用户自定义类型系统类型system_type由用户自定义不限制为固定值
  3. 源目标区分:每个系统可以标记为源 org 或目标 org支持同一系统既是源 org 又是目标 org
  4. 敏感信息加密:密码、安全令牌等敏感信息必须使用 EncryptUtils 加密存储
  5. 无审批流程:系统配置变更无需审批流程
  6. 无权限限制:系统配置无权限限制
  7. 停用系统限制:停用的系统不能用于登录

接口需求

系统配置管理接口

  1. 添加系统配置

    • 接口路径POST /api/salesforce/system/config
    • 请求参数:系统配置信息
    • 响应:系统配置 ID
  2. 编辑系统配置

    • 接口路径PUT /api/salesforce/system/config/{id}
    • 请求参数:系统配置信息
    • 响应:成功/失败
  3. 删除系统配置

    • 接口路径DELETE /api/salesforce/system/config/{id}
    • 响应:成功/失败
  4. 查询系统配置列表

    • 接口路径GET /api/salesforce/system/config/list
    • 请求参数:分页参数、筛选参数
    • 响应:系统配置列表
  5. 查询系统配置详情

    • 接口路径GET /api/salesforce/system/config/{id}
    • 响应:系统配置详情
  6. 启用系统

    • 接口路径PUT /api/salesforce/system/config/{id}/enable
    • 响应:成功/失败
  7. 停用系统

    • 接口路径PUT /api/salesforce/system/config/{id}/disable
    • 响应:成功/失败
  8. 查询源 org 列表

    • 接口路径GET /api/salesforce/system/config/source
    • 响应:源 org 列表
  9. 查询目标 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错误码映射