package cli import ( "fmt" "sort" "strconv" ) // settingDef describes a configurable global setting for `config list`/`set`. type settingDef struct { desc string validate func(string) error } // settingsRegistry is the authoritative set of valid config keys. `config set` // rejects keys absent here; `config list` enumerates them. var settingsRegistry = map[string]settingDef{ "audit_retention_days": { desc: "Days to keep audit-log entries (integer >= 0)", validate: func(v string) error { n, err := strconv.Atoi(v) if err != nil || n < 0 { return fmt.Errorf("must be an integer >= 0, got %q", v) } return nil }, }, } // settingKeys returns the registry keys in stable sorted order. func settingKeys() []string { ks := make([]string, 0, len(settingsRegistry)) for k := range settingsRegistry { ks = append(ks, k) } sort.Strings(ks) return ks }