import { Environment } from '../environment'; import { IListTemplatesParams, IListUserKeysParams, IGetUserKeyParams, ICreateUserKeyParams, IUpdateUserKeyParams, IDeleteUserKeyParams, IGetUserKeyTemplateListResult, IGetUserKeyListResult, IGetOneUserKeyResult, ICreateUserKeyResult, IUpdateUserKeyResult, IDeleteUserKeyResult } from './types'; export * from './types'; /** * 集成中心(UserKey)服务 * * 复用现有 tcb 云 API(version 2018-06-08),统一携带 Business='integration'。 * * 提供两种使用模式: * 1. 透传模式:直接传 `ext`(JSON 字符串),SDK 原样传递给云 API(向后兼容) * 2. 自动加解密模式:传 `envVariables`(明文键值对),SDK 自动识别模板中的 * password 字段、拉取七彩石密钥完成加密后拼装 ext */ export declare class IntegrationService { private tcbService; private environment; constructor(environment: Environment); /** 列出集成模板(密钥对模版列表) */ listTemplates(params?: IListTemplatesParams): Promise; /** 列出集成实例(密钥对列表) */ listUserKeys(params?: IListUserKeysParams): Promise; /** * 查询单个集成实例详情。 * * 当 `decryptPwd=true` 时,SDK 自动拉取模板识别 password 字段并从七彩石 * 获取 AES 密钥解密,Ext 中 password 字段返回明文。解密失败时保留密文原值, * 不中断流程。 */ getUserKey(params: IGetUserKeyParams): Promise; /** * 创建集成实例。 * * 支持两种传参方式: * - 传 `ext`:透传模式,原样传递给云 API(向后兼容,调用方自行加密) * - 传 `envVariables`:自动加密模式,SDK 识别模板 password 字段并加密后拼装 ext * - 两者都传时以 `ext` 优先 */ createUserKey(params: ICreateUserKeyParams): Promise; /** * 更新集成实例。 * * 支持两种传参方式: * - 传 `ext`:透传模式,原样传递给云 API(向后兼容) * - 传 `envVariables`:自动加密模式,与现有 Ext 合并后加密写入 * - 两者都传时以 `ext` 优先 * - 都未传时后端保留原有 Ext 不变 */ updateUserKey(params: IUpdateUserKeyParams): Promise; /** 删除集成实例 */ deleteUserKey(params: IDeleteUserKeyParams): Promise; /** 获取环境信息 */ private getEnvInfo; /** 校验必填参数 */ private validateRequiredParams; /** * 根据 ext / envVariables 参数构造最终的 Ext JSON 字符串。 * ext 优先;envVariables 由 SDK 自动加密 password 字段。 */ private buildExtFromParams; /** * 更新场景:将 envVariables 与现有实例的 Ext 合并后加密。 * 需要先查询现有实例获取当前的 authTypeCode 和 Ext。 */ private buildMergedExtForUpdate; /** * 加密 envVariables 中的 password 字段并返回 JSON 字符串。 * 无 password 字段时直接 JSON.stringify,不请求七彩石。 */ private encryptAndStringify; /** * 解密 Ext 中的 password 字段并返回新的 IUserKeyInfo。 * 解密失败时保留原值,不中断流程。 */ private decryptExtIfNeeded; /** 从模板中获取 password 类型字段名列表 */ private getPasswordFieldNames; /** 解析 Ext JSON 字符串为对象,失败返回空对象 */ private parseExt; /** 加密 ext 对象中的 password 字段(仅加密有值的字段),返回新对象 */ private encryptPasswordFields; /** 解密 ext 对象中的 password 字段,解密失败保留原值,返回新对象 */ private decryptPasswordFields; }