FeatureToggles: Support changing feature toggles with URL parameters (#50275)

This commit is contained in:
Ryan McKinley 2022-06-09 02:42:38 -07:00 committed by GitHub
parent 8318876b34
commit fdf67276ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 3 deletions

View File

@ -153,9 +153,29 @@ export class GrafanaBootConfig implements GrafanaConfig {
if (this.dateFormats) {
systemDateFormats.update(this.dateFormats);
}
overrideFeatureTogglesFromUrl(this);
}
}
function overrideFeatureTogglesFromUrl(config: GrafanaBootConfig) {
if (window.location.href.indexOf('__feature') === -1) {
return;
}
const params = new URLSearchParams(window.location.search);
params.forEach((value, key) => {
if (key.startsWith('__feature.')) {
const featureName = key.substring(10);
const toggleState = value === 'true';
if (toggleState !== config.featureToggles[key]) {
config.featureToggles[featureName] = toggleState;
console.log(`Setting feature toggle ${featureName} = ${toggleState}`);
}
}
});
}
const bootData = (window as any).grafanaBootData || {
settings: {},
user: {},

View File

@ -8,9 +8,7 @@ let searcher: GrafanaSearcher | undefined = undefined;
export function getGrafanaSearcher(): GrafanaSearcher {
if (!searcher) {
const useBluge =
config.featureToggles.panelTitleSearch && // set in system configs
window.location.search.indexOf('index=sql') < 0; // or URL override
const useBluge = config.featureToggles.panelTitleSearch;
searcher = useBluge ? new BlugeSearcher() : new SQLSearcher();
}
return searcher!;