first commit
This commit is contained in:
56
framework/configstore/tables/config.go
Normal file
56
framework/configstore/tables/config.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package tables
|
||||
|
||||
import "github.com/maximhq/bifrost/core/network"
|
||||
|
||||
const (
|
||||
ConfigAdminUsernameKey = "admin_username"
|
||||
ConfigAdminPasswordKey = "admin_password"
|
||||
ConfigIsAuthEnabledKey = "is_auth_enabled"
|
||||
ConfigDisableAuthOnInferenceKey = "disable_auth_on_inference"
|
||||
ConfigProxyKey = "proxy_config"
|
||||
ConfigRestartRequiredKey = "restart_required"
|
||||
ConfigHeaderFilterKey = "header_filter_config"
|
||||
)
|
||||
|
||||
// RestartRequiredConfig represents the restart required configuration
|
||||
// This is set when a config change requires a server restart to take effect
|
||||
type RestartRequiredConfig struct {
|
||||
Required bool `json:"required"`
|
||||
Reason string `json:"reason,omitempty"`
|
||||
}
|
||||
|
||||
// GlobalProxyConfig represents the global proxy configuration
|
||||
type GlobalProxyConfig struct {
|
||||
Enabled bool `json:"enabled"`
|
||||
Type network.GlobalProxyType `json:"type"` // "http", "socks5", "tcp"
|
||||
URL string `json:"url"` // Proxy URL (e.g., http://proxy.example.com:8080)
|
||||
Username string `json:"username,omitempty"` // Optional authentication username
|
||||
Password string `json:"password,omitempty"` // Optional authentication password
|
||||
NoProxy string `json:"no_proxy,omitempty"` // Comma-separated list of hosts to bypass proxy
|
||||
Timeout int `json:"timeout,omitempty"` // Connection timeout in seconds
|
||||
SkipTLSVerify bool `json:"skip_tls_verify,omitempty"` // Skip TLS certificate verification
|
||||
// Entity enablement flags
|
||||
EnableForSCIM bool `json:"enable_for_scim"` // Enable proxy for SCIM requests (enterprise only)
|
||||
EnableForInference bool `json:"enable_for_inference"` // Enable proxy for inference requests
|
||||
EnableForAPI bool `json:"enable_for_api"` // Enable proxy for API requests
|
||||
}
|
||||
|
||||
// GlobalHeaderFilterConfig represents global header filtering configuration
|
||||
// for headers forwarded to LLM providers via the x-bf-eh-* prefix.
|
||||
// Filter logic:
|
||||
// - If allowlist is non-empty, only headers in the allowlist are forwarded
|
||||
// - If denylist is non-empty, headers in the denylist are dropped
|
||||
// - If both are non-empty, allowlist takes precedence first, then denylist filters the result
|
||||
type GlobalHeaderFilterConfig struct {
|
||||
Allowlist []string `json:"allowlist,omitempty"` // If non-empty, only these headers are allowed
|
||||
Denylist []string `json:"denylist,omitempty"` // Headers to always block
|
||||
}
|
||||
|
||||
// TableGovernanceConfig represents generic configuration key-value pairs
|
||||
type TableGovernanceConfig struct {
|
||||
Key string `gorm:"primaryKey;type:varchar(255)" json:"key"`
|
||||
Value string `gorm:"type:text" json:"value"`
|
||||
}
|
||||
|
||||
// TableName sets the table name for each model
|
||||
func (TableGovernanceConfig) TableName() string { return "governance_config" }
|
||||
Reference in New Issue
Block a user