Files
open-im-server/pkg/common/config/config.go
T

557 lines
20 KiB
Go
Raw Normal View History

2021-05-26 19:17:51 +08:00
package config
import (
2022-06-24 17:45:33 +08:00
"fmt"
2021-05-26 19:17:51 +08:00
"io/ioutil"
"os"
2021-10-21 11:30:48 +08:00
"path/filepath"
"runtime"
"gopkg.in/yaml.v3"
2021-10-21 11:30:48 +08:00
)
var (
_, b, _, _ = runtime.Caller(0)
// Root folder of this project
Root = filepath.Join(filepath.Dir(b), "../../..")
2021-05-26 19:17:51 +08:00
)
var Config config
2022-02-28 17:57:03 +08:00
type callBackConfig struct {
2022-03-21 11:13:17 +08:00
Enable bool `yaml:"enable"`
CallbackTimeOut int `yaml:"callbackTimeOut"`
2022-03-17 14:12:49 +08:00
CallbackFailedContinue bool `yaml:"callbackFailedContinue"`
2022-02-28 17:57:03 +08:00
}
2021-05-26 19:17:51 +08:00
type config struct {
2022-05-07 17:05:05 +08:00
ServerIP string `yaml:"serverip"`
RpcRegisterIP string `yaml:"rpcRegisterIP"`
ListenIP string `yaml:"listenIP"`
ServerVersion string `yaml:"serverversion"`
Api struct {
2022-05-07 19:52:18 +08:00
GinPort []int `yaml:"openImApiPort"`
ListenIP string `yaml:"listenIP"`
2021-05-26 19:17:51 +08:00
}
2022-03-21 11:13:17 +08:00
CmsApi struct {
2022-05-07 19:52:18 +08:00
GinPort []int `yaml:"openImCmsApiPort"`
ListenIP string `yaml:"listenIP"`
2022-02-22 12:27:39 +08:00
}
2021-09-27 21:03:36 +08:00
Sdk struct {
2022-05-07 19:52:18 +08:00
WsPort []int `yaml:"openImSdkWsPort"`
DataDir []string `yaml:"dataDir"`
2021-09-27 21:03:36 +08:00
}
2021-05-26 19:17:51 +08:00
Credential struct {
Tencent struct {
AppID string `yaml:"appID"`
Region string `yaml:"region"`
Bucket string `yaml:"bucket"`
SecretID string `yaml:"secretID"`
SecretKey string `yaml:"secretKey"`
}
2022-03-21 11:13:17 +08:00
Ali struct {
RegionID string `yaml:"regionID"`
AccessKeyID string `yaml:"accessKeyID"`
AccessKeySecret string `yaml:"accessKeySecret"`
StsEndpoint string `yaml:"stsEndpoint"`
OssEndpoint string `yaml:"ossEndpoint"`
Bucket string `yaml:"bucket"`
FinalHost string `yaml:"finalHost"`
StsDurationSeconds int64 `yaml:"stsDurationSeconds"`
OssRoleArn string `yaml:"OssRoleArn"`
}
2022-02-19 18:48:15 +08:00
Minio struct {
2022-04-11 16:18:36 +08:00
Bucket string `yaml:"bucket"`
2022-05-10 10:44:43 +08:00
AppBucket string `yaml:"appBucket"`
2022-04-11 16:18:36 +08:00
Location string `yaml:"location"`
Endpoint string `yaml:"endpoint"`
AccessKeyID string `yaml:"accessKeyID"`
SecretAccessKey string `yaml:"secretAccessKey"`
EndpointInner string `yaml:"endpointInner"`
EndpointInnerEnable bool `yaml:"endpointInnerEnable"`
2022-07-29 14:36:07 +08:00
StorageTime int `yaml:"storageTime"`
2022-08-01 14:33:01 +08:00
IsDistributedMod bool `yaml:"isDistributedMod"`
2022-02-19 18:48:15 +08:00
} `yaml:"minio"`
2022-07-31 01:14:26 +08:00
Aws struct {
AccessKeyID string `yaml:"accessKeyID"`
AccessKeySecret string `yaml:"accessKeySecret"`
Region string `yaml:"region"`
Bucket string `yaml:"bucket"`
FinalHost string `yaml:"finalHost"`
RoleArn string `yaml:"roleArn"`
ExternalId string `yaml:"externalId"`
RoleSessionName string `yaml:"roleSessionName"`
} `yaml:"aws"`
2021-05-26 19:17:51 +08:00
}
2022-07-08 19:26:44 +08:00
Dtm struct {
ServerURL string `json:"serverURL"`
}
2021-05-26 19:17:51 +08:00
Mysql struct {
2021-05-31 10:03:57 +08:00
DBAddress []string `yaml:"dbMysqlAddress"`
DBUserName string `yaml:"dbMysqlUserName"`
DBPassword string `yaml:"dbMysqlPassword"`
DBDatabaseName string `yaml:"dbMysqlDatabaseName"`
2021-05-26 19:17:51 +08:00
DBTableName string `yaml:"DBTableName"`
DBMsgTableNum int `yaml:"dbMsgTableNum"`
DBMaxOpenConns int `yaml:"dbMaxOpenConns"`
DBMaxIdleConns int `yaml:"dbMaxIdleConns"`
DBMaxLifeTime int `yaml:"dbMaxLifeTime"`
}
Mongo struct {
2022-08-10 12:02:50 +08:00
DBUri string `yaml:"dbUri"`
DBAddress string `yaml:"dbAddress"`
DBDirect bool `yaml:"dbDirect"`
DBTimeout int `yaml:"dbTimeout"`
DBDatabase string `yaml:"dbDatabase"`
DBSource string `yaml:"dbSource"`
DBUserName string `yaml:"dbUserName"`
DBPassword string `yaml:"dbPassword"`
DBMaxPoolSize int `yaml:"dbMaxPoolSize"`
DBRetainChatRecords int `yaml:"dbRetainChatRecords"`
ChatRecordsClearTime string `yaml:"chatRecordsClearTime"`
2021-05-26 19:17:51 +08:00
}
Redis struct {
2022-06-17 10:50:15 +08:00
DBAddress []string `yaml:"dbAddress"`
DBMaxIdle int `yaml:"dbMaxIdle"`
DBMaxActive int `yaml:"dbMaxActive"`
DBIdleTimeout int `yaml:"dbIdleTimeout"`
2022-07-08 15:17:46 +08:00
DBUserName string `yaml:"dbUserName"`
2022-06-17 10:50:15 +08:00
DBPassWord string `yaml:"dbPassWord"`
EnableCluster bool `yaml:"enableCluster"`
2021-05-26 19:17:51 +08:00
}
RpcPort struct {
2022-05-19 10:44:39 +08:00
OpenImUserPort []int `yaml:"openImUserPort"`
OpenImFriendPort []int `yaml:"openImFriendPort"`
OpenImMessagePort []int `yaml:"openImMessagePort"`
OpenImMessageGatewayPort []int `yaml:"openImMessageGatewayPort"`
OpenImGroupPort []int `yaml:"openImGroupPort"`
OpenImAuthPort []int `yaml:"openImAuthPort"`
OpenImPushPort []int `yaml:"openImPushPort"`
OpenImStatisticsPort []int `yaml:"openImStatisticsPort"`
OpenImMessageCmsPort []int `yaml:"openImMessageCmsPort"`
OpenImAdminCmsPort []int `yaml:"openImAdminCmsPort"`
OpenImOfficePort []int `yaml:"openImOfficePort"`
OpenImOrganizationPort []int `yaml:"openImOrganizationPort"`
OpenImConversationPort []int `yaml:"openImConversationPort"`
OpenImCachePort []int `yaml:"openImCachePort"`
2022-08-17 11:42:12 +08:00
OpenImRealTimeCommPort []int `yaml:"openImRealTimeCommPort"`
2021-05-26 19:17:51 +08:00
}
RpcRegisterName struct {
2022-07-20 20:59:52 +08:00
OpenImStatisticsName string `yaml:"openImStatisticsName"`
OpenImUserName string `yaml:"openImUserName"`
OpenImFriendName string `yaml:"openImFriendName"`
// OpenImOfflineMessageName string `yaml:"openImOfflineMessageName"`
OpenImMsgName string `yaml:"openImMsgName"`
OpenImPushName string `yaml:"openImPushName"`
OpenImRelayName string `yaml:"openImRelayName"`
OpenImGroupName string `yaml:"openImGroupName"`
OpenImAuthName string `yaml:"openImAuthName"`
OpenImMessageCMSName string `yaml:"openImMessageCMSName"`
OpenImAdminCMSName string `yaml:"openImAdminCMSName"`
OpenImOfficeName string `yaml:"openImOfficeName"`
OpenImOrganizationName string `yaml:"openImOrganizationName"`
OpenImConversationName string `yaml:"openImConversationName"`
OpenImCacheName string `yaml:"openImCacheName"`
OpenImRealTimeCommName string `yaml:"openImRealTimeCommName"`
2021-05-26 19:17:51 +08:00
}
Etcd struct {
EtcdSchema string `yaml:"etcdSchema"`
EtcdAddr []string `yaml:"etcdAddr"`
}
Log struct {
StorageLocation string `yaml:"storageLocation"`
2021-05-31 10:03:57 +08:00
RotationTime int `yaml:"rotationTime"`
RemainRotationCount uint `yaml:"remainRotationCount"`
2021-10-11 18:18:50 +08:00
RemainLogLevel uint `yaml:"remainLogLevel"`
2021-05-26 19:17:51 +08:00
ElasticSearchSwitch bool `yaml:"elasticSearchSwitch"`
ElasticSearchAddr []string `yaml:"elasticSearchAddr"`
ElasticSearchUser string `yaml:"elasticSearchUser"`
ElasticSearchPassword string `yaml:"elasticSearchPassword"`
}
ModuleName struct {
LongConnSvrName string `yaml:"longConnSvrName"`
MsgTransferName string `yaml:"msgTransferName"`
PushName string `yaml:"pushName"`
}
LongConnSvr struct {
2021-10-08 17:50:09 +08:00
WebsocketPort []int `yaml:"openImWsPort"`
2021-05-26 19:17:51 +08:00
WebsocketMaxConnNum int `yaml:"websocketMaxConnNum"`
WebsocketMaxMsgLen int `yaml:"websocketMaxMsgLen"`
WebsocketTimeOut int `yaml:"websocketTimeOut"`
}
Push struct {
Tpns struct {
Ios struct {
AccessID string `yaml:"accessID"`
SecretKey string `yaml:"secretKey"`
}
Android struct {
AccessID string `yaml:"accessID"`
SecretKey string `yaml:"secretKey"`
}
2022-04-08 15:40:07 +08:00
Enable bool `yaml:"enable"`
2021-05-26 19:17:51 +08:00
}
Jpns struct {
AppKey string `yaml:"appKey"`
MasterSecret string `yaml:"masterSecret"`
PushUrl string `yaml:"pushUrl"`
2021-11-12 17:25:17 +08:00
PushIntent string `yaml:"pushIntent"`
2022-04-08 15:40:07 +08:00
Enable bool `yaml:"enable"`
}
Getui struct {
2022-04-08 16:15:22 +08:00
PushUrl string `yaml:"pushUrl"`
2022-04-08 17:20:55 +08:00
AppKey string `yaml:"appKey"`
2022-04-08 16:15:22 +08:00
Enable bool `yaml:"enable"`
Intent string `yaml:"intent"`
MasterSecret string `yaml:"masterSecret"`
}
Fcm struct {
ServiceAccount string `yaml:"serviceAccount"`
Enable bool `yaml:"enable"`
}
2021-05-26 19:17:51 +08:00
}
2021-09-26 14:26:45 +08:00
Manager struct {
2022-06-17 12:09:42 +08:00
AppManagerUid []string `yaml:"appManagerUid"`
Secrets []string `yaml:"secrets"`
AppSysNotificationName string `yaml:"appSysNotificationName"`
2021-09-26 14:26:45 +08:00
}
2022-04-20 18:39:12 +08:00
2021-05-26 19:17:51 +08:00
Kafka struct {
Ws2mschat struct {
Addr []string `yaml:"addr"`
Topic string `yaml:"topic"`
}
//Ws2mschatOffline struct {
// Addr []string `yaml:"addr"`
// Topic string `yaml:"topic"`
//}
2022-06-16 12:21:49 +08:00
MsgToMongo struct {
Addr []string `yaml:"addr"`
Topic string `yaml:"topic"`
}
2021-05-26 19:17:51 +08:00
Ms2pschat struct {
Addr []string `yaml:"addr"`
Topic string `yaml:"topic"`
}
ConsumerGroupID struct {
2022-06-17 10:59:50 +08:00
MsgToRedis string `yaml:"msgToTransfer"`
2022-06-16 20:35:27 +08:00
MsgToMongo string `yaml:"msgToMongo"`
MsgToMySql string `yaml:"msgToMySql"`
MsgToPush string `yaml:"msgToPush"`
2021-05-26 19:17:51 +08:00
}
}
2022-06-09 12:39:28 +08:00
Secret string `yaml:"secret"`
MultiLoginPolicy int `yaml:"multiloginpolicy"`
ChatPersistenceMysql bool `yaml:"chatpersistencemysql"`
ReliableStorage bool `yaml:"reliablestorage"`
MsgCacheTimeout int `yaml:"msgCacheTimeout"`
GroupMessageHasReadReceiptEnable bool `yaml:"groupMessageHasReadReceiptEnable"`
SingleMessageHasReadReceiptEnable bool `yaml:"singleMessageHasReadReceiptEnable"`
2022-04-20 18:39:12 +08:00
TokenPolicy struct {
2021-05-26 19:17:51 +08:00
AccessSecret string `yaml:"accessSecret"`
AccessExpire int64 `yaml:"accessExpire"`
}
2022-03-15 19:03:22 +08:00
MessageVerify struct {
FriendVerify bool `yaml:"friendVerify"`
2022-02-18 15:16:33 +08:00
}
2021-12-21 21:40:50 +08:00
IOSPush struct {
PushSound string `yaml:"pushSound"`
BadgeCount bool `yaml:"badgeCount"`
2022-06-21 11:27:39 +08:00
Production bool `yaml:"production"`
2021-12-21 21:40:50 +08:00
}
2022-02-28 17:57:03 +08:00
Callback struct {
2022-07-29 14:36:07 +08:00
CallbackUrl string `yaml:"callbackUrl"`
CallbackBeforeSendSingleMsg callBackConfig `yaml:"callbackBeforeSendSingleMsg"`
CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"`
CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"`
CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"`
CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"`
CallbackUserOnline callBackConfig `yaml:"callbackUserOnline"`
CallbackUserOffline callBackConfig `yaml:"callbackUserOffline"`
2022-08-11 15:55:33 +08:00
CallbackUserKickOff callBackConfig `yaml:"callbackUserKickOff"`
2022-07-29 14:36:07 +08:00
CallbackOfflinePush callBackConfig `yaml:"callbackOfflinePush"`
CallbackOnlinePush callBackConfig `yaml:"callbackOnlinePush"`
CallbackBeforeSuperGroupOnlinePush callBackConfig `yaml:"callbackSuperGroupOnlinePush"`
2022-02-28 17:57:03 +08:00
} `yaml:"callback"`
2021-12-21 21:40:50 +08:00
Notification struct {
2022-01-17 14:05:09 +08:00
///////////////////////group/////////////////////////////
2021-12-21 21:40:50 +08:00
GroupCreated struct {
2021-12-23 14:28:44 +08:00
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:28:46 +08:00
} `yaml:"groupCreated"`
2021-12-21 21:40:50 +08:00
2022-01-17 14:05:09 +08:00
GroupInfoSet struct {
2021-12-23 14:28:44 +08:00
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"groupInfoSet"`
2021-12-21 21:40:50 +08:00
2022-01-17 14:05:09 +08:00
JoinGroupApplication struct {
2021-12-23 14:28:44 +08:00
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"joinGroupApplication"`
2022-01-17 14:05:09 +08:00
MemberQuit struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"memberQuit"`
2022-01-17 14:05:09 +08:00
GroupApplicationAccepted struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"groupApplicationAccepted"`
2022-01-17 14:05:09 +08:00
GroupApplicationRejected struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"groupApplicationRejected"`
2022-01-17 14:05:09 +08:00
GroupOwnerTransferred struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"groupOwnerTransferred"`
2022-01-17 14:05:09 +08:00
MemberKicked struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"memberKicked"`
2022-01-17 14:05:09 +08:00
MemberInvited struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"memberInvited"`
2022-01-17 14:05:09 +08:00
MemberEnter struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"memberEnter"`
2022-03-24 15:33:30 +08:00
GroupDismissed struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupDismissed"`
2022-03-29 16:04:15 +08:00
GroupMuted struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupMuted"`
GroupCancelMuted struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupCancelMuted"`
GroupMemberMuted struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupMemberMuted"`
GroupMemberCancelMuted struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupMemberCancelMuted"`
2022-04-18 11:52:17 +08:00
GroupMemberInfoSet struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupMemberInfoSet"`
2022-06-08 15:05:57 +08:00
GroupMemberSetToAdmin struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupMemberSetToAdmin"`
GroupMemberSetToOrdinary struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"groupMemberSetToOrdinaryUser"`
2022-04-19 16:40:57 +08:00
OrganizationChanged struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"organizationChanged"`
2022-03-29 16:04:15 +08:00
2022-01-17 14:05:09 +08:00
////////////////////////user///////////////////////
UserInfoUpdated struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"userInfoUpdated"`
2022-01-17 14:05:09 +08:00
2022-01-16 12:25:41 +08:00
//////////////////////friend///////////////////////
2022-01-17 10:11:26 +08:00
FriendApplication struct {
2022-01-16 12:25:41 +08:00
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"friendApplicationAdded"`
2022-01-16 12:25:41 +08:00
FriendApplicationApproved struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"friendApplicationApproved"`
2022-01-16 12:25:41 +08:00
FriendApplicationRejected struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"friendApplicationRejected"`
2022-01-16 12:25:41 +08:00
FriendAdded struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"friendAdded"`
2022-01-16 12:25:41 +08:00
FriendDeleted struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"friendDeleted"`
2022-01-18 09:40:08 +08:00
FriendRemarkSet struct {
2022-01-16 12:25:41 +08:00
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"friendRemarkSet"`
2022-01-16 12:25:41 +08:00
BlackAdded struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"blackAdded"`
2022-01-16 12:25:41 +08:00
BlackDeleted struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
2022-02-08 19:33:37 +08:00
} `yaml:"blackDeleted"`
2022-02-18 15:16:33 +08:00
ConversationOptUpdate struct {
2022-02-15 14:11:20 +08:00
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"conversationOptUpdate"`
2022-03-31 14:50:02 +08:00
ConversationSetPrivate struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
2022-04-01 14:49:48 +08:00
DefaultTips struct {
OpenTips string `yaml:"openTips"`
CloseTips string `yaml:"closeTips"`
} `yaml:"defaultTips"`
2022-03-31 14:50:02 +08:00
} `yaml:"conversationSetPrivate"`
2022-04-22 17:19:35 +08:00
WorkMomentsNotification struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"workMomentsNotification"`
2022-05-12 19:00:48 +08:00
JoinDepartmentNotification struct {
Conversation PConversation `yaml:"conversation"`
OfflinePush POfflinePush `yaml:"offlinePush"`
DefaultTips PDefaultTips `yaml:"defaultTips"`
} `yaml:"joinDepartmentNotification"`
2022-06-02 20:06:14 +08:00
Signal struct {
OfflinePush struct {
Title string `yaml:"title"`
} `yaml:"offlinePush"`
} `yaml:"signal"`
2021-12-21 21:40:50 +08:00
}
2021-12-01 12:16:02 +08:00
Demo struct {
2022-05-07 19:52:18 +08:00
Port []int `yaml:"openImDemoPort"`
ListenIP string `yaml:"listenIP"`
2021-12-01 12:16:02 +08:00
AliSMSVerify struct {
AccessKeyID string `yaml:"accessKeyId"`
AccessKeySecret string `yaml:"accessKeySecret"`
SignName string `yaml:"signName"`
VerificationCodeTemplateCode string `yaml:"verificationCodeTemplateCode"`
2022-06-24 19:04:06 +08:00
Enable bool `yaml:"enable"`
}
TencentSMS struct {
AppID string `yaml:"appID"`
Region string `yaml:"region"`
SecretID string `yaml:"secretID"`
SecretKey string `yaml:"secretKey"`
SignName string `yaml:"signName"`
VerificationCodeTemplateCode string `yaml:"verificationCodeTemplateCode"`
Enable bool `yaml:"enable"`
2021-12-01 12:16:02 +08:00
}
2022-07-02 09:50:25 +08:00
SuperCode string `yaml:"superCode"`
CodeTTL int `yaml:"codeTTL"`
UseSuperCode bool `yaml:"useSuperCode"`
Mail struct {
2021-12-01 12:16:02 +08:00
Title string `yaml:"title"`
SenderMail string `yaml:"senderMail"`
SenderAuthorizationCode string `yaml:"senderAuthorizationCode"`
SmtpAddr string `yaml:"smtpAddr"`
SmtpPort int `yaml:"smtpPort"`
}
2022-08-05 15:54:00 +08:00
TestDepartMentID string `yaml:"testDepartMentID"`
ImAPIURL string `yaml:"imAPIURL"`
2022-08-13 10:41:10 +08:00
NeedInvitationCode bool `yaml:"needInvitationCode"`
2022-08-05 15:54:00 +08:00
OnboardProcess bool `yaml:"onboardProcess"`
JoinDepartmentIDList []string `yaml:"joinDepartmentIDList"`
JoinDepartmentGroups bool `yaml:"joinDepartmentGroups"`
OaNotification bool `yaml:"oaNotification"`
2021-12-01 12:16:02 +08:00
}
2022-04-05 10:27:34 +08:00
Rtc struct {
2022-06-02 18:17:11 +08:00
SignalTimeout string `yaml:"signalTimeout"`
2022-04-05 10:27:34 +08:00
} `yaml:"rtc"`
2021-05-26 19:17:51 +08:00
}
2021-12-23 14:28:44 +08:00
type PConversation struct {
2022-01-16 12:25:41 +08:00
ReliabilityLevel int `yaml:"reliabilityLevel"`
UnreadCount bool `yaml:"unreadCount"`
2021-12-23 10:04:21 +08:00
}
2021-12-23 14:28:44 +08:00
type POfflinePush struct {
2021-12-23 10:04:21 +08:00
PushSwitch bool `yaml:"switch"`
Title string `yaml:"title"`
Desc string `yaml:"desc"`
Ext string `yaml:"ext"`
}
2021-12-23 14:28:44 +08:00
type PDefaultTips struct {
2021-12-23 10:04:21 +08:00
Tips string `yaml:"tips"`
}
2021-05-26 19:17:51 +08:00
func init() {
cfgName := os.Getenv("CONFIG_NAME")
2022-08-01 16:42:07 +08:00
fmt.Println("GET IM DEFAULT CONFIG PATH :", Root, "ENV PATH:", cfgName)
2022-08-01 16:56:06 +08:00
if len(cfgName) != 0 {
bytes, err := ioutil.ReadFile(filepath.Join(cfgName, "config", "config.yaml"))
if err != nil {
bytes, err = ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml"))
if err != nil {
panic(err.Error() + " config: " + filepath.Join(cfgName, "config", "config.yaml"))
2022-08-01 16:56:06 +08:00
}
} else {
Root = cfgName
}
if err = yaml.Unmarshal(bytes, &Config); err != nil {
panic(err.Error())
}
} else {
bytes, err := ioutil.ReadFile(filepath.Join(Root, "config", "config.yaml"))
if err != nil {
panic(err.Error())
}
if err = yaml.Unmarshal(bytes, &Config); err != nil {
panic(err.Error())
}
2021-05-26 19:17:51 +08:00
}
}