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

pull/50504/head
Ryan McKinley 3 years ago committed by GitHub
parent 8318876b34
commit fdf67276ea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 20
      packages/grafana-runtime/src/config.ts
  2. 4
      public/app/features/search/service/searcher.ts

@ -153,7 +153,27 @@ 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 || {

@ -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!;

Loading…
Cancel
Save