Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 39 additions & 29 deletions common/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -424,38 +424,47 @@ type Config struct {
}

Notification struct {
Port int `env:"STARHUB_SERVER_NOTIFIER_PORT" default:"8095"`
Host string `env:"STARHUB_SERVER_NOTIFIER_HOST" default:"http://localhost"`
MailerHost string `env:"STARHUB_SERVER_MAILER_HOST" default:"smtp.qiye.aliyun.com"`
MailerPort int `env:"STARHUB_SERVER_MAILER_PORT" default:"465"`
MailerUsername string `env:"STARHUB_SERVER_MAILER_USERNAME" default:""`
MailerPassword string `env:"STARHUB_SERVER_MAILER_PASSWORD" default:""`
DirectMailEnabled bool `env:"STARHUB_SERVER_DIRECT_MAIL_ENABLED" default:"false"`
DirectMailAccessKeyID string `env:"STARHUB_SERVER_DIRECT_MAIL_ACCESS_KEY_ID" default:""`
DirectMailAccessKeySecret string `env:"STARHUB_SERVER_DIRECT_MAIL_ACCESS_KEY_SECRET" default:""`
DirectMailEndpoint string `env:"STARHUB_SERVER_DIRECT_MAIL_ENDPOINT" default:"dm.aliyuncs.com"`
DirectMailRegionId string `env:"STARHUB_SERVER_DIRECT_MAIL_REGION_ID" default:"cn-hangzhou"`
MailerRechargeAdmin string `env:"STARHUB_SERVER_MAILER_RECHARGE_ADMIN" default:"contact@opencsg.com"`
MailerWeeklyRechargesMail string `env:"STARHUB_SERVER_MAILER_WEEKLY_RECHARGES_MAIL" default:"reconcile@opencsg.com"`
EmailInvoiceCreatedReceiver string `env:"STARHUB_SERVER_EMAIL_INVOICE_CREATED_RECEIVER" default:"contact@opencsg.com"`
RepoSyncTimezone string `env:"STARHUB_SERVER_REPO_SYNC_TIMEZONE" default:"Asia/Shanghai"`
RepoSyncChatID string `env:"STARHUB_SERVER_REPO_SYNC_CHAT_ID" default:""`
NotificationRetryCount int `env:"STARHUB_SERVER_NOTIFIER_NOTIFICATION_RETRY_COUNT" default:"3"`
BroadcastUserPageSize int `env:"STARHUB_SERVER_NOTIFIER_BROADCAST_USER_PAGE_SIZE" default:"100"`
BroadcastEmailPageSize int `env:"STARHUB_SERVER_NOTIFIER_BROADCAST_EMAIL_PAGE_SIZE" default:"100"`
MsgDispatcherCount int `env:"STARHUB_SERVER_NOTIFIER_MSG_DISPATCHER_COUNT" default:"20"`
HighPriorityMsgBufferSize int `env:"STARHUB_SERVER_NOTIFIER_HIGH_PRIORITY_MSG_BUFFER_SIZE" default:"100"`
NormalPriorityMsgBufferSize int `env:"STARHUB_SERVER_NOTIFIER_NORMAL_PRIORITY_MSG_BUFFER_SIZE" default:"50"`
HighPriorityMsgAckWait int `env:"STARHUB_SERVER_NOTIFIER_HIGH_PRIORITY_MSG_ACK_WAIT" default:"60"`
NormalPriorityMsgAckWait int `env:"STARHUB_SERVER_NOTIFIER_NORMAL_PRIORITY_MSG_ACK_WAIT" default:"60"`
HighPriorityMsgMaxDeliver int `env:"STARHUB_SERVER_NOTIFIER_HIGH_PRIORITY_MSG_MAX_DELIVER" default:"6"`
NormalPriorityMsgMaxDeliver int `env:"STARHUB_SERVER_NOTIFIER_NORMAL_PRIORITY_MSG_MAX_DELIVER" default:"6"`
DeduplicateWindow int `env:"STARHUB_SERVER_NOTIFIER_DEDUPLICATE_WINDOW" default:"5"` // 5 seconds
Port int `env:"STARHUB_SERVER_NOTIFIER_PORT" default:"8095"`
Host string `env:"STARHUB_SERVER_NOTIFIER_HOST" default:"http://localhost"`
MailerHost string `env:"STARHUB_SERVER_MAILER_HOST" default:"smtp.qiye.aliyun.com"`
MailerPort int `env:"STARHUB_SERVER_MAILER_PORT" default:"465"`
MailerUsername string `env:"STARHUB_SERVER_MAILER_USERNAME" default:""`
MailerPassword string `env:"STARHUB_SERVER_MAILER_PASSWORD" default:""`
DirectMailEnabled bool `env:"STARHUB_SERVER_DIRECT_MAIL_ENABLED" default:"false"`
DirectMailAccessKeyID string `env:"STARHUB_SERVER_DIRECT_MAIL_ACCESS_KEY_ID" default:""`
DirectMailAccessKeySecret string `env:"STARHUB_SERVER_DIRECT_MAIL_ACCESS_KEY_SECRET" default:""`
DirectMailEndpoint string `env:"STARHUB_SERVER_DIRECT_MAIL_ENDPOINT" default:"dm.aliyuncs.com"`
DirectMailRegionId string `env:"STARHUB_SERVER_DIRECT_MAIL_REGION_ID" default:"cn-hangzhou"`
MailerRechargeAdmin string `env:"STARHUB_SERVER_MAILER_RECHARGE_ADMIN" default:"contact@opencsg.com"`
MailerWeeklyRechargesMail string `env:"STARHUB_SERVER_MAILER_WEEKLY_RECHARGES_MAIL" default:"reconcile@opencsg.com"`
EmailInvoiceCreatedReceiver string `env:"STARHUB_SERVER_EMAIL_INVOICE_CREATED_RECEIVER" default:"contact@opencsg.com"`
RepoSyncTimezone string `env:"STARHUB_SERVER_REPO_SYNC_TIMEZONE" default:"Asia/Shanghai"`
RepoSyncChatID string `env:"STARHUB_SERVER_REPO_SYNC_CHAT_ID" default:""`
NotificationRetryCount int `env:"STARHUB_SERVER_NOTIFIER_NOTIFICATION_RETRY_COUNT" default:"3"`
BroadcastUserPageSize int `env:"STARHUB_SERVER_NOTIFIER_BROADCAST_USER_PAGE_SIZE" default:"100"`
BroadcastEmailPageSize int `env:"STARHUB_SERVER_NOTIFIER_BROADCAST_EMAIL_PAGE_SIZE" default:"100"`
MsgDispatcherCount int `env:"STARHUB_SERVER_NOTIFIER_MSG_DISPATCHER_COUNT" default:"20"`
HighPriorityMsgBufferSize int `env:"STARHUB_SERVER_NOTIFIER_HIGH_PRIORITY_MSG_BUFFER_SIZE" default:"100"`
NormalPriorityMsgBufferSize int `env:"STARHUB_SERVER_NOTIFIER_NORMAL_PRIORITY_MSG_BUFFER_SIZE" default:"50"`
HighPriorityMsgAckWait int `env:"STARHUB_SERVER_NOTIFIER_HIGH_PRIORITY_MSG_ACK_WAIT" default:"60"`
NormalPriorityMsgAckWait int `env:"STARHUB_SERVER_NOTIFIER_NORMAL_PRIORITY_MSG_ACK_WAIT" default:"60"`
HighPriorityMsgMaxDeliver int `env:"STARHUB_SERVER_NOTIFIER_HIGH_PRIORITY_MSG_MAX_DELIVER" default:"6"`
NormalPriorityMsgMaxDeliver int `env:"STARHUB_SERVER_NOTIFIER_NORMAL_PRIORITY_MSG_MAX_DELIVER" default:"6"`
DeduplicateWindow int `env:"STARHUB_SERVER_NOTIFIER_DEDUPLICATE_WINDOW" default:"5"` // 5 seconds

// SMS Provider Configuration
SMSProvider string `env:"STARHUB_SERVER_NOTIFIER_SMS_PROVIDER" default:"aliyun"` // aliyun, tencent, huawei

SMSSign string `env:"STARHUB_SERVER_NOTIFIER_SMS_SIGN" default:""`
SMSAccessKeyID string `env:"STARHUB_SERVER_NOTIFIER_SMS_ACCESS_KEY_ID" default:""`
SMSAccessKeySecret string `env:"STARHUB_SERVER_NOTIFIER_SMS_ACCESS_KEY_SECRET" default:""`
SMSTemplateCodeForVerifyCodeCN string `env:"STARHUB_SERVER_NOTIFIER_SMS_TEMPLATE_CODE_FOR_VERIFY_CODE_CN" default:""`
SMSTemplateCodeForVerifyCodeOversea string `env:"STARHUB_SERVER_NOTIFIER_SMS_TEMPLATE_CODE_FOR_VERIFY_CODE_OVERSEA" default:""`

// Alibaba Cloud SMS Configuration (Backward Compatibility)
SMSAccessKeyID string `env:"STARHUB_SERVER_NOTIFIER_SMS_ACCESS_KEY_ID"`
SMSAccessKeySecret string `env:"STARHUB_SERVER_NOTIFIER_SMS_ACCESS_KEY_SECRET"`
SMSRegion string `env:"STARHUB_SERVER_NOTIFIER_SMS_REGION" default:"ap-guangzhou"`
SMSEndpoint string `env:"STARHUB_SERVER_NOTIFIER_SMS_ENDPOINT"`
SMSAppID string `env:"STARHUB_SERVER_NOTIFIER_SMS_APP_ID"` // Tencent SdkAppId / Huawei ProjectId
}

Prometheus struct {
Expand Down Expand Up @@ -623,6 +632,7 @@ func loadConfig() (*Config, error) {
if len(cfg.UniqueServiceName) < 1 {
cfg.UniqueServiceName = genServiceName()
}

return cfg, err
}

Expand Down
10 changes: 6 additions & 4 deletions common/types/notification.go
Original file line number Diff line number Diff line change
Expand Up @@ -322,8 +322,10 @@ type EmailWeeklyRechargesNotification struct {
}

type SMSReq struct {
PhoneNumbers []string `json:"phone_numbers"`
SignName string `json:"sign_name"`
TemplateCode string `json:"template_code"`
TemplateParam string `json:"template_param"`
PhoneNumbers []string `json:"phone_numbers"`
SignName string `json:"sign_name"`
TemplateCode string `json:"template_code"`

Params []string `json:"params"`
MapParams map[string]string `json:"map_params"`
}
7 changes: 6 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ require (
github.com/golang/mock v1.7.0-rc.1
github.com/google/wire v0.6.0
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.190
github.com/jarcoal/httpmock v1.3.1
github.com/larksuite/oapi-sdk-go/v3 v3.4.18
github.com/looplab/fsm v1.0.3
Expand Down Expand Up @@ -61,6 +62,8 @@ require (
github.com/swaggo/files v1.0.1
github.com/swaggo/gin-swagger v1.6.0
github.com/swaggo/swag v1.16.2
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.3.69
github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms v1.3.57
github.com/testcontainers/testcontainers-go v0.40.0
github.com/testcontainers/testcontainers-go/modules/postgres v0.40.0
github.com/tidwall/sjson v1.2.5
Expand Down Expand Up @@ -174,6 +177,7 @@ require (
github.com/go-pay/xlog v0.0.3 // indirect
github.com/go-pay/xtime v0.0.2 // indirect
github.com/go-sql-driver/mysql v1.9.1 // indirect
github.com/goccy/go-yaml v1.9.8 // indirect
github.com/gocql/gocql v1.7.0 // indirect
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
Expand Down Expand Up @@ -267,6 +271,7 @@ require (
github.com/yusufpapurcu/wmi v1.2.4 // indirect
gitlab.com/gitlab-org/go/reopen v1.0.0 // indirect
gitlab.com/gitlab-org/labkit v1.21.2 // indirect
go.mongodb.org/mongo-driver v1.13.1 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib/detectors/gcp v1.39.0 // indirect
Expand Down Expand Up @@ -352,7 +357,7 @@ require (
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/jmespath/go-jmespath v0.4.1-0.20220621161143-b0104c826a24 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/json-iterator/go v1.1.13-0.20220915233716-71ac16282d12 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
Expand Down
Loading
Loading