feat: 增加代理密钥字段
This commit is contained in:
@@ -94,7 +94,7 @@ func (a *App) Start() error {
|
|||||||
logrus.Info("Database auto-migration completed.")
|
logrus.Info("Database auto-migration completed.")
|
||||||
|
|
||||||
// 初始化系统设置
|
// 初始化系统设置
|
||||||
if err := a.settingsManager.EnsureSettingsInitialized(); err != nil {
|
if err := a.settingsManager.EnsureSettingsInitialized(a.configManager.GetAuthConfig()); err != nil {
|
||||||
return fmt.Errorf("failed to initialize system settings: %w", err)
|
return fmt.Errorf("failed to initialize system settings: %w", err)
|
||||||
}
|
}
|
||||||
logrus.Info("System settings initialized in DB.")
|
logrus.Info("System settings initialized in DB.")
|
||||||
|
@@ -108,7 +108,7 @@ func (sm *SystemSettingsManager) Stop(ctx context.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// EnsureSettingsInitialized 确保数据库中存在所有系统设置的记录。
|
// EnsureSettingsInitialized 确保数据库中存在所有系统设置的记录。
|
||||||
func (sm *SystemSettingsManager) EnsureSettingsInitialized() error {
|
func (sm *SystemSettingsManager) EnsureSettingsInitialized(authConfig types.AuthConfig) error {
|
||||||
defaultSettings := utils.DefaultSystemSettings()
|
defaultSettings := utils.DefaultSystemSettings()
|
||||||
metadata := utils.GenerateSettingsMetadata(&defaultSettings)
|
metadata := utils.GenerateSettingsMetadata(&defaultSettings)
|
||||||
|
|
||||||
@@ -128,6 +128,11 @@ func (sm *SystemSettingsManager) EnsureSettingsInitialized() error {
|
|||||||
}
|
}
|
||||||
value = fmt.Sprintf("http://%s:%s", host, port)
|
value = fmt.Sprintf("http://%s:%s", host, port)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if meta.Key == "proxy_keys" {
|
||||||
|
value = authConfig.Key
|
||||||
|
}
|
||||||
|
|
||||||
setting := models.SystemSetting{
|
setting := models.SystemSetting{
|
||||||
SettingKey: meta.Key,
|
SettingKey: meta.Key,
|
||||||
SettingValue: value,
|
SettingValue: value,
|
||||||
|
@@ -45,6 +45,7 @@ type Group struct {
|
|||||||
Name string `gorm:"type:varchar(255);not null;unique" json:"name"`
|
Name string `gorm:"type:varchar(255);not null;unique" json:"name"`
|
||||||
Endpoint string `gorm:"-" json:"endpoint"`
|
Endpoint string `gorm:"-" json:"endpoint"`
|
||||||
DisplayName string `gorm:"type:varchar(255)" json:"display_name"`
|
DisplayName string `gorm:"type:varchar(255)" json:"display_name"`
|
||||||
|
ProxyKeys string `gorm:"type:text" json:"proxy_keys"`
|
||||||
Description string `gorm:"type:varchar(512)" json:"description"`
|
Description string `gorm:"type:varchar(512)" json:"description"`
|
||||||
Upstreams datatypes.JSON `gorm:"type:json;not null" json:"upstreams"`
|
Upstreams datatypes.JSON `gorm:"type:json;not null" json:"upstreams"`
|
||||||
ValidationEndpoint string `gorm:"type:varchar(255)" json:"validation_endpoint"`
|
ValidationEndpoint string `gorm:"type:varchar(255)" json:"validation_endpoint"`
|
||||||
|
@@ -21,6 +21,7 @@ type SystemSettings struct {
|
|||||||
AppUrl string `json:"app_url" default:"http://localhost:3001" name:"项目地址" category:"基础参数" desc:"项目的基础 URL,用于拼接分组终端节点地址。系统配置优先于环境变量 APP_URL。"`
|
AppUrl string `json:"app_url" default:"http://localhost:3001" name:"项目地址" category:"基础参数" desc:"项目的基础 URL,用于拼接分组终端节点地址。系统配置优先于环境变量 APP_URL。"`
|
||||||
RequestLogRetentionDays int `json:"request_log_retention_days" default:"7" name:"日志保留时长(天)" category:"基础参数" desc:"请求日志在数据库中的保留天数,0为不清理日志。" validate:"min=0"`
|
RequestLogRetentionDays int `json:"request_log_retention_days" default:"7" name:"日志保留时长(天)" category:"基础参数" desc:"请求日志在数据库中的保留天数,0为不清理日志。" validate:"min=0"`
|
||||||
RequestLogWriteIntervalMinutes int `json:"request_log_write_interval_minutes" default:"1" name:"日志延迟写入周期(分钟)" category:"基础参数" desc:"请求日志从缓存写入数据库的周期(分钟),0为实时写入数据。" validate:"min=0"`
|
RequestLogWriteIntervalMinutes int `json:"request_log_write_interval_minutes" default:"1" name:"日志延迟写入周期(分钟)" category:"基础参数" desc:"请求日志从缓存写入数据库的周期(分钟),0为实时写入数据。" validate:"min=0"`
|
||||||
|
ProxyKeys string `json:"proxy_keys" name:"全局代理密钥" category:"基础参数" desc:"全局代理密钥,用于访问所有代理端点。多个密钥请用逗号分隔。"`
|
||||||
|
|
||||||
// 请求设置
|
// 请求设置
|
||||||
RequestTimeout int `json:"request_timeout" default:"600" name:"请求超时(秒)" category:"请求设置" desc:"转发请求的完整生命周期超时(秒)等。" validate:"min=1"`
|
RequestTimeout int `json:"request_timeout" default:"600" name:"请求超时(秒)" category:"请求设置" desc:"转发请求的完整生命周期超时(秒)等。" validate:"min=1"`
|
||||||
|
Reference in New Issue
Block a user