FeatureFlags: manage feature flags outside of settings.Cfg (#43692)

This commit is contained in:
Ryan McKinley
2022-01-20 13:42:05 -08:00
committed by GitHub
parent 7fbc7d019a
commit f94c0decbd
65 changed files with 1244 additions and 252 deletions
@@ -40,7 +40,6 @@ export interface LicenseInfo {
licenseUrl: string;
stateInfo: string;
edition: GrafanaEdition;
enabledFeatures: { [key: string]: boolean };
}
/**
@@ -1,3 +1,9 @@
// NOTE: This file was auto generated. DO NOT EDIT DIRECTLY!
// To change feature flags, edit:
// pkg/services/featuremgmt/registry.go
// Then run tests in:
// pkg/services/featuremgmt/toggles_gen_test.go
/**
* Describes available feature toggles in Grafana. These can be configured via
* conf/custom.ini to enable features under development or not yet available in
@@ -1,6 +1,12 @@
import { FeatureToggles } from '@grafana/data';
import { config } from '../config';
export const featureEnabled = (feature: string): boolean => {
const { enabledFeatures } = config.licenseInfo;
return enabledFeatures && enabledFeatures[feature];
export const featureEnabled = (feature: boolean | undefined | keyof FeatureToggles): boolean => {
if (feature === true || feature === false) {
return feature;
}
if (feature == null || !config?.featureToggles) {
return false;
}
return Boolean(config.featureToggles[feature]);
};