Feature toggles management: Define get feature toggles api (#72106)

* Feature Toggle Management: Define get feature toggles api

* lint
This commit is contained in:
João Calisto
2023-07-24 16:12:59 -04:00
committed by GitHub
parent 425c92a92b
commit 4ba83173ea
11 changed files with 206 additions and 2 deletions
+30
View File
@@ -0,0 +1,30 @@
package api
import (
"net/http"
"github.com/grafana/grafana/pkg/api/response"
contextmodel "github.com/grafana/grafana/pkg/services/contexthandler/model"
)
func (hs *HTTPServer) GetFeatureToggles(ctx *contextmodel.ReqContext) response.Response {
featureMgmtCfg := hs.Cfg.FeatureManagement
features := hs.Features.GetFlags()
enabledFeatures := hs.Features.GetEnabled(ctx.Req.Context())
for i := 0; i < len(features); {
ft := features[i]
if _, ok := featureMgmtCfg.HiddenToggles[ft.Name]; ok {
features = append(features[:i], features[i+1:]...) // remove feature
continue
}
if _, ok := featureMgmtCfg.ReadOnlyToggles[ft.Name]; ok {
features[i].ReadOnly = true
}
features[i].Enabled = enabledFeatures[ft.Name]
i++
}
return response.JSON(http.StatusOK, features)
}