From 2f558e8cb7583a7b7f60a7fe780c586fcbab80bc Mon Sep 17 00:00:00 2001 From: Levente Balogh Date: Mon, 8 Sep 2025 09:08:09 +0200 Subject: [PATCH] Grafana Schema: Extend the `VariableHide` enum (#110579) * feat: extend the `VariableHide` enum with a new option * feat: extend the `VariableHide` for v1 --- apps/dashboard/kinds/v2beta1/dashboard_spec.cue | 4 ++-- .../pkg/apis/dashboard/v0alpha1/dashboard_kind.cue | 4 ++-- .../pkg/apis/dashboard/v1beta1/dashboard_kind.cue | 4 ++-- .../pkg/apis/dashboard/v2beta1/dashboard_spec.cue | 4 ++-- .../pkg/apis/dashboard/v2beta1/dashboard_spec_gen.go | 9 +++++---- kinds/dashboard/dashboard_kind.cue | 4 ++-- packages/grafana-data/src/types/templateVars.ts | 1 + .../src/raw/dashboard/x/dashboard_types.gen.ts | 3 ++- .../src/schema/dashboard/v2beta1/types.spec.gen.ts | 4 ++-- packages/grafana-schema/src/veneer/dashboard.types.ts | 1 + pkg/kinds/dashboard/dashboard_spec_gen.go | 9 +++++---- 11 files changed, 26 insertions(+), 21 deletions(-) diff --git a/apps/dashboard/kinds/v2beta1/dashboard_spec.cue b/apps/dashboard/kinds/v2beta1/dashboard_spec.cue index 4618bc87f86..cc240be9a11 100644 --- a/apps/dashboard/kinds/v2beta1/dashboard_spec.cue +++ b/apps/dashboard/kinds/v2beta1/dashboard_spec.cue @@ -684,8 +684,8 @@ VariableSort: "disabled" | "alphabeticalAsc" | "alphabeticalDesc" | "numericalAs VariableRefresh: *"never" | "onDashboardLoad" | "onTimeRangeChanged" // Determine if the variable shows on dashboard -// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing). -VariableHide: *"dontHide" | "hideLabel" | "hideVariable" +// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing), `inControlsMenu` (show in a drop-down menu). +VariableHide: *"dontHide" | "hideLabel" | "hideVariable" | "inControlsMenu" // Determine the origin of the adhoc variable filter FilterOrigin: "dashboard" diff --git a/apps/dashboard/pkg/apis/dashboard/v0alpha1/dashboard_kind.cue b/apps/dashboard/pkg/apis/dashboard/v0alpha1/dashboard_kind.cue index 6c6b1f3517a..f0797bc480b 100644 --- a/apps/dashboard/pkg/apis/dashboard/v0alpha1/dashboard_kind.cue +++ b/apps/dashboard/pkg/apis/dashboard/v0alpha1/dashboard_kind.cue @@ -243,8 +243,8 @@ lineage: schemas: [{ #VariableRefresh: 0 | 1 | 2 @cuetsy(kind="enum",memberNames="never|onDashboardLoad|onTimeRangeChanged") // Determine if the variable shows on dashboard - // Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing). - #VariableHide: 0 | 1 | 2 @cuetsy(kind="enum",memberNames="dontHide|hideLabel|hideVariable") @grafana(TSVeneer="type") + // Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu). + #VariableHide: 0 | 1 | 2 | 3 @cuetsy(kind="enum",memberNames="dontHide|hideLabel|hideVariable|inControlsMenu") @grafana(TSVeneer="type") // Sort variable options // Accepted values are: diff --git a/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue index 6c6b1f3517a..f0797bc480b 100644 --- a/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue +++ b/apps/dashboard/pkg/apis/dashboard/v1beta1/dashboard_kind.cue @@ -243,8 +243,8 @@ lineage: schemas: [{ #VariableRefresh: 0 | 1 | 2 @cuetsy(kind="enum",memberNames="never|onDashboardLoad|onTimeRangeChanged") // Determine if the variable shows on dashboard - // Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing). - #VariableHide: 0 | 1 | 2 @cuetsy(kind="enum",memberNames="dontHide|hideLabel|hideVariable") @grafana(TSVeneer="type") + // Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu). + #VariableHide: 0 | 1 | 2 | 3 @cuetsy(kind="enum",memberNames="dontHide|hideLabel|hideVariable|inControlsMenu") @grafana(TSVeneer="type") // Sort variable options // Accepted values are: diff --git a/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec.cue b/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec.cue index 071a920ba19..ecca9d311e9 100644 --- a/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec.cue +++ b/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec.cue @@ -688,8 +688,8 @@ VariableSort: "disabled" | "alphabeticalAsc" | "alphabeticalDesc" | "numericalAs VariableRefresh: *"never" | "onDashboardLoad" | "onTimeRangeChanged" // Determine if the variable shows on dashboard -// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing). -VariableHide: *"dontHide" | "hideLabel" | "hideVariable" +// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing), `inControlsMenu` (show in a drop-down menu). +VariableHide: *"dontHide" | "hideLabel" | "hideVariable" | "inControlsMenu" // Determine the origin of the adhoc variable filter FilterOrigin: "dashboard" diff --git a/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec_gen.go b/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec_gen.go index 7096c8b2cc1..220813ac547 100644 --- a/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec_gen.go +++ b/apps/dashboard/pkg/apis/dashboard/v2beta1/dashboard_spec_gen.go @@ -1282,14 +1282,15 @@ func NewDashboardVariableOption() *DashboardVariableOption { } // Determine if the variable shows on dashboard -// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing). +// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing), `inControlsMenu` (show in a drop-down menu). // +k8s:openapi-gen=true type DashboardVariableHide string const ( - DashboardVariableHideDontHide DashboardVariableHide = "dontHide" - DashboardVariableHideHideLabel DashboardVariableHide = "hideLabel" - DashboardVariableHideHideVariable DashboardVariableHide = "hideVariable" + DashboardVariableHideDontHide DashboardVariableHide = "dontHide" + DashboardVariableHideHideLabel DashboardVariableHide = "hideLabel" + DashboardVariableHideHideVariable DashboardVariableHide = "hideVariable" + DashboardVariableHideInControlsMenu DashboardVariableHide = "inControlsMenu" ) // Options to config when to refresh a variable diff --git a/kinds/dashboard/dashboard_kind.cue b/kinds/dashboard/dashboard_kind.cue index b1854b5ef7a..9276f28a85e 100644 --- a/kinds/dashboard/dashboard_kind.cue +++ b/kinds/dashboard/dashboard_kind.cue @@ -239,8 +239,8 @@ lineage: schemas: [{ #VariableRefresh: 0 | 1 | 2 @cuetsy(kind="enum",memberNames="never|onDashboardLoad|onTimeRangeChanged") // Determine if the variable shows on dashboard - // Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing). - #VariableHide: 0 | 1 | 2 @cuetsy(kind="enum",memberNames="dontHide|hideLabel|hideVariable") @grafana(TSVeneer="type") + // Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu). + #VariableHide: 0 | 1 | 2 | 3 @cuetsy(kind="enum",memberNames="dontHide|hideLabel|hideVariable|inControlsMenu") @grafana(TSVeneer="type") // Sort variable options // Accepted values are: diff --git a/packages/grafana-data/src/types/templateVars.ts b/packages/grafana-data/src/types/templateVars.ts index 168c7f6a451..754afd7ab0c 100644 --- a/packages/grafana-data/src/types/templateVars.ts +++ b/packages/grafana-data/src/types/templateVars.ts @@ -47,6 +47,7 @@ export enum VariableHide { dontHide, hideLabel, hideVariable, + inControlsMenu, } export interface AdHocVariableFilter { diff --git a/packages/grafana-schema/src/raw/dashboard/x/dashboard_types.gen.ts b/packages/grafana-schema/src/raw/dashboard/x/dashboard_types.gen.ts index 0b3315e1eed..1bc8b1e1890 100644 --- a/packages/grafana-schema/src/raw/dashboard/x/dashboard_types.gen.ts +++ b/packages/grafana-schema/src/raw/dashboard/x/dashboard_types.gen.ts @@ -246,12 +246,13 @@ export enum VariableRefresh { /** * Determine if the variable shows on dashboard - * Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing). + * Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu). */ export enum VariableHide { dontHide = 0, hideLabel = 1, hideVariable = 2, + inControlsMenu = 3, } /** diff --git a/packages/grafana-schema/src/schema/dashboard/v2beta1/types.spec.gen.ts b/packages/grafana-schema/src/schema/dashboard/v2beta1/types.spec.gen.ts index f8d5b84cceb..0bc4a00348d 100644 --- a/packages/grafana-schema/src/schema/dashboard/v2beta1/types.spec.gen.ts +++ b/packages/grafana-schema/src/schema/dashboard/v2beta1/types.spec.gen.ts @@ -1039,8 +1039,8 @@ export const defaultVariableOption = (): VariableOption => ({ }); // Determine if the variable shows on dashboard -// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing). -export type VariableHide = "dontHide" | "hideLabel" | "hideVariable"; +// Accepted values are `dontHide` (show label and value), `hideLabel` (show value only), `hideVariable` (show nothing), `inControlsMenu` (show in a drop-down menu). +export type VariableHide = "dontHide" | "hideLabel" | "hideVariable" | "inControlsMenu"; export const defaultVariableHide = (): VariableHide => ("dontHide"); diff --git a/packages/grafana-schema/src/veneer/dashboard.types.ts b/packages/grafana-schema/src/veneer/dashboard.types.ts index ee156beebbe..ca41c995c31 100644 --- a/packages/grafana-schema/src/veneer/dashboard.types.ts +++ b/packages/grafana-schema/src/veneer/dashboard.types.ts @@ -18,6 +18,7 @@ export enum VariableHide { dontHide, hideLabel, hideVariable, + inControlsMenu, } export interface VariableModel extends Omit { diff --git a/pkg/kinds/dashboard/dashboard_spec_gen.go b/pkg/kinds/dashboard/dashboard_spec_gen.go index 3072af6722c..fc2b9343d77 100644 --- a/pkg/kinds/dashboard/dashboard_spec_gen.go +++ b/pkg/kinds/dashboard/dashboard_spec_gen.go @@ -766,13 +766,14 @@ const ( ) // Determine if the variable shows on dashboard -// Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing). +// Accepted values are 0 (show label and value), 1 (show value only), 2 (show nothing), 3 (show under the controls dropdown menu). type VariableHide int64 const ( - VariableHideDontHide VariableHide = 0 - VariableHideHideLabel VariableHide = 1 - VariableHideHideVariable VariableHide = 2 + VariableHideDontHide VariableHide = 0 + VariableHideHideLabel VariableHide = 1 + VariableHideHideVariable VariableHide = 2 + VariableHideInControlsMenu VariableHide = 3 ) // Option to be selected in a variable.