mirror of
https://github.com/lukaszraczylo/kportal.git
synced 2026-07-16 08:04:43 +00:00
Enhancement: Empty config
When user starts kportal for the first time, and there is no config file, kportal should create an empty config file with default values and empty forwarding rules, so that user can easily edit the config file and add their own rules.
This commit is contained in:
@@ -37,6 +37,13 @@ func NewValidator() *Validator {
|
||||
|
||||
// ValidateConfig validates the entire configuration and returns all errors found.
|
||||
func (v *Validator) ValidateConfig(cfg *Config) []ValidationError {
|
||||
return v.ValidateConfigWithOptions(cfg, false)
|
||||
}
|
||||
|
||||
// ValidateConfigWithOptions validates configuration with configurable strictness.
|
||||
// When allowEmpty is true, empty configurations (no contexts/forwards) are allowed.
|
||||
// This is useful for newly created config files where the user will add forwards via the TUI.
|
||||
func (v *Validator) ValidateConfigWithOptions(cfg *Config, allowEmpty bool) []ValidationError {
|
||||
var errs []ValidationError
|
||||
|
||||
if cfg == nil {
|
||||
@@ -46,6 +53,12 @@ func (v *Validator) ValidateConfig(cfg *Config) []ValidationError {
|
||||
}}
|
||||
}
|
||||
|
||||
// If empty configs are allowed and this config is empty, skip structure validation
|
||||
if allowEmpty && cfg.IsEmpty() {
|
||||
// Still validate health check and reliability if present (they don't require forwards)
|
||||
return errs
|
||||
}
|
||||
|
||||
// Validate structure
|
||||
errs = append(errs, v.validateStructure(cfg)...)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user