mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 10:20:29 -06:00
7e1b45ba31
* Feature Toggles API: Trigger webhook call when updating * update status code error check * lint - handle Close() error * Rename update webhook config * fix tests
39 lines
1.4 KiB
Go
39 lines
1.4 KiB
Go
package setting
|
|
|
|
import (
|
|
"github.com/grafana/grafana/pkg/util"
|
|
)
|
|
|
|
type FeatureMgmtSettings struct {
|
|
HiddenToggles map[string]struct{}
|
|
ReadOnlyToggles map[string]struct{}
|
|
AllowEditing bool
|
|
UpdateWebhook string
|
|
UpdateWebhookToken string
|
|
}
|
|
|
|
func (cfg *Cfg) readFeatureManagementConfig() {
|
|
section := cfg.Raw.Section("feature_management")
|
|
|
|
hiddenToggles := make(map[string]struct{})
|
|
readOnlyToggles := make(map[string]struct{})
|
|
|
|
// parse the comma separated list in `hidden_toggles`.
|
|
hiddenTogglesStr := valueAsString(section, "hidden_toggles", "")
|
|
for _, feature := range util.SplitString(hiddenTogglesStr) {
|
|
hiddenToggles[feature] = struct{}{}
|
|
}
|
|
|
|
// parse the comma separated list in `read_only_toggles`.
|
|
readOnlyTogglesStr := valueAsString(section, "read_only_toggles", "")
|
|
for _, feature := range util.SplitString(readOnlyTogglesStr) {
|
|
readOnlyToggles[feature] = struct{}{}
|
|
}
|
|
|
|
cfg.FeatureManagement.HiddenToggles = hiddenToggles
|
|
cfg.FeatureManagement.ReadOnlyToggles = readOnlyToggles
|
|
cfg.FeatureManagement.AllowEditing = cfg.SectionWithEnvOverrides("feature_management").Key("allow_editing").MustBool(false)
|
|
cfg.FeatureManagement.UpdateWebhook = cfg.SectionWithEnvOverrides("feature_management").Key("update_webhook").MustString("")
|
|
cfg.FeatureManagement.UpdateWebhookToken = cfg.SectionWithEnvOverrides("feature_management").Key("update_webhook_token").MustString("")
|
|
}
|