feat: 增加代理密钥字段

This commit is contained in:
tbphp
2025-07-24 16:07:41 +08:00
parent dd43bb8a9e
commit cdfc0b07aa
4 changed files with 9 additions and 2 deletions

View File

@@ -94,7 +94,7 @@ func (a *App) Start() error {
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)
}
logrus.Info("System settings initialized in DB.")

View File

@@ -108,7 +108,7 @@ func (sm *SystemSettingsManager) Stop(ctx context.Context) {
}
// EnsureSettingsInitialized 确保数据库中存在所有系统设置的记录。
func (sm *SystemSettingsManager) EnsureSettingsInitialized() error {
func (sm *SystemSettingsManager) EnsureSettingsInitialized(authConfig types.AuthConfig) error {
defaultSettings := utils.DefaultSystemSettings()
metadata := utils.GenerateSettingsMetadata(&defaultSettings)
@@ -128,6 +128,11 @@ func (sm *SystemSettingsManager) EnsureSettingsInitialized() error {
}
value = fmt.Sprintf("http://%s:%s", host, port)
}
if meta.Key == "proxy_keys" {
value = authConfig.Key
}
setting := models.SystemSetting{
SettingKey: meta.Key,
SettingValue: value,

View File

@@ -45,6 +45,7 @@ type Group struct {
Name string `gorm:"type:varchar(255);not null;unique" json:"name"`
Endpoint string `gorm:"-" json:"endpoint"`
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"`
Upstreams datatypes.JSON `gorm:"type:json;not null" json:"upstreams"`
ValidationEndpoint string `gorm:"type:varchar(255)" json:"validation_endpoint"`

View File

@@ -21,6 +21,7 @@ type SystemSettings struct {
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"`
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"`