mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
FeatureToggles: Allow changing prod env safe feature toggles via URL (#84034)
This commit is contained in:
parent
0236053f70
commit
429ef9559c
@ -203,10 +203,7 @@ export class GrafanaBootConfig implements GrafanaConfig {
|
||||
systemDateFormats.update(this.dateFormats);
|
||||
}
|
||||
|
||||
if (this.buildInfo.env === 'development') {
|
||||
overrideFeatureTogglesFromUrl(this);
|
||||
}
|
||||
|
||||
overrideFeatureTogglesFromUrl(this);
|
||||
overrideFeatureTogglesFromLocalStorage(this);
|
||||
|
||||
if (this.featureToggles.disableAngular) {
|
||||
@ -243,11 +240,28 @@ function overrideFeatureTogglesFromUrl(config: GrafanaBootConfig) {
|
||||
return;
|
||||
}
|
||||
|
||||
const isLocalDevEnv = config.buildInfo.env === 'development';
|
||||
|
||||
const prodUrlAllowedFeatureFlags = new Set([
|
||||
'autoMigrateOldPanels',
|
||||
'autoMigrateGraphPanel',
|
||||
'autoMigrateTablePanel',
|
||||
'autoMigratePiechartPanel',
|
||||
'autoMigrateWorldmapPanel',
|
||||
'autoMigrateStatPanel',
|
||||
'disableAngular',
|
||||
]);
|
||||
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
params.forEach((value, key) => {
|
||||
if (key.startsWith('__feature.')) {
|
||||
const featureToggles = config.featureToggles as Record<string, boolean>;
|
||||
const featureName = key.substring(10);
|
||||
|
||||
if (!isLocalDevEnv && !prodUrlAllowedFeatureFlags.has(featureName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const toggleState = value === 'true' || value === ''; // browser rewrites true as ''
|
||||
if (toggleState !== featureToggles[key]) {
|
||||
featureToggles[featureName] = toggleState;
|
||||
|
Loading…
Reference in New Issue
Block a user