@ -28,378 +28,346 @@ import (
"github.com/openimsdk/tools/s3/oss"
)
const StructTagName = "yaml"
type Path string
type Index int
type CacheConfig struct {
Topic string ` mapstructure:"topic" `
SlotNum int ` mapstructure:"slotNum" `
SlotSize int ` mapstructure:"slotSize" `
SuccessExpire int ` mapstructure:"successExpire" `
FailedExpire int ` mapstructure:"failedExpire" `
Topic string ` yaml :"topic"`
SlotNum int ` yaml :"slotNum"`
SlotSize int ` yaml :"slotSize"`
SuccessExpire int ` yaml :"successExpire"`
FailedExpire int ` yaml :"failedExpire"`
}
type LocalCache struct {
User CacheConfig ` mapstructure :"user"`
Group CacheConfig ` mapstructure :"group"`
Friend CacheConfig ` mapstructure :"friend"`
Conversation CacheConfig ` mapstructure :"conversation"`
User CacheConfig ` yaml :"user"`
Group CacheConfig ` yaml :"group"`
Friend CacheConfig ` yaml :"friend"`
Conversation CacheConfig ` yaml :"conversation"`
}
type Log struct {
StorageLocation string ` mapstructure :"storageLocation"`
RotationTime uint ` mapstructure :"rotationTime"`
RemainRotationCount uint ` mapstructure :"remainRotationCount"`
RemainLogLevel int ` mapstructure :"remainLogLevel"`
IsStdout bool ` mapstructure :"isStdout"`
IsJson bool ` mapstructure :"isJson"`
IsSimplify bool ` mapstructure :"isSimplify"`
WithStack bool ` mapstructure :"withStack"`
StorageLocation string ` yaml :"storageLocation"`
RotationTime uint ` yaml :"rotationTime"`
RemainRotationCount uint ` yaml :"remainRotationCount"`
RemainLogLevel int ` yaml :"remainLogLevel"`
IsStdout bool ` yaml :"isStdout"`
IsJson bool ` yaml :"isJson"`
IsSimplify bool ` yaml :"isSimplify"`
WithStack bool ` yaml :"withStack"`
}
type Minio struct {
Bucket string ` mapstructure :"bucket"`
AccessKeyID string ` mapstructure :"accessKeyID"`
SecretAccessKey string ` mapstructure :"secretAccessKey"`
SessionToken string ` mapstructure :"sessionToken"`
InternalAddress string ` mapstructure :"internalAddress"`
ExternalAddress string ` mapstructure :"externalAddress"`
PublicRead bool ` mapstructure :"publicRead"`
Bucket string ` yaml :"bucket"`
AccessKeyID string ` yaml :"accessKeyID"`
SecretAccessKey string ` yaml :"secretAccessKey"`
SessionToken string ` yaml :"sessionToken"`
InternalAddress string ` yaml :"internalAddress"`
ExternalAddress string ` yaml :"externalAddress"`
PublicRead bool ` yaml :"publicRead"`
}
type Mongo struct {
URI string ` mapstructure :"uri"`
Address [ ] string ` mapstructure :"address"`
Database string ` mapstructure :"database"`
Username string ` mapstructure :"username"`
Password string ` mapstructure :"password"`
AuthSource string ` mapstructure :"authSource"`
MaxPoolSize int ` mapstructure :"maxPoolSize"`
MaxRetry int ` mapstructure :"maxRetry"`
URI string ` yaml :"uri"`
Address [ ] string ` yaml :"address"`
Database string ` yaml :"database"`
Username string ` yaml :"username"`
Password string ` yaml :"password"`
AuthSource string ` yaml :"authSource"`
MaxPoolSize int ` yaml :"maxPoolSize"`
MaxRetry int ` yaml :"maxRetry"`
}
type Kafka struct {
Username string ` mapstructure :"username"`
Password string ` mapstructure :"password"`
ProducerAck string ` mapstructure :"producerAck"`
CompressType string ` mapstructure :"compressType"`
Address [ ] string ` mapstructure :"address"`
ToRedisTopic string ` mapstructure :"toRedisTopic"`
ToMongoTopic string ` mapstructure :"toMongoTopic"`
ToPushTopic string ` mapstructure :"toPushTopic"`
ToOfflinePushTopic string ` mapstructure :"toOfflinePushTopic"`
ToRedisGroupID string ` mapstructure :"toRedisGroupID"`
ToMongoGroupID string ` mapstructure :"toMongoGroupID"`
ToPushGroupID string ` mapstructure :"toPushGroupID"`
ToOfflineGroupID string ` mapstructure :"toOfflinePushGroupID"`
Tls TLSConfig ` mapstructure :"tls"`
Username string ` yaml :"username"`
Password string ` yaml :"password"`
ProducerAck string ` yaml :"producerAck"`
CompressType string ` yaml :"compressType"`
Address [ ] string ` yaml :"address"`
ToRedisTopic string ` yaml :"toRedisTopic"`
ToMongoTopic string ` yaml :"toMongoTopic"`
ToPushTopic string ` yaml :"toPushTopic"`
ToOfflinePushTopic string ` yaml :"toOfflinePushTopic"`
ToRedisGroupID string ` yaml :"toRedisGroupID"`
ToMongoGroupID string ` yaml :"toMongoGroupID"`
ToPushGroupID string ` yaml :"toPushGroupID"`
ToOfflineGroupID string ` yaml :"toOfflinePushGroupID"`
Tls TLSConfig ` yaml :"tls"`
}
type TLSConfig struct {
EnableTLS bool ` mapstructure :"enableTLS"`
CACrt string ` mapstructure :"caCrt"`
ClientCrt string ` mapstructure :"clientCrt"`
ClientKey string ` mapstructure :"clientKey"`
ClientKeyPwd string ` mapstructure :"clientKeyPwd"`
InsecureSkipVerify bool ` mapstructure :"insecureSkipVerify"`
EnableTLS bool ` yaml :"enableTLS"`
CACrt string ` yaml :"caCrt"`
ClientCrt string ` yaml :"clientCrt"`
ClientKey string ` yaml :"clientKey"`
ClientKeyPwd string ` yaml :"clientKeyPwd"`
InsecureSkipVerify bool ` yaml :"insecureSkipVerify"`
}
type API struct {
Api struct {
ListenIP string ` mapstructure :"listenIP"`
Ports [ ] int ` mapstructure :"ports"`
CompressionLevel int ` mapstructure :"compressionLevel"`
} ` mapstructure :"api"`
ListenIP string ` yaml :"listenIP"`
Ports [ ] int ` yaml :"ports"`
CompressionLevel int ` yaml :"compressionLevel"`
} ` yaml :"api"`
Prometheus struct {
Enable bool ` mapstructure :"enable"`
AutoSetPorts bool ` mapstructure :"autoSetPorts"`
Ports [ ] int ` mapstructure :"ports"`
GrafanaURL string ` mapstructure :"grafanaURL"`
} ` mapstructure :"prometheus"`
Enable bool ` yaml :"enable"`
AutoSetPorts bool ` yaml :"autoSetPorts"`
Ports [ ] int ` yaml :"ports"`
GrafanaURL string ` yaml :"grafanaURL"`
} ` yaml :"prometheus"`
}
type CronTask struct {
CronExecuteTime string ` mapstructure :"cronExecuteTime"`
RetainChatRecords int ` mapstructure :"retainChatRecords"`
FileExpireTime int ` mapstructure :"fileExpireTime"`
DeleteObjectType [ ] string ` mapstructure :"deleteObjectType"`
CronExecuteTime string ` yaml :"cronExecuteTime"`
RetainChatRecords int ` yaml :"retainChatRecords"`
FileExpireTime int ` yaml :"fileExpireTime"`
DeleteObjectType [ ] string ` yaml :"deleteObjectType"`
}
type OfflinePushConfig struct {
Enable bool ` mapstructure :"enable"`
Title string ` mapstructure :"title"`
Desc string ` mapstructure :"desc"`
Ext string ` mapstructure :"ext"`
Enable bool ` yaml :"enable"`
Title string ` yaml :"title"`
Desc string ` yaml :"desc"`
Ext string ` yaml :"ext"`
}
type NotificationConfig struct {
IsSendMsg bool ` mapstructure :"isSendMsg"`
ReliabilityLevel int ` mapstructure :"reliabilityLevel"`
UnreadCount bool ` mapstructure :"unreadCount"`
OfflinePush OfflinePushConfig ` mapstructure :"offlinePush"`
IsSendMsg bool ` yaml :"isSendMsg"`
ReliabilityLevel int ` yaml :"reliabilityLevel"`
UnreadCount bool ` yaml :"unreadCount"`
OfflinePush OfflinePushConfig ` yaml :"offlinePush"`
}
type Notification struct {
GroupCreated NotificationConfig ` mapstructure :"groupCreated"`
GroupInfoSet NotificationConfig ` mapstructure :"groupInfoSet"`
JoinGroupApplication NotificationConfig ` mapstructure :"joinGroupApplication"`
MemberQuit NotificationConfig ` mapstructure :"memberQuit"`
GroupApplicationAccepted NotificationConfig ` mapstructure :"groupApplicationAccepted"`
GroupApplicationRejected NotificationConfig ` mapstructure :"groupApplicationRejected"`
GroupOwnerTransferred NotificationConfig ` mapstructure :"groupOwnerTransferred"`
MemberKicked NotificationConfig ` mapstructure :"memberKicked"`
MemberInvited NotificationConfig ` mapstructure :"memberInvited"`
MemberEnter NotificationConfig ` mapstructure :"memberEnter"`
GroupDismissed NotificationConfig ` mapstructure :"groupDismissed"`
GroupMuted NotificationConfig ` mapstructure :"groupMuted"`
GroupCancelMuted NotificationConfig ` mapstructure :"groupCancelMuted"`
GroupMemberMuted NotificationConfig ` mapstructure :"groupMemberMuted"`
GroupMemberCancelMuted NotificationConfig ` mapstructure :"groupMemberCancelMuted"`
GroupMemberInfoSet NotificationConfig ` mapstructure :"groupMemberInfoSet"`
GroupCreated NotificationConfig ` yaml :"groupCreated"`
GroupInfoSet NotificationConfig ` yaml :"groupInfoSet"`
JoinGroupApplication NotificationConfig ` yaml :"joinGroupApplication"`
MemberQuit NotificationConfig ` yaml :"memberQuit"`
GroupApplicationAccepted NotificationConfig ` yaml :"groupApplicationAccepted"`
GroupApplicationRejected NotificationConfig ` yaml :"groupApplicationRejected"`
GroupOwnerTransferred NotificationConfig ` yaml :"groupOwnerTransferred"`
MemberKicked NotificationConfig ` yaml :"memberKicked"`
MemberInvited NotificationConfig ` yaml :"memberInvited"`
MemberEnter NotificationConfig ` yaml :"memberEnter"`
GroupDismissed NotificationConfig ` yaml :"groupDismissed"`
GroupMuted NotificationConfig ` yaml :"groupMuted"`
GroupCancelMuted NotificationConfig ` yaml :"groupCancelMuted"`
GroupMemberMuted NotificationConfig ` yaml :"groupMemberMuted"`
GroupMemberCancelMuted NotificationConfig ` yaml :"groupMemberCancelMuted"`
GroupMemberInfoSet NotificationConfig ` yaml :"groupMemberInfoSet"`
GroupMemberSetToAdmin NotificationConfig ` yaml:"groupMemberSetToAdmin" `
GroupMemberSetToOrdinary NotificationConfig ` yaml:"groupMemberSetToOrdinaryUser" `
GroupInfoSetAnnouncement NotificationConfig ` mapstructure :"groupInfoSetAnnouncement"`
GroupInfoSetName NotificationConfig ` mapstructure :"groupInfoSetName"`
FriendApplicationAdded NotificationConfig ` mapstructure :"friendApplicationAdded"`
FriendApplicationApproved NotificationConfig ` mapstructure :"friendApplicationApproved"`
FriendApplicationRejected NotificationConfig ` mapstructure :"friendApplicationRejected"`
FriendAdded NotificationConfig ` mapstructure :"friendAdded"`
FriendDeleted NotificationConfig ` mapstructure :"friendDeleted"`
FriendRemarkSet NotificationConfig ` mapstructure :"friendRemarkSet"`
BlackAdded NotificationConfig ` mapstructure :"blackAdded"`
BlackDeleted NotificationConfig ` mapstructure :"blackDeleted"`
FriendInfoUpdated NotificationConfig ` mapstructure :"friendInfoUpdated"`
UserInfoUpdated NotificationConfig ` mapstructure :"userInfoUpdated"`
UserStatusChanged NotificationConfig ` mapstructure :"userStatusChanged"`
ConversationChanged NotificationConfig ` mapstructure :"conversationChanged"`
ConversationSetPrivate NotificationConfig ` mapstructure :"conversationSetPrivate"`
GroupInfoSetAnnouncement NotificationConfig ` yaml :"groupInfoSetAnnouncement"`
GroupInfoSetName NotificationConfig ` yaml :"groupInfoSetName"`
FriendApplicationAdded NotificationConfig ` yaml :"friendApplicationAdded"`
FriendApplicationApproved NotificationConfig ` yaml :"friendApplicationApproved"`
FriendApplicationRejected NotificationConfig ` yaml :"friendApplicationRejected"`
FriendAdded NotificationConfig ` yaml :"friendAdded"`
FriendDeleted NotificationConfig ` yaml :"friendDeleted"`
FriendRemarkSet NotificationConfig ` yaml :"friendRemarkSet"`
BlackAdded NotificationConfig ` yaml :"blackAdded"`
BlackDeleted NotificationConfig ` yaml :"blackDeleted"`
FriendInfoUpdated NotificationConfig ` yaml :"friendInfoUpdated"`
UserInfoUpdated NotificationConfig ` yaml :"userInfoUpdated"`
UserStatusChanged NotificationConfig ` yaml :"userStatusChanged"`
ConversationChanged NotificationConfig ` yaml :"conversationChanged"`
ConversationSetPrivate NotificationConfig ` yaml :"conversationSetPrivate"`
}
type Prometheus struct {
Enable bool ` mapstructure :"enable"`
Ports [ ] int ` mapstructure :"ports"`
Enable bool ` yaml :"enable"`
Ports [ ] int ` yaml :"ports"`
}
type MsgGateway struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
ListenIP string ` mapstructure:"listenIP" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
ListenIP string ` yaml:"listenIP" `
LongConnSvr struct {
Ports [ ] int ` mapstructure :"ports"`
WebsocketMaxConnNum int ` mapstructure :"websocketMaxConnNum"`
WebsocketMaxMsgLen int ` mapstructure :"websocketMaxMsgLen"`
WebsocketTimeout int ` mapstructure :"websocketTimeout"`
} ` mapstructure :"longConnSvr"`
Ports [ ] int ` yaml:"ports" `
WebsocketMaxConnNum int ` yaml:"websocketMaxConnNum" `
WebsocketMaxMsgLen int ` yaml:"websocketMaxMsgLen" `
WebsocketTimeout int ` yaml :"websocketTimeout"`
} ` yaml :"longConnSvr"`
}
type MsgTransfer struct {
Prometheus struct {
Enable bool ` mapstructure :"enable"`
AutoSetPorts bool ` mapstructure :"autoSetPorts"`
Ports [ ] int ` mapstructure :"ports"`
} ` mapstructure :"prometheus"`
Enable bool ` yaml :"enable"`
AutoSetPorts bool ` yaml :"autoSetPorts"`
Ports [ ] int ` yaml :"ports"`
} ` yaml :"prometheus"`
}
type Push struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
MaxConcurrentWorkers int ` mapstructure:"maxConcurrentWorkers" `
Enable string ` mapstructure:"enable" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
MaxConcurrentWorkers int ` yaml:"maxConcurrentWorkers" `
Enable string ` yaml:"enable" `
GeTui struct {
PushUrl string ` mapstructure :"pushUrl"`
MasterSecret string ` mapstructure :"masterSecret"`
AppKey string ` mapstructure :"appKey"`
Intent string ` mapstructure :"intent"`
ChannelID string ` mapstructure :"channelID"`
ChannelName string ` mapstructure :"channelName"`
} ` mapstructure :"geTui"`
PushUrl string ` yaml:"pushUrl" `
MasterSecret string ` yaml:"masterSecret" `
AppKey string ` yaml:"appKey" `
Intent string ` yaml:"intent" `
ChannelID string ` yaml :"channelID"`
ChannelName string ` yaml :"channelName"`
} ` yaml :"geTui"`
FCM struct {
FilePath string ` mapstructure :"filePath"`
AuthURL string ` mapstructure :"authURL"`
} ` mapstructure :"fcm"`
FilePath string ` yaml :"filePath"`
AuthURL string ` yaml :"authURL"`
} ` yaml :"fcm"`
JPush struct {
AppKey string ` mapstructure :"appKey"`
MasterSecret string ` mapstructure :"masterSecret"`
PushURL string ` mapstructure :"pushURL"`
PushIntent string ` mapstructure :"pushIntent"`
} ` mapstructure :"jpush"`
AppKey string ` yaml :"appKey"`
MasterSecret string ` yaml :"masterSecret"`
PushURL string ` yaml :"pushURL"`
PushIntent string ` yaml :"pushIntent"`
} ` yaml :"jpush"`
IOSPush struct {
PushSound string ` mapstructure :"pushSound"`
BadgeCount bool ` mapstructure :"badgeCount"`
Production bool ` mapstructure :"production"`
} ` mapstructure :"iosPush"`
FullUserCache bool ` mapstructure :"fullUserCache"`
PushSound string ` yaml :"pushSound"`
BadgeCount bool ` yaml :"badgeCount"`
Production bool ` yaml :"production"`
} ` yaml :"iosPush"`
FullUserCache bool ` yaml :"fullUserCache"`
}
type Auth struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
TokenPolicy struct {
Expire int64 ` mapstructure :"expire"`
} ` mapstructure :"tokenPolicy"`
Expire int64 ` yaml:"expire" `
} ` yaml:"tokenPolicy" `
}
type Conversation struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
}
type Friend struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
}
type Group struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
EnableHistoryForNewMembers bool ` mapstructure:"enableHistoryForNewMembers" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
EnableHistoryForNewMembers bool ` yaml:"enableHistoryForNewMembers" `
}
type Msg struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
FriendVerify bool ` mapstructure:"friendVerify" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
FriendVerify bool ` yaml:"friendVerify" `
}
type Third struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
Object struct {
Enable string ` mapstructure :"enable"`
Cos Cos ` mapstructure :"cos"`
Oss Oss ` mapstructure :"oss"`
Kodo Kodo ` mapstructure :"kodo"`
Aws Aws ` mapstructure :"aws"`
} ` mapstructure :"object"`
Enable string ` yaml:"enable" `
Cos Cos ` yaml:"cos" `
Oss Oss ` yaml:"oss" `
Kodo Kodo ` yaml:"kodo" `
Aws Aws ` yaml :"aws"`
} ` yaml :"object"`
}
type Cos struct {
BucketURL string ` mapstructure :"bucketURL"`
SecretID string ` mapstructure :"secretID"`
SecretKey string ` mapstructure :"secretKey"`
SessionToken string ` mapstructure :"sessionToken"`
PublicRead bool ` mapstructure :"publicRead"`
BucketURL string ` yaml :"bucketURL"`
SecretID string ` yaml :"secretID"`
SecretKey string ` yaml :"secretKey"`
SessionToken string ` yaml :"sessionToken"`
PublicRead bool ` yaml :"publicRead"`
}
type Oss struct {
Endpoint string ` mapstructure :"endpoint"`
Bucket string ` mapstructure :"bucket"`
BucketURL string ` mapstructure :"bucketURL"`
AccessKeyID string ` mapstructure :"accessKeyID"`
AccessKeySecret string ` mapstructure :"accessKeySecret"`
SessionToken string ` mapstructure :"sessionToken"`
PublicRead bool ` mapstructure :"publicRead"`
Endpoint string ` yaml :"endpoint"`
Bucket string ` yaml :"bucket"`
BucketURL string ` yaml :"bucketURL"`
AccessKeyID string ` yaml :"accessKeyID"`
AccessKeySecret string ` yaml :"accessKeySecret"`
SessionToken string ` yaml :"sessionToken"`
PublicRead bool ` yaml :"publicRead"`
}
type Kodo struct {
Endpoint string ` mapstructure :"endpoint"`
Bucket string ` mapstructure :"bucket"`
BucketURL string ` mapstructure :"bucketURL"`
AccessKeyID string ` mapstructure :"accessKeyID"`
AccessKeySecret string ` mapstructure :"accessKeySecret"`
SessionToken string ` mapstructure :"sessionToken"`
PublicRead bool ` mapstructure :"publicRead"`
Endpoint string ` yaml :"endpoint"`
Bucket string ` yaml :"bucket"`
BucketURL string ` yaml :"bucketURL"`
AccessKeyID string ` yaml :"accessKeyID"`
AccessKeySecret string ` yaml :"accessKeySecret"`
SessionToken string ` yaml :"sessionToken"`
PublicRead bool ` yaml :"publicRead"`
}
type Aws struct {
Region string ` mapstructure :"region"`
Bucket string ` mapstructure :"bucket"`
AccessKeyID string ` mapstructure :"accessKeyID"`
SecretAccessKey string ` mapstructure :"secretAccessKey"`
SessionToken string ` mapstructure :"sessionToken"`
PublicRead bool ` mapstructure :"publicRead"`
Region string ` yaml :"region"`
Bucket string ` yaml :"bucket"`
AccessKeyID string ` yaml :"accessKeyID"`
SecretAccessKey string ` yaml :"secretAccessKey"`
SessionToken string ` yaml :"sessionToken"`
PublicRead bool ` yaml :"publicRead"`
}
type User struct {
RPC struct {
RegisterIP string ` mapstructure:"registerIP" `
ListenIP string ` mapstructure:"listenIP" `
AutoSetPorts bool ` mapstructure:"autoSetPorts" `
Ports [ ] int ` mapstructure:"ports" `
} ` mapstructure:"rpc" `
Prometheus Prometheus ` mapstructure:"prometheus" `
RPC RPC ` yaml:"rpc" `
Prometheus Prometheus ` yaml:"prometheus" `
}
type RPC struct {
RegisterIP string ` yaml:"registerIP" `
ListenIP string ` yaml:"listenIP" `
AutoSetPorts bool ` yaml:"autoSetPorts" `
Ports [ ] int ` yaml:"ports" `
}
type Redis struct {
Address [ ] string ` mapstructure:"address" `
Username string ` mapstructure:"username" `
Password string ` mapstructure:"password" `
ClusterMode bool ` mapstructure:"clusterMode" `
DB int ` mapstructure:"storage" `
MaxRetry int ` mapstructure:"maxRetry" `
PoolSize int ` mapstructure:"poolSize" `
Disable bool ` yaml:"-" `
Address [ ] string ` yaml:"address" `
Username string ` yaml:"username" `
Password string ` yaml:"password" `
ClusterMode bool ` yaml:"clusterMode" `
DB int ` yaml:"storage" `
MaxRetry int ` yaml:"maxRetry" `
PoolSize int ` yaml:"poolSize" `
}
type BeforeConfig struct {
Enable bool ` mapstructure:"enable" `
Timeout int ` mapstructure:"timeout" `
FailedContinue bool ` mapstructure:"failedContinue" `
AllowedTypes [ ] string ` mapstructure:"allowedTypes" `
DeniedTypes [ ] string ` mapstructure:"deniedTypes" `
Enable bool ` yaml:"enable" `
Timeout int ` yaml:"timeout" `
FailedContinue bool ` yaml:"failedContinue" `
DeniedTypes [ ] int32 ` yaml:"deniedTypes" `
}
type AfterConfig struct {
Enable bool ` mapstructure:"enable" `
Timeout int ` mapstructure:"timeout" `
AttentionIds [ ] string ` mapstructure:"attentionIds" `
AllowedTypes [ ] string ` mapstructure:"allowedTypes" `
DeniedTypes [ ] string ` mapstructure:"deniedTypes" `
Enable bool ` yaml:"enable" `
Timeout int ` yaml:"timeout" `
AttentionIds [ ] string ` yaml:"attentionIds" `
DeniedTypes [ ] int32 ` yaml:"deniedTypes" `
}
type Share struct {
Secret string ` mapstructure :"secret"`
IMAdminUserID [ ] string ` mapstructure :"imAdminUserID"`
MultiLogin MultiLogin ` mapstructure :"multiLogin"`
Secret string ` yaml :"secret"`
IMAdminUserID [ ] string ` yaml :"imAdminUserID"`
MultiLogin MultiLogin ` yaml :"multiLogin"`
}
type MultiLogin struct {
Policy int ` mapstructure :"policy"`
MaxNumOneEnd int ` mapstructure :"maxNumOneEnd"`
Policy int ` yaml :"policy"`
MaxNumOneEnd int ` yaml :"maxNumOneEnd"`
}
type RpcService struct {
User string ` mapstructure :"user"`
Friend string ` mapstructure :"friend"`
Msg string ` mapstructure :"msg"`
Push string ` mapstructure :"push"`
MessageGateway string ` mapstructure :"messageGateway"`
Group string ` mapstructure :"group"`
Auth string ` mapstructure :"auth"`
Conversation string ` mapstructure :"conversation"`
Third string ` mapstructure :"third"`
User string ` yaml :"user"`
Friend string ` yaml :"friend"`
Msg string ` yaml :"msg"`
Push string ` yaml :"push"`
MessageGateway string ` yaml :"messageGateway"`
Group string ` yaml :"group"`
Auth string ` yaml :"auth"`
Conversation string ` yaml :"conversation"`
Third string ` yaml :"third"`
}
func ( r * RpcService ) GetServiceNames ( ) [ ] string {
@ -418,80 +386,80 @@ func (r *RpcService) GetServiceNames() []string {
// FullConfig stores all configurations for before and after events
type Webhooks struct {
URL string ` mapstructure :"url"`
BeforeSendSingleMsg BeforeConfig ` mapstructure :"beforeSendSingleMsg"`
BeforeUpdateUserInfoEx BeforeConfig ` mapstructure :"beforeUpdateUserInfoEx"`
AfterUpdateUserInfoEx AfterConfig ` mapstructure :"afterUpdateUserInfoEx"`
AfterSendSingleMsg AfterConfig ` mapstructure :"afterSendSingleMsg"`
BeforeSendGroupMsg BeforeConfig ` mapstructure :"beforeSendGroupMsg"`
BeforeMsgModify BeforeConfig ` mapstructure :"beforeMsgModify"`
AfterSendGroupMsg AfterConfig ` mapstructure :"afterSendGroupMsg"`
AfterUserOnline AfterConfig ` mapstructure :"afterUserOnline"`
AfterUserOffline AfterConfig ` mapstructure :"afterUserOffline"`
AfterUserKickOff AfterConfig ` mapstructure :"afterUserKickOff"`
BeforeOfflinePush BeforeConfig ` mapstructure :"beforeOfflinePush"`
BeforeOnlinePush BeforeConfig ` mapstructure :"beforeOnlinePush"`
BeforeGroupOnlinePush BeforeConfig ` mapstructure :"beforeGroupOnlinePush"`
BeforeAddFriend BeforeConfig ` mapstructure :"beforeAddFriend"`
BeforeUpdateUserInfo BeforeConfig ` mapstructure :"beforeUpdateUserInfo"`
AfterUpdateUserInfo AfterConfig ` mapstructure :"afterUpdateUserInfo"`
BeforeCreateGroup BeforeConfig ` mapstructure :"beforeCreateGroup"`
AfterCreateGroup AfterConfig ` mapstructure :"afterCreateGroup"`
BeforeMemberJoinGroup BeforeConfig ` mapstructure :"beforeMemberJoinGroup"`
BeforeSetGroupMemberInfo BeforeConfig ` mapstructure :"beforeSetGroupMemberInfo"`
AfterSetGroupMemberInfo AfterConfig ` mapstructure :"afterSetGroupMemberInfo"`
AfterQuitGroup AfterConfig ` mapstructure :"afterQuitGroup"`
AfterKickGroupMember AfterConfig ` mapstructure :"afterKickGroupMember"`
AfterDismissGroup AfterConfig ` mapstructure :"afterDismissGroup"`
BeforeApplyJoinGroup BeforeConfig ` mapstructure :"beforeApplyJoinGroup"`
AfterGroupMsgRead AfterConfig ` mapstructure :"afterGroupMsgRead"`
AfterSingleMsgRead AfterConfig ` mapstructure :"afterSingleMsgRead"`
BeforeUserRegister BeforeConfig ` mapstructure :"beforeUserRegister"`
AfterUserRegister AfterConfig ` mapstructure :"afterUserRegister"`
AfterTransferGroupOwner AfterConfig ` mapstructure :"afterTransferGroupOwner"`
BeforeSetFriendRemark BeforeConfig ` mapstructure :"beforeSetFriendRemark"`
AfterSetFriendRemark AfterConfig ` mapstructure :"afterSetFriendRemark"`
AfterGroupMsgRevoke AfterConfig ` mapstructure :"afterGroupMsgRevoke"`
AfterJoinGroup AfterConfig ` mapstructure :"afterJoinGroup"`
BeforeInviteUserToGroup BeforeConfig ` mapstructure :"beforeInviteUserToGroup"`
AfterSetGroupInfo AfterConfig ` mapstructure :"afterSetGroupInfo"`
BeforeSetGroupInfo BeforeConfig ` mapstructure :"beforeSetGroupInfo"`
AfterSetGroupInfoEx AfterConfig ` mapstructure :"afterSetGroupInfoEx"`
BeforeSetGroupInfoEx BeforeConfig ` mapstructure :"beforeSetGroupInfoEx"`
AfterRevokeMsg AfterConfig ` mapstructure :"afterRevokeMsg"`
BeforeAddBlack BeforeConfig ` mapstructure :"beforeAddBlack"`
AfterAddFriend AfterConfig ` mapstructure :"afterAddFriend"`
BeforeAddFriendAgree BeforeConfig ` mapstructure :"beforeAddFriendAgree"`
AfterAddFriendAgree AfterConfig ` mapstructure :"afterAddFriendAgree"`
AfterDeleteFriend AfterConfig ` mapstructure :"afterDeleteFriend"`
BeforeImportFriends BeforeConfig ` mapstructure :"beforeImportFriends"`
AfterImportFriends AfterConfig ` mapstructure :"afterImportFriends"`
AfterRemoveBlack AfterConfig ` mapstructure :"afterRemoveBlack"`
URL string ` yaml :"url"`
BeforeSendSingleMsg BeforeConfig ` yaml :"beforeSendSingleMsg"`
BeforeUpdateUserInfoEx BeforeConfig ` yaml :"beforeUpdateUserInfoEx"`
AfterUpdateUserInfoEx AfterConfig ` yaml :"afterUpdateUserInfoEx"`
AfterSendSingleMsg AfterConfig ` yaml :"afterSendSingleMsg"`
BeforeSendGroupMsg BeforeConfig ` yaml :"beforeSendGroupMsg"`
BeforeMsgModify BeforeConfig ` yaml :"beforeMsgModify"`
AfterSendGroupMsg AfterConfig ` yaml :"afterSendGroupMsg"`
AfterUserOnline AfterConfig ` yaml :"afterUserOnline"`
AfterUserOffline AfterConfig ` yaml :"afterUserOffline"`
AfterUserKickOff AfterConfig ` yaml :"afterUserKickOff"`
BeforeOfflinePush BeforeConfig ` yaml :"beforeOfflinePush"`
BeforeOnlinePush BeforeConfig ` yaml :"beforeOnlinePush"`
BeforeGroupOnlinePush BeforeConfig ` yaml :"beforeGroupOnlinePush"`
BeforeAddFriend BeforeConfig ` yaml :"beforeAddFriend"`
BeforeUpdateUserInfo BeforeConfig ` yaml :"beforeUpdateUserInfo"`
AfterUpdateUserInfo AfterConfig ` yaml :"afterUpdateUserInfo"`
BeforeCreateGroup BeforeConfig ` yaml :"beforeCreateGroup"`
AfterCreateGroup AfterConfig ` yaml :"afterCreateGroup"`
BeforeMemberJoinGroup BeforeConfig ` yaml :"beforeMemberJoinGroup"`
BeforeSetGroupMemberInfo BeforeConfig ` yaml :"beforeSetGroupMemberInfo"`
AfterSetGroupMemberInfo AfterConfig ` yaml :"afterSetGroupMemberInfo"`
AfterQuitGroup AfterConfig ` yaml :"afterQuitGroup"`
AfterKickGroupMember AfterConfig ` yaml :"afterKickGroupMember"`
AfterDismissGroup AfterConfig ` yaml :"afterDismissGroup"`
BeforeApplyJoinGroup BeforeConfig ` yaml :"beforeApplyJoinGroup"`
AfterGroupMsgRead AfterConfig ` yaml :"afterGroupMsgRead"`
AfterSingleMsgRead AfterConfig ` yaml :"afterSingleMsgRead"`
BeforeUserRegister BeforeConfig ` yaml :"beforeUserRegister"`
AfterUserRegister AfterConfig ` yaml :"afterUserRegister"`
AfterTransferGroupOwner AfterConfig ` yaml :"afterTransferGroupOwner"`
BeforeSetFriendRemark BeforeConfig ` yaml :"beforeSetFriendRemark"`
AfterSetFriendRemark AfterConfig ` yaml :"afterSetFriendRemark"`
AfterGroupMsgRevoke AfterConfig ` yaml :"afterGroupMsgRevoke"`
AfterJoinGroup AfterConfig ` yaml :"afterJoinGroup"`
BeforeInviteUserToGroup BeforeConfig ` yaml :"beforeInviteUserToGroup"`
AfterSetGroupInfo AfterConfig ` yaml :"afterSetGroupInfo"`
BeforeSetGroupInfo BeforeConfig ` yaml :"beforeSetGroupInfo"`
AfterSetGroupInfoEx AfterConfig ` yaml :"afterSetGroupInfoEx"`
BeforeSetGroupInfoEx BeforeConfig ` yaml :"beforeSetGroupInfoEx"`
AfterRevokeMsg AfterConfig ` yaml :"afterRevokeMsg"`
BeforeAddBlack BeforeConfig ` yaml :"beforeAddBlack"`
AfterAddFriend AfterConfig ` yaml :"afterAddFriend"`
BeforeAddFriendAgree BeforeConfig ` yaml :"beforeAddFriendAgree"`
AfterAddFriendAgree AfterConfig ` yaml :"afterAddFriendAgree"`
AfterDeleteFriend AfterConfig ` yaml :"afterDeleteFriend"`
BeforeImportFriends BeforeConfig ` yaml :"beforeImportFriends"`
AfterImportFriends AfterConfig ` yaml :"afterImportFriends"`
AfterRemoveBlack AfterConfig ` yaml :"afterRemoveBlack"`
}
type ZooKeeper struct {
Schema string ` mapstructure :"schema"`
Address [ ] string ` mapstructure :"address"`
Username string ` mapstructure :"username"`
Password string ` mapstructure :"password"`
Schema string ` yaml :"schema"`
Address [ ] string ` yaml :"address"`
Username string ` yaml :"username"`
Password string ` yaml :"password"`
}
type Discovery struct {
Enable string ` mapstructure :"enable"`
Etcd Etcd ` mapstructure :"etcd"`
Kubernetes Kubernetes ` mapstructure :"kubernetes"`
RpcService RpcService ` mapstructure :"rpcService"`
Enable string ` yaml :"enable"`
Etcd Etcd ` yaml :"etcd"`
Kubernetes Kubernetes ` yaml :"kubernetes"`
RpcService RpcService ` yaml :"rpcService"`
}
type Kubernetes struct {
Namespace string ` mapstructure :"namespace"`
Namespace string ` yaml :"namespace"`
}
type Etcd struct {
RootDirectory string ` mapstructure :"rootDirectory"`
Address [ ] string ` mapstructure :"address"`
Username string ` mapstructure :"username"`
Password string ` mapstructure :"password"`
RootDirectory string ` yaml :"rootDirectory"`
Address [ ] string ` yaml :"address"`
Username string ` yaml :"username"`
Password string ` yaml :"password"`
}
func ( m * Mongo ) Build ( ) * mongoutil . Config {
@ -783,7 +751,7 @@ func (a *AllConfig) GetConfigNames() []string {
}
}
var (
const (
FileName = "config.yaml"
DiscoveryConfigFilename = "discovery.yml"
KafkaConfigFileName = "kafka.yml"