优化结构

This commit is contained in:
Yvan
2026-08-25 00:20:29 +08:00
parent 969afee284
commit ee179d6b34
49 changed files with 289 additions and 591 deletions
+18 -39
View File
@@ -322,12 +322,12 @@ func maskConfigSecrets(value *config.Config) {
return
}
if value.Admin.JWT != nil && value.Admin.JWT.SigningKey != "" {
value.Admin.JWT.SigningKey = "******"
value.Admin.JWT.SigningKey = config.MaskedSecret
}
if value.Admin.Email != nil && value.Admin.Email.Secret != "" {
value.Admin.Email.Secret = "******"
value.Admin.Email.Secret = config.MaskedSecret
}
maskStorageSecrets(value.Admin.Storage)
config.MaskStorageSecrets(value.Admin.Storage)
}
func maskDataSecrets(value *config.Data) {
@@ -335,24 +335,24 @@ func maskDataSecrets(value *config.Data) {
return
}
if value.Database != nil {
value.Database.Password = "******"
value.Database.Password = config.MaskedSecret
value.Database.Source = ""
}
if value.Redis != nil {
value.Redis.Password = "******"
value.Redis.Password = config.MaskedSecret
}
if value.Mongo != nil {
value.Mongo.Password = "******"
value.Mongo.Password = config.MaskedSecret
}
for _, item := range value.DatabaseList {
if item != nil {
item.Password = "******"
item.Password = config.MaskedSecret
item.Source = ""
}
}
for _, item := range value.RedisList {
if item != nil {
item.Password = "******"
item.Password = config.MaskedSecret
}
}
}
@@ -365,10 +365,10 @@ func preserveConfigSecrets(next, current *config.Config) {
if next.Admin == nil || current.Admin == nil {
return
}
if next.Admin.JWT != nil && current.Admin.JWT != nil && maskedSecret(next.Admin.JWT.SigningKey) {
if next.Admin.JWT != nil && current.Admin.JWT != nil && config.IsMaskedSecret(next.Admin.JWT.SigningKey) {
next.Admin.JWT.SigningKey = current.Admin.JWT.SigningKey
}
if next.Admin.Email != nil && current.Admin.Email != nil && maskedSecret(next.Admin.Email.Secret) {
if next.Admin.Email != nil && current.Admin.Email != nil && config.IsMaskedSecret(next.Admin.Email.Secret) {
next.Admin.Email.Secret = current.Admin.Email.Secret
}
preserveStorageSecrets(next.Admin.Storage, current.Admin.Storage)
@@ -379,17 +379,17 @@ func preserveDataSecrets(next, current *config.Data) {
return
}
if next.Database != nil && current.Database != nil {
if maskedSecret(next.Database.Password) {
if config.IsMaskedSecret(next.Database.Password) {
next.Database.Password = current.Database.Password
}
if next.Database.Source == "" {
next.Database.Source = current.Database.Source
}
}
if next.Redis != nil && current.Redis != nil && maskedSecret(next.Redis.Password) {
if next.Redis != nil && current.Redis != nil && config.IsMaskedSecret(next.Redis.Password) {
next.Redis.Password = current.Redis.Password
}
if next.Mongo != nil && current.Mongo != nil && maskedSecret(next.Mongo.Password) {
if next.Mongo != nil && current.Mongo != nil && config.IsMaskedSecret(next.Mongo.Password) {
next.Mongo.Password = current.Mongo.Password
}
preserveDatabaseListSecrets(next.DatabaseList, current.DatabaseList)
@@ -414,7 +414,7 @@ func preserveDatabaseListSecrets(next, current []*config.Database) {
if previous == nil {
continue
}
if maskedSecret(item.Password) {
if config.IsMaskedSecret(item.Password) {
item.Password = previous.Password
}
if item.Source == "" {
@@ -438,43 +438,22 @@ func preserveRedisListSecrets(next, current []*config.Redis) {
if previous == nil && index < len(current) {
previous = current[index]
}
if previous != nil && maskedSecret(item.Password) {
if previous != nil && config.IsMaskedSecret(item.Password) {
item.Password = previous.Password
}
}
}
func maskedSecret(value string) bool { return value == "" || value == "******" }
func objectStores(value *config.Storage) []*config.ObjectStore {
if value == nil {
return nil
}
return []*config.ObjectStore{value.AliyunOSS, value.HuaweiOBS, value.TencentCOS, value.AWSS3, value.CloudflareR2, value.Minio}
}
func maskStorageSecrets(value *config.Storage) {
if value == nil {
return
}
if value.Qiniu != nil && value.Qiniu.SecretKey != "" {
value.Qiniu.SecretKey = "******"
}
for _, item := range objectStores(value) {
if item != nil && item.SecretKey != "" {
item.SecretKey = "******"
}
}
}
func preserveStorageSecrets(next, current *config.Storage) {
if next == nil || current == nil {
return
}
if next.Qiniu != nil && current.Qiniu != nil && maskedSecret(next.Qiniu.SecretKey) {
if next.Qiniu != nil && current.Qiniu != nil && config.IsMaskedSecret(next.Qiniu.SecretKey) {
next.Qiniu.SecretKey = current.Qiniu.SecretKey
}
nextItems, currentItems := objectStores(next), objectStores(current)
nextItems, currentItems := config.ObjectStores(next), config.ObjectStores(current)
for index := range nextItems {
if nextItems[index] != nil && currentItems[index] != nil && maskedSecret(nextItems[index].SecretKey) {
if nextItems[index] != nil && currentItems[index] != nil && config.IsMaskedSecret(nextItems[index].SecretKey) {
nextItems[index].SecretKey = currentItems[index].SecretKey
}
}