@@ -33,6 +33,21 @@ INSERT INTO hg_sys_dict_type
SELECT 0 , ' IM 文件审核状态 ' , ' im_file_review_status ' , 240 , ' IM 文件审核任务状态字典 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_type WHERE ` type ` = ' im_file_review_status ' ) ;
INSERT INTO hg_sys_dict_type
( ` pid ` , ` name ` , ` type ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT 0 , ' IM RTC 服务商 ' , ' im_rtc_provider ' , 250 , ' IM 音视频通话 RTC provider 字典 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_type WHERE ` type ` = ' im_rtc_provider ' ) ;
INSERT INTO hg_sys_dict_type
( ` pid ` , ` name ` , ` type ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT 0 , ' IM RTC 鉴权模式 ' , ' im_rtc_auth_mode ' , 260 , ' IM 音视频通话 RTC 鉴权模式字典 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_type WHERE ` type ` = ' im_rtc_auth_mode ' ) ;
INSERT INTO hg_sys_dict_type
( ` pid ` , ` name ` , ` type ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT 0 , ' IM RTC UID 模式 ' , ' im_rtc_uid_mode ' , 270 , ' IM 音视频通话 RTC UID 模式字典 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_type WHERE ` type ` = ' im_rtc_uid_mode ' ) ;
-- 2. 后台字典数据
INSERT INTO hg_sys_dict_data
( ` label ` , ` value ` , ` value_type ` , ` type ` , ` list_class ` , ` is_default ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
@@ -84,6 +99,31 @@ INSERT INTO hg_sys_dict_data
SELECT ' 失败 ' , ' failed ' , ' string ' , ' im_file_review_status ' , ' warning ' , 1 , 50 , ' 不可重试失败或超过重试次数 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_data WHERE ` type ` = ' im_file_review_status ' AND ` value ` = ' failed ' ) ;
INSERT INTO hg_sys_dict_data
( ` label ` , ` value ` , ` value_type ` , ` type ` , ` list_class ` , ` is_default ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' 声网 RTC ' , ' agora ' , ' string ' , ' im_rtc_provider ' , ' success ' , 1 , 10 , ' 声网实时音视频 RTC ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_data WHERE ` type ` = ' im_rtc_provider ' AND ` value ` = ' agora ' ) ;
INSERT INTO hg_sys_dict_data
( ` label ` , ` value ` , ` value_type ` , ` type ` , ` list_class ` , ` is_default ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' 仅 App ID ' , ' app_id ' , ' string ' , ' im_rtc_auth_mode ' , ' warning ' , 1 , 10 , ' 调试模式,客户端入会 Token 为空 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_data WHERE ` type ` = ' im_rtc_auth_mode ' AND ` value ` = ' app_id ' ) ;
INSERT INTO hg_sys_dict_data
( ` label ` , ` value ` , ` value_type ` , ` type ` , ` list_class ` , ` is_default ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' RTC Token ' , ' token ' , ' string ' , ' im_rtc_auth_mode ' , ' success ' , 0 , 20 , ' 正式模式,后端使用 App Certificate 生成 Token ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_data WHERE ` type ` = ' im_rtc_auth_mode ' AND ` value ` = ' token ' ) ;
INSERT INTO hg_sys_dict_data
( ` label ` , ` value ` , ` value_type ` , ` type ` , ` list_class ` , ` is_default ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' 数字 UID ' , ' int ' , ' string ' , ' im_rtc_uid_mode ' , ' success ' , 1 , 10 , ' 客户端使用数字 UID 加入 RTC 频道 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_data WHERE ` type ` = ' im_rtc_uid_mode ' AND ` value ` = ' int ' ) ;
INSERT INTO hg_sys_dict_data
( ` label ` , ` value ` , ` value_type ` , ` type ` , ` list_class ` , ` is_default ` , ` sort ` , ` remark ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' 字符串 UID ' , ' string ' , ' string ' , ' im_rtc_uid_mode ' , ' info ' , 0 , 20 , ' 客户端使用字符串 UID 加入 RTC 频道 ' , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_dict_data WHERE ` type ` = ' im_rtc_uid_mode ' AND ` value ` = ' string ' ) ;
-- 3. 第三方配置项。配置真值存 hg_sys_config;字典只提供 UI 选项。
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
@@ -175,6 +215,66 @@ INSERT INTO hg_sys_config
SELECT ' im_third_party ' , ' 阿里云 AccessKey Secret ' , ' string ' , ' aliyun_access_key_secret ' , ' ' , ' ' , 91 , ' 内容安全和恶意文件检测共用的敏感配置,后台和日志必须脱敏展示 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_third_party ' AND ` key ` = ' aliyun_access_key_secret ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网启用状态 ' , ' bool ' , ' agora_enabled ' , ' 0 ' , ' 0 ' , 100 , ' 是否启用声网 RTC 音视频通话 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_enabled ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' RTC 服务商 ' , ' string ' , ' agora_provider ' , ' agora ' , ' agora ' , 101 , ' 取值来自字典 im_rtc_provider,当前支持 agora ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_provider ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网鉴权模式 ' , ' string ' , ' agora_auth_mode ' , ' token ' , ' token ' , 102 , ' 取值来自字典 im_rtc_auth_mode;调试 app_id,正式 token ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_auth_mode ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 App ID ' , ' string ' , ' agora_app_id ' , ' ' , ' ' , 103 , ' 声网项目 App ID,可返回客户端 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_app_id ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 App Certificate ' , ' string ' , ' agora_app_certificate ' , ' ' , ' ' , 104 , ' 敏感配置,仅后端生成 RTC Token 使用,禁止下发客户端 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_app_certificate ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 Token TTL ' , ' int ' , ' agora_token_ttl_seconds ' , ' 3600 ' , ' 3600 ' , 105 , ' RTC Token 有效秒数,正式 token 模式使用 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_token_ttl_seconds ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网频道名前缀 ' , ' string ' , ' agora_channel_prefix ' , ' call_ ' , ' call_ ' , 106 , ' 服务端生成频道名时使用,最终为 prefix + call_id ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_channel_prefix ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 UID 模式 ' , ' string ' , ' agora_uid_mode ' , ' string ' , ' string ' , 107 , ' 取值来自字典 im_rtc_uid_mode; BIGINT 用户 ID 建议 string ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_uid_mode ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 REST Customer ID ' , ' string ' , ' agora_rest_customer_id ' , ' ' , ' ' , 108 , ' 声网控制台 REST API 客户 ID,禁止下发客户端 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_rest_customer_id ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 REST Customer Secret ' , ' string ' , ' agora_rest_customer_secret ' , ' ' , ' ' , 109 , ' 声网控制台 REST API 客户密钥,必须脱敏展示 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_rest_customer_secret ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 REST 主域名 ' , ' string ' , ' agora_rest_primary_domain ' , ' https://api.sd-rtn.com ' , ' https://api.sd-rtn.com ' , 110 , ' 国内控制台 REST API 主域名 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_rest_primary_domain ' ) ;
INSERT INTO hg_sys_config
( ` group ` , ` name ` , ` type ` , ` key ` , ` value ` , ` default_value ` , ` sort ` , ` tip ` , ` is_default ` , ` status ` , ` created_at ` , ` updated_at ` )
SELECT ' im_shengwang ' , ' 声网 REST 备用域名 ' , ' string ' , ' agora_rest_backup_domain ' , ' https://api.agora.io ' , ' https://api.agora.io ' , 111 , ' 控制台 REST API 备用域名 ' , 1 , 1 , NOW ( ) , NOW ( )
WHERE NOT EXISTS ( SELECT 1 FROM hg_sys_config WHERE ` group ` = ' im_shengwang ' AND ` key ` = ' agora_rest_backup_domain ' ) ;
USE tinode ;
-- 4. 文件安全审核任务表