You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2023/12/08 14:04:58 UTC

(superset) branch 3.0 updated (f4873860fc -> b0905ce0bd)

This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a change to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git


    from f4873860fc chore: Clean up the examples dashboards (#26158)
     new b9e8cc958a fix(embedded): Hide sensitive payload data from guest users (#25878)
     new 03abfba0f5 fix(init-job): Fix envFrom for init job in helm chart (#26157)
     new 2532fa5dd9 fix: Includes 90° x-axis label rotation (#26207)
     new 2b7766afa6 chore: Adds note about numerical x-axis (#26208)
     new c6c71123ee fix(dashboard): use textContent to render hidden title (#26189)
     new 52f12ba06e fix: support custom links in markdown (#26211)
     new 8eb6bbba91 fix(chart-filter): Avoid column denormalization if not enabled (#26199)
     new b0905ce0bd fix(plugin-chart-echarts): support truncated numeric x-axis (#26215)

The 8 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 UPDATING.md                                        |  4 ++
 helm/superset/Chart.yaml                           |  4 +-
 helm/superset/README.md                            |  2 +-
 helm/superset/templates/init-job.yaml              |  2 +-
 .../src/components/SafeMarkdown.tsx                |  1 +
 .../src/MixedTimeseries/controlPanel.tsx           |  1 +
 .../src/MixedTimeseries/transformProps.ts          |  6 +--
 .../src/Timeseries/Area/controlPanel.tsx           |  5 +++
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |  5 +++
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |  5 +++
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |  5 +++
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |  5 +++
 .../src/Timeseries/Step/controlPanel.tsx           |  5 +++
 .../src/Timeseries/constants.ts                    |  1 +
 .../src/Timeseries/transformProps.ts               | 28 +++++++++-----
 .../plugin-chart-echarts/src/Timeseries/types.ts   |  2 +
 .../plugins/plugin-chart-echarts/src/controls.tsx  | 31 ++++++++++++++++
 .../plugin-chart-echarts/src/utils/controls.ts     |  2 +-
 .../plugin-chart-echarts/src/utils/series.ts       | 14 +++++++
 .../test/utils/controls.test.ts                    | 22 +++++------
 .../plugin-chart-echarts/test/utils/series.test.ts | 28 ++++++++++++++
 .../src/components/DynamicEditableTitle/index.tsx  |  5 +--
 .../src/hooks/apiResources/dashboards.ts           |  1 +
 superset/dashboards/schemas.py                     | 22 ++++++++++-
 superset/datasource/api.py                         |  5 ++-
 superset/models/helpers.py                         | 15 +++++---
 tests/integration_tests/dashboards/api_tests.py    | 43 ++++++++++++++++++++++
 27 files changed, 229 insertions(+), 40 deletions(-)


(superset) 01/08: fix(embedded): Hide sensitive payload data from guest users (#25878)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit b9e8cc958a57dc7594c114fd914d7d7039d7e842
Author: Jack Fragassi <jf...@gmail.com>
AuthorDate: Mon Dec 4 14:52:59 2023 -0800

    fix(embedded): Hide sensitive payload data from guest users (#25878)
    
    (cherry picked from commit 386d4e0541872984bf2c473f06343a51dc3cf9e1)
---
 .../src/hooks/apiResources/dashboards.ts           |  1 +
 superset/dashboards/schemas.py                     | 20 +++++++++-
 tests/integration_tests/dashboards/api_tests.py    | 43 ++++++++++++++++++++++
 3 files changed, 63 insertions(+), 1 deletion(-)

diff --git a/superset-frontend/src/hooks/apiResources/dashboards.ts b/superset-frontend/src/hooks/apiResources/dashboards.ts
index b21cc668c0..61896ba130 100644
--- a/superset-frontend/src/hooks/apiResources/dashboards.ts
+++ b/superset-frontend/src/hooks/apiResources/dashboards.ts
@@ -31,6 +31,7 @@ export const useDashboard = (idOrSlug: string | number) =>
         (dashboard.json_metadata && JSON.parse(dashboard.json_metadata)) || {},
       position_data:
         dashboard.position_json && JSON.parse(dashboard.position_json),
+      owners: dashboard.owners || [],
     }),
   );
 
diff --git a/superset/dashboards/schemas.py b/superset/dashboards/schemas.py
index f72aeae582..9a6bcfb456 100644
--- a/superset/dashboards/schemas.py
+++ b/superset/dashboards/schemas.py
@@ -18,9 +18,10 @@ import json
 import re
 from typing import Any, Union
 
-from marshmallow import fields, post_load, pre_load, Schema
+from marshmallow import fields, post_dump, post_load, pre_load, Schema
 from marshmallow.validate import Length, ValidationError
 
+from superset import security_manager
 from superset.exceptions import SupersetException
 from superset.tags.models import TagTypes
 from superset.utils import core as utils
@@ -202,6 +203,15 @@ class DashboardGetResponseSchema(Schema):
     changed_on_humanized = fields.String(data_key="changed_on_delta_humanized")
     is_managed_externally = fields.Boolean(allow_none=True, dump_default=False)
 
+    # pylint: disable=unused-argument
+    @post_dump()
+    def post_dump(self, serialized: dict[str, Any], **kwargs: Any) -> dict[str, Any]:
+        if security_manager.is_guest_user():
+            del serialized["owners"]
+            del serialized["changed_by_name"]
+            del serialized["changed_by"]
+        return serialized
+
 
 class DatabaseSchema(Schema):
     id = fields.Int()
@@ -250,6 +260,14 @@ class DashboardDatasetSchema(Schema):
     granularity_sqla = fields.List(fields.List(fields.Str()))
     normalize_columns = fields.Bool()
 
+    # pylint: disable=unused-argument
+    @post_dump()
+    def post_dump(self, serialized: dict[str, Any], **kwargs: Any) -> dict[str, Any]:
+        if security_manager.is_guest_user():
+            del serialized["owners"]
+            del serialized["database"]
+        return serialized
+
 
 class BaseDashboardSchema(Schema):
     # pylint: disable=no-self-use,unused-argument
diff --git a/tests/integration_tests/dashboards/api_tests.py b/tests/integration_tests/dashboards/api_tests.py
index cc7bc109b4..a5c44f9f08 100644
--- a/tests/integration_tests/dashboards/api_tests.py
+++ b/tests/integration_tests/dashboards/api_tests.py
@@ -176,6 +176,26 @@ class TestDashboardApi(SupersetTestCase, ApiOwnersTestCaseMixin, InsertChartMixi
         expected_values = [0, 1] if backend() == "presto" else [0, 1, 2]
         self.assertEqual(result[0]["column_types"], expected_values)
 
+    @pytest.mark.usefixtures("load_world_bank_dashboard_with_slices")
+    @patch("superset.dashboards.schemas.security_manager.has_guest_access")
+    @patch("superset.dashboards.schemas.security_manager.is_guest_user")
+    def test_get_dashboard_datasets_as_guest(self, is_guest_user, has_guest_access):
+        self.login(username="admin")
+        uri = "api/v1/dashboard/world_health/datasets"
+        is_guest_user = True
+        has_guest_access = True
+        response = self.get_assert_metric(uri, "get_datasets")
+        self.assertEqual(response.status_code, 200)
+        data = json.loads(response.data.decode("utf-8"))
+        dashboard = Dashboard.get("world_health")
+        expected_dataset_ids = {s.datasource_id for s in dashboard.slices}
+        result = data["result"]
+        actual_dataset_ids = {dataset["id"] for dataset in result}
+        self.assertEqual(actual_dataset_ids, expected_dataset_ids)
+        for dataset in result:
+            for excluded_key in ["database", "owners"]:
+                assert excluded_key not in dataset
+
     @pytest.mark.usefixtures("load_world_bank_dashboard_with_slices")
     def test_get_dashboard_datasets_not_found(self):
         self.login(username="alpha")
@@ -409,6 +429,29 @@ class TestDashboardApi(SupersetTestCase, ApiOwnersTestCaseMixin, InsertChartMixi
         db.session.delete(dashboard)
         db.session.commit()
 
+    @patch("superset.dashboards.schemas.security_manager.has_guest_access")
+    @patch("superset.dashboards.schemas.security_manager.is_guest_user")
+    def test_get_dashboard_as_guest(self, is_guest_user, has_guest_access):
+        """
+        Dashboard API: Test get dashboard as guest
+        """
+        admin = self.get_user("admin")
+        dashboard = self.insert_dashboard(
+            "title", "slug1", [admin.id], created_by=admin
+        )
+        is_guest_user.return_value = True
+        has_guest_access.return_value = True
+        self.login(username="admin")
+        uri = f"api/v1/dashboard/{dashboard.id}"
+        rv = self.get_assert_metric(uri, "get")
+        self.assertEqual(rv.status_code, 200)
+        data = json.loads(rv.data.decode("utf-8"))
+        for excluded_key in ["changed_by", "changed_by_name", "owners"]:
+            assert excluded_key not in data["result"]
+        # rollback changes
+        db.session.delete(dashboard)
+        db.session.commit()
+
     def test_info_dashboard(self):
         """
         Dashboard API: Test info


(superset) 06/08: fix: support custom links in markdown (#26211)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 52f12ba06e6097e2eda3caaf359dfa0345e6546a
Author: Ville Brofeldt <33...@users.noreply.github.com>
AuthorDate: Thu Dec 7 13:51:15 2023 -0800

    fix: support custom links in markdown (#26211)
    
    (cherry picked from commit d2adc858cbdf1242d96cf7cc0363e39afba88990)
---
 .../packages/superset-ui-core/src/components/SafeMarkdown.tsx            | 1 +
 1 file changed, 1 insertion(+)

diff --git a/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown.tsx b/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown.tsx
index b0826ce2ed..2b36802d4b 100644
--- a/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown.tsx
+++ b/superset-frontend/packages/superset-ui-core/src/components/SafeMarkdown.tsx
@@ -67,6 +67,7 @@ function SafeMarkdown({
       rehypePlugins={rehypePlugins}
       remarkPlugins={[remarkGfm]}
       skipHtml={false}
+      transformLinkUri={null}
     >
       {source}
     </ReactMarkdown>


(superset) 05/08: fix(dashboard): use textContent to render hidden title (#26189)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit c6c71123ee3d07058893d0e447e492401742f0d9
Author: ʈᵃᵢ <td...@gmail.com>
AuthorDate: Thu Dec 7 13:33:49 2023 -0800

    fix(dashboard): use textContent to render hidden title (#26189)
    
    (cherry picked from commit 88fb3428872a332c750187e15cdc58397231f396)
---
 superset-frontend/src/components/DynamicEditableTitle/index.tsx | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/superset-frontend/src/components/DynamicEditableTitle/index.tsx b/superset-frontend/src/components/DynamicEditableTitle/index.tsx
index 86205bebc2..670962de5f 100644
--- a/superset-frontend/src/components/DynamicEditableTitle/index.tsx
+++ b/superset-frontend/src/components/DynamicEditableTitle/index.tsx
@@ -113,10 +113,7 @@ export const DynamicEditableTitle = ({
   // then we can measure the width of that span to resize the input element
   useLayoutEffect(() => {
     if (sizerRef?.current) {
-      sizerRef.current.innerHTML = (currentTitle || placeholder).replace(
-        /\s/g,
-        '&nbsp;',
-      );
+      sizerRef.current.textContent = currentTitle || placeholder;
     }
   }, [currentTitle, placeholder, sizerRef]);
 


(superset) 04/08: chore: Adds note about numerical x-axis (#26208)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 2b7766afa6d4b6b6f83becf07dae8d5aeff92858
Author: Michael S. Molina <70...@users.noreply.github.com>
AuthorDate: Thu Dec 7 14:53:33 2023 -0300

    chore: Adds note about numerical x-axis (#26208)
    
    Co-authored-by: John Bodley <45...@users.noreply.github.com>
---
 UPDATING.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/UPDATING.md b/UPDATING.md
index e133bf257c..e518b672b5 100644
--- a/UPDATING.md
+++ b/UPDATING.md
@@ -30,6 +30,10 @@ assists people when migrating to a new version.
 
 ### Other
 
+## 3.0.3
+
+- [26034](https://github.com/apache/superset/issues/26034): Fixes a problem where numeric x-axes were being treated as categorical values. As a consequence of that, the way labels are displayed might change given that ECharts has a different treatment for numerical and categorical values. To revert to the old behavior, users need to manually convert numerical columns to text so that they are treated as categories. Check https://github.com/apache/superset/issues/26159 for more details.
+
 ## 3.0.0
 
 - [25053](https://github.com/apache/superset/pull/25053): Extends the `ab_user.email` column from 64 to 320 characters which has an associated unique key constraint. This will be problematic for MySQL metadata databases which use the InnoDB storage engine with the `innodb_large_prefix` parameter disabled as the key prefix limit is 767 bytes. Enabling said parameter and ensuring that the table uses either the `DYNAMIC` or `COMPRESSED` row format should remedy the problem. See [here](https [...]


(superset) 02/08: fix(init-job): Fix envFrom for init job in helm chart (#26157)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 03abfba0f55898796b5d1e4f86a9def4fe316026
Author: Suma Goud B <55...@users.noreply.github.com>
AuthorDate: Wed Dec 6 16:40:43 2023 +0100

    fix(init-job): Fix envFrom for init job in helm chart (#26157)
---
 helm/superset/Chart.yaml              |   2 +-
 helm/superset/README.md               | 476 +++++++++++++++++-----------------
 helm/superset/templates/init-job.yaml |   2 +-
 3 files changed, 240 insertions(+), 240 deletions(-)

diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml
index e03d905e0f..23ab47dc6a 100644
--- a/helm/superset/Chart.yaml
+++ b/helm/superset/Chart.yaml
@@ -29,7 +29,7 @@ maintainers:
   - name: craig-rueda
     email: craig@craigrueda.com
     url: https://github.com/craig-rueda
-version: 0.11.0
+version: 0.11.2
 dependencies:
   - name: postgresql
     version: 12.1.6
diff --git a/helm/superset/README.md b/helm/superset/README.md
index 6510feb2e4..56f2323cd8 100644
--- a/helm/superset/README.md
+++ b/helm/superset/README.md
@@ -23,7 +23,7 @@ NOTE: This file is generated by helm-docs: https://github.com/norwoodj/helm-docs
 
 # superset
 
-![Version: 0.11.0](https://img.shields.io/badge/Version-0.11.0-informational?style=flat-square)
+![Version: 0.11.2](https://img.shields.io/badge/Version-0.11.2-informational?style=flat-square)
 
 Apache Superset is a modern, enterprise-ready business intelligence web application
 
@@ -31,7 +31,7 @@ Apache Superset is a modern, enterprise-ready business intelligence web applicat
 
 ## Source Code
 
-* <https://github.com/apache/superset>
+- <https://github.com/apache/superset>
 
 ## TL;DR
 
@@ -48,242 +48,242 @@ On helm this can be set on `extraSecretEnv.SUPERSET_SECRET_KEY` or `configOverri
 
 ## Requirements
 
-| Repository | Name | Version |
-|------------|------|---------|
-| https://charts.bitnami.com/bitnami | postgresql | 12.1.6 |
-| https://charts.bitnami.com/bitnami | redis | 17.9.4 |
+| Repository                         | Name       | Version |
+| ---------------------------------- | ---------- | ------- |
+| https://charts.bitnami.com/bitnami | postgresql | 12.1.6  |
+| https://charts.bitnami.com/bitnami | redis      | 17.9.4  |
 
 ## Values
 
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| affinity | object | `{}` |  |
-| bootstrapScript | string | see `values.yaml` | Install additional packages and do any other bootstrap configuration in this script For production clusters it's recommended to build own image with this step done in CI |
-| configFromSecret | string | `"{{ template \"superset.fullname\" . }}-config"` | The name of the secret which we will use to generate a superset_config.py file Note: this secret must have the key superset_config.py in it and can include other files as well |
-| configMountPath | string | `"/app/pythonpath"` |  |
-| configOverrides | object | `{}` | A dictionary of overrides to append at the end of superset_config.py - the name does not matter WARNING: the order is not guaranteed Files can be passed as helm --set-file configOverrides.my-override=my-file.py |
-| configOverridesFiles | object | `{}` | Same as above but the values are files |
-| envFromSecret | string | `"{{ template \"superset.fullname\" . }}-env"` | The name of the secret which we will use to populate env vars in deployed pods This can be useful for secret keys, etc. |
-| envFromSecrets | list | `[]` | This can be a list of templated strings |
-| extraConfigMountPath | string | `"/app/configs"` |  |
-| extraConfigs | object | `{}` | Extra files to mount on `/app/pythonpath` |
-| extraEnv | object | `{}` | Extra environment variables that will be passed into pods |
-| extraEnvRaw | list | `[]` | Extra environment variables in RAW format that will be passed into pods |
-| extraSecretEnv | object | `{}` | Extra environment variables to pass as secrets |
-| extraSecrets | object | `{}` | Extra files to mount on `/app/pythonpath` as secrets |
-| extraVolumeMounts | list | `[]` |  |
-| extraVolumes | list | `[]` |  |
-| fullnameOverride | string | `nil` | Provide a name to override the full names of resources |
-| hostAliases | list | `[]` | Custom hostAliases for all superset pods # https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/ |
-| image.pullPolicy | string | `"IfNotPresent"` |  |
-| image.repository | string | `"apachesuperset.docker.scarf.sh/apache/superset"` |  |
-| image.tag | string | `""` |  |
-| imagePullSecrets | list | `[]` |  |
-| ingress.annotations | object | `{}` |  |
-| ingress.enabled | bool | `false` |  |
-| ingress.extraHostsRaw | list | `[]` |  |
-| ingress.hosts[0] | string | `"chart-example.local"` |  |
-| ingress.ingressClassName | string | `nil` |  |
-| ingress.path | string | `"/"` |  |
-| ingress.pathType | string | `"ImplementationSpecific"` |  |
-| ingress.tls | list | `[]` |  |
-| init.adminUser.email | string | `"admin@superset.com"` |  |
-| init.adminUser.firstname | string | `"Superset"` |  |
-| init.adminUser.lastname | string | `"Admin"` |  |
-| init.adminUser.password | string | `"admin"` |  |
-| init.adminUser.username | string | `"admin"` |  |
-| init.affinity | object | `{}` |  |
-| init.command | list | a `superset_init.sh` command | Command |
-| init.containerSecurityContext | object | `{}` |  |
-| init.createAdmin | bool | `true` |  |
-| init.enabled | bool | `true` |  |
-| init.initContainers | list | a container waiting for postgres | List of initContainers |
-| init.initscript | string | a script to create admin user and initailize roles | A Superset init script |
-| init.jobAnnotations."helm.sh/hook" | string | `"post-install,post-upgrade"` |  |
-| init.jobAnnotations."helm.sh/hook-delete-policy" | string | `"before-hook-creation"` |  |
-| init.loadExamples | bool | `false` |  |
-| init.podAnnotations | object | `{}` |  |
-| init.podSecurityContext | object | `{}` |  |
-| init.resources | object | `{}` |  |
-| init.tolerations | list | `[]` |  |
-| init.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to init job |
-| initImage.pullPolicy | string | `"IfNotPresent"` |  |
-| initImage.repository | string | `"apache/superset"` |  |
-| initImage.tag | string | `"dockerize"` |  |
-| nameOverride | string | `nil` | Provide a name to override the name of the chart |
-| nodeSelector | object | `{}` |  |
-| postgresql | object | see `values.yaml` | Configuration values for the postgresql dependency. ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md |
-| redis | object | see `values.yaml` | Configuration values for the Redis dependency. ref: https://github.com/bitnami/charts/blob/master/bitnami/redis More documentation can be found here: https://artifacthub.io/packages/helm/bitnami/redis |
-| resources | object | `{}` |  |
-| runAsUser | int | `0` | User ID directive. This user must have enough permissions to run the bootstrap script Running containers as root is not recommended in production. Change this to another UID - e.g. 1000 to be more secure |
-| service.annotations | object | `{}` |  |
-| service.loadBalancerIP | string | `nil` |  |
-| service.nodePort.http | int | `"nil"` |  |
-| service.port | int | `8088` |  |
-| service.type | string | `"ClusterIP"` |  |
-| serviceAccount.annotations | object | `{}` |  |
-| serviceAccount.create | bool | `false` | Create custom service account for Superset. If create: true and serviceAccountName is not provided, `superset.fullname` will be used. |
-| serviceAccountName | string | `nil` | Specify service account name to be used |
-| supersetCeleryBeat.affinity | object | `{}` | Affinity to be added to supersetCeleryBeat deployment |
-| supersetCeleryBeat.command | list | a `celery beat` command | Command |
-| supersetCeleryBeat.containerSecurityContext | object | `{}` |  |
-| supersetCeleryBeat.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat deployment |
-| supersetCeleryBeat.enabled | bool | `false` | This is only required if you intend to use alerts and reports |
-| supersetCeleryBeat.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade |
-| supersetCeleryBeat.initContainers | list | a container waiting for postgres | List of init containers |
-| supersetCeleryBeat.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat pods |
-| supersetCeleryBeat.podLabels | object | `{}` | Labels to be added to supersetCeleryBeat pods |
-| supersetCeleryBeat.podSecurityContext | object | `{}` |  |
-| supersetCeleryBeat.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. |
-| supersetCeleryBeat.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryBeat deployments |
-| supersetCeleryFlower.affinity | object | `{}` | Affinity to be added to supersetCeleryFlower deployment |
-| supersetCeleryFlower.command | list | a `celery flower` command | Command |
-| supersetCeleryFlower.containerSecurityContext | object | `{}` |  |
-| supersetCeleryFlower.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower deployment |
-| supersetCeleryFlower.enabled | bool | `false` | Enables a Celery flower deployment (management UI to monitor celery jobs) WARNING: on superset 1.x, this requires a Superset image that has `flower<1.0.0` installed (which is NOT the case of the default images) flower>=1.0.0 requires Celery 5+ which Superset 1.5 does not support |
-| supersetCeleryFlower.initContainers | list | a container waiting for postgres and redis | List of init containers |
-| supersetCeleryFlower.livenessProbe.failureThreshold | int | `3` |  |
-| supersetCeleryFlower.livenessProbe.httpGet.path | string | `"/api/workers"` |  |
-| supersetCeleryFlower.livenessProbe.httpGet.port | string | `"flower"` |  |
-| supersetCeleryFlower.livenessProbe.initialDelaySeconds | int | `5` |  |
-| supersetCeleryFlower.livenessProbe.periodSeconds | int | `5` |  |
-| supersetCeleryFlower.livenessProbe.successThreshold | int | `1` |  |
-| supersetCeleryFlower.livenessProbe.timeoutSeconds | int | `1` |  |
-| supersetCeleryFlower.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower pods |
-| supersetCeleryFlower.podLabels | object | `{}` | Labels to be added to supersetCeleryFlower pods |
-| supersetCeleryFlower.podSecurityContext | object | `{}` |  |
-| supersetCeleryFlower.readinessProbe.failureThreshold | int | `3` |  |
-| supersetCeleryFlower.readinessProbe.httpGet.path | string | `"/api/workers"` |  |
-| supersetCeleryFlower.readinessProbe.httpGet.port | string | `"flower"` |  |
-| supersetCeleryFlower.readinessProbe.initialDelaySeconds | int | `5` |  |
-| supersetCeleryFlower.readinessProbe.periodSeconds | int | `5` |  |
-| supersetCeleryFlower.readinessProbe.successThreshold | int | `1` |  |
-| supersetCeleryFlower.readinessProbe.timeoutSeconds | int | `1` |  |
-| supersetCeleryFlower.replicaCount | int | `1` |  |
-| supersetCeleryFlower.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. |
-| supersetCeleryFlower.service.annotations | object | `{}` |  |
-| supersetCeleryFlower.service.loadBalancerIP | string | `nil` |  |
-| supersetCeleryFlower.service.nodePort.http | int | `"nil"` |  |
-| supersetCeleryFlower.service.port | int | `5555` |  |
-| supersetCeleryFlower.service.type | string | `"ClusterIP"` |  |
-| supersetCeleryFlower.startupProbe.failureThreshold | int | `60` |  |
-| supersetCeleryFlower.startupProbe.httpGet.path | string | `"/api/workers"` |  |
-| supersetCeleryFlower.startupProbe.httpGet.port | string | `"flower"` |  |
-| supersetCeleryFlower.startupProbe.initialDelaySeconds | int | `5` |  |
-| supersetCeleryFlower.startupProbe.periodSeconds | int | `5` |  |
-| supersetCeleryFlower.startupProbe.successThreshold | int | `1` |  |
-| supersetCeleryFlower.startupProbe.timeoutSeconds | int | `1` |  |
-| supersetCeleryFlower.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryFlower deployments |
-| supersetNode.affinity | object | `{}` | Affinity to be added to supersetNode deployment |
-| supersetNode.command | list | See `values.yaml` | Startup command |
-| supersetNode.connections.db_host | string | `"{{ .Release.Name }}-postgresql"` |  |
-| supersetNode.connections.db_name | string | `"superset"` |  |
-| supersetNode.connections.db_pass | string | `"superset"` |  |
-| supersetNode.connections.db_port | string | `"5432"` |  |
-| supersetNode.connections.db_user | string | `"superset"` |  |
-| supersetNode.connections.redis_host | string | `"{{ .Release.Name }}-redis-headless"` | Change in case of bringing your own redis and then also set redis.enabled:false |
-| supersetNode.connections.redis_port | string | `"6379"` |  |
-| supersetNode.containerSecurityContext | object | `{}` |  |
-| supersetNode.deploymentAnnotations | object | `{}` | Annotations to be added to supersetNode deployment |
-| supersetNode.deploymentLabels | object | `{}` | Labels to be added to supersetNode deployment |
-| supersetNode.env | object | `{}` |  |
-| supersetNode.extraContainers | list | `[]` | Launch additional containers into supersetNode pod |
-| supersetNode.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade |
-| supersetNode.initContainers | list | a container waiting for postgres | Init containers |
-| supersetNode.livenessProbe.failureThreshold | int | `3` |  |
-| supersetNode.livenessProbe.httpGet.path | string | `"/health"` |  |
-| supersetNode.livenessProbe.httpGet.port | string | `"http"` |  |
-| supersetNode.livenessProbe.initialDelaySeconds | int | `15` |  |
-| supersetNode.livenessProbe.periodSeconds | int | `15` |  |
-| supersetNode.livenessProbe.successThreshold | int | `1` |  |
-| supersetNode.livenessProbe.timeoutSeconds | int | `1` |  |
-| supersetNode.podAnnotations | object | `{}` | Annotations to be added to supersetNode pods |
-| supersetNode.podLabels | object | `{}` | Labels to be added to supersetNode pods |
-| supersetNode.podSecurityContext | object | `{}` |  |
-| supersetNode.readinessProbe.failureThreshold | int | `3` |  |
-| supersetNode.readinessProbe.httpGet.path | string | `"/health"` |  |
-| supersetNode.readinessProbe.httpGet.port | string | `"http"` |  |
-| supersetNode.readinessProbe.initialDelaySeconds | int | `15` |  |
-| supersetNode.readinessProbe.periodSeconds | int | `15` |  |
-| supersetNode.readinessProbe.successThreshold | int | `1` |  |
-| supersetNode.readinessProbe.timeoutSeconds | int | `1` |  |
-| supersetNode.replicaCount | int | `1` |  |
-| supersetNode.resources | object | `{}` | Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above. |
-| supersetNode.startupProbe.failureThreshold | int | `60` |  |
-| supersetNode.startupProbe.httpGet.path | string | `"/health"` |  |
-| supersetNode.startupProbe.httpGet.port | string | `"http"` |  |
-| supersetNode.startupProbe.initialDelaySeconds | int | `15` |  |
-| supersetNode.startupProbe.periodSeconds | int | `5` |  |
-| supersetNode.startupProbe.successThreshold | int | `1` |  |
-| supersetNode.startupProbe.timeoutSeconds | int | `1` |  |
-| supersetNode.strategy | object | `{}` |  |
-| supersetNode.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetNode deployments |
-| supersetWebsockets.affinity | object | `{}` | Affinity to be added to supersetWebsockets deployment |
-| supersetWebsockets.command | list | `[]` |  |
-| supersetWebsockets.config | object | see `values.yaml` | The config.json to pass to the server, see https://github.com/apache/superset/tree/master/superset-websocket Note that the configuration can also read from environment variables (which will have priority), see https://github.com/apache/superset/blob/master/superset-websocket/src/config.ts for a list of supported variables |
-| supersetWebsockets.containerSecurityContext | object | `{}` |  |
-| supersetWebsockets.deploymentAnnotations | object | `{}` |  |
-| supersetWebsockets.enabled | bool | `false` | This is only required if you intend to use `GLOBAL_ASYNC_QUERIES` in `ws` mode see https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries |
-| supersetWebsockets.image.pullPolicy | string | `"IfNotPresent"` |  |
-| supersetWebsockets.image.repository | string | `"oneacrefund/superset-websocket"` | There is no official image (yet), this one is community-supported |
-| supersetWebsockets.image.tag | string | `"latest"` |  |
-| supersetWebsockets.ingress.path | string | `"/ws"` |  |
-| supersetWebsockets.ingress.pathType | string | `"Prefix"` |  |
-| supersetWebsockets.livenessProbe.failureThreshold | int | `3` |  |
-| supersetWebsockets.livenessProbe.httpGet.path | string | `"/health"` |  |
-| supersetWebsockets.livenessProbe.httpGet.port | string | `"ws"` |  |
-| supersetWebsockets.livenessProbe.initialDelaySeconds | int | `5` |  |
-| supersetWebsockets.livenessProbe.periodSeconds | int | `5` |  |
-| supersetWebsockets.livenessProbe.successThreshold | int | `1` |  |
-| supersetWebsockets.livenessProbe.timeoutSeconds | int | `1` |  |
-| supersetWebsockets.podAnnotations | object | `{}` |  |
-| supersetWebsockets.podLabels | object | `{}` |  |
-| supersetWebsockets.podSecurityContext | object | `{}` |  |
-| supersetWebsockets.readinessProbe.failureThreshold | int | `3` |  |
-| supersetWebsockets.readinessProbe.httpGet.path | string | `"/health"` |  |
-| supersetWebsockets.readinessProbe.httpGet.port | string | `"ws"` |  |
-| supersetWebsockets.readinessProbe.initialDelaySeconds | int | `5` |  |
-| supersetWebsockets.readinessProbe.periodSeconds | int | `5` |  |
-| supersetWebsockets.readinessProbe.successThreshold | int | `1` |  |
-| supersetWebsockets.readinessProbe.timeoutSeconds | int | `1` |  |
-| supersetWebsockets.replicaCount | int | `1` |  |
-| supersetWebsockets.resources | object | `{}` |  |
-| supersetWebsockets.service.annotations | object | `{}` |  |
-| supersetWebsockets.service.loadBalancerIP | string | `nil` |  |
-| supersetWebsockets.service.nodePort.http | int | `"nil"` |  |
-| supersetWebsockets.service.port | int | `8080` |  |
-| supersetWebsockets.service.type | string | `"ClusterIP"` |  |
-| supersetWebsockets.startupProbe.failureThreshold | int | `60` |  |
-| supersetWebsockets.startupProbe.httpGet.path | string | `"/health"` |  |
-| supersetWebsockets.startupProbe.httpGet.port | string | `"ws"` |  |
-| supersetWebsockets.startupProbe.initialDelaySeconds | int | `5` |  |
-| supersetWebsockets.startupProbe.periodSeconds | int | `5` |  |
-| supersetWebsockets.startupProbe.successThreshold | int | `1` |  |
-| supersetWebsockets.startupProbe.timeoutSeconds | int | `1` |  |
-| supersetWebsockets.strategy | object | `{}` |  |
-| supersetWebsockets.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWebsockets deployments |
-| supersetWorker.affinity | object | `{}` | Affinity to be added to supersetWorker deployment |
-| supersetWorker.command | list | a `celery worker` command | Worker startup command |
-| supersetWorker.containerSecurityContext | object | `{}` |  |
-| supersetWorker.deploymentAnnotations | object | `{}` | Annotations to be added to supersetWorker deployment |
-| supersetWorker.deploymentLabels | object | `{}` | Labels to be added to supersetWorker deployment |
-| supersetWorker.extraContainers | list | `[]` | Launch additional containers into supersetWorker pod |
-| supersetWorker.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade |
-| supersetWorker.initContainers | list | a container waiting for postgres and redis | Init container |
-| supersetWorker.livenessProbe.exec.command | list | a `celery inspect ping` command | Liveness probe command |
-| supersetWorker.livenessProbe.failureThreshold | int | `3` |  |
-| supersetWorker.livenessProbe.initialDelaySeconds | int | `120` |  |
-| supersetWorker.livenessProbe.periodSeconds | int | `60` |  |
-| supersetWorker.livenessProbe.successThreshold | int | `1` |  |
-| supersetWorker.livenessProbe.timeoutSeconds | int | `60` |  |
-| supersetWorker.podAnnotations | object | `{}` | Annotations to be added to supersetWorker pods |
-| supersetWorker.podLabels | object | `{}` | Labels to be added to supersetWorker pods |
-| supersetWorker.podSecurityContext | object | `{}` |  |
-| supersetWorker.readinessProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) |
-| supersetWorker.replicaCount | int | `1` |  |
-| supersetWorker.resources | object | `{}` | Resource settings for the supersetWorker pods - these settings overwrite might existing values from the global resources object defined above. |
-| supersetWorker.startupProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) |
-| supersetWorker.strategy | object | `{}` |  |
-| supersetWorker.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWorker deployments |
-| tolerations | list | `[]` |  |
-| topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to all deployments |
+| Key                                                     | Type   | Default                                            | Description                                                                                                                                                                                                                                                                                                                         |
+| ------------------------------------------------------- | ------ | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| affinity                                                | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| bootstrapScript                                         | string | see `values.yaml`                                  | Install additional packages and do any other bootstrap configuration in this script For production clusters it's recommended to build own image with this step done in CI                                                                                                                                                           |
+| configFromSecret                                        | string | `"{{ template \"superset.fullname\" . }}-config"`  | The name of the secret which we will use to generate a superset_config.py file Note: this secret must have the key superset_config.py in it and can include other files as well                                                                                                                                                     |
+| configMountPath                                         | string | `"/app/pythonpath"`                                |                                                                                                                                                                                                                                                                                                                                     |
+| configOverrides                                         | object | `{}`                                               | A dictionary of overrides to append at the end of superset_config.py - the name does not matter WARNING: the order is not guaranteed Files can be passed as helm --set-file configOverrides.my-override=my-file.py                                                                                                                  |
+| configOverridesFiles                                    | object | `{}`                                               | Same as above but the values are files                                                                                                                                                                                                                                                                                              |
+| envFromSecret                                           | string | `"{{ template \"superset.fullname\" . }}-env"`     | The name of the secret which we will use to populate env vars in deployed pods This can be useful for secret keys, etc.                                                                                                                                                                                                             |
+| envFromSecrets                                          | list   | `[]`                                               | This can be a list of templated strings                                                                                                                                                                                                                                                                                             |
+| extraConfigMountPath                                    | string | `"/app/configs"`                                   |                                                                                                                                                                                                                                                                                                                                     |
+| extraConfigs                                            | object | `{}`                                               | Extra files to mount on `/app/pythonpath`                                                                                                                                                                                                                                                                                           |
+| extraEnv                                                | object | `{}`                                               | Extra environment variables that will be passed into pods                                                                                                                                                                                                                                                                           |
+| extraEnvRaw                                             | list   | `[]`                                               | Extra environment variables in RAW format that will be passed into pods                                                                                                                                                                                                                                                             |
+| extraSecretEnv                                          | object | `{}`                                               | Extra environment variables to pass as secrets                                                                                                                                                                                                                                                                                      |
+| extraSecrets                                            | object | `{}`                                               | Extra files to mount on `/app/pythonpath` as secrets                                                                                                                                                                                                                                                                                |
+| extraVolumeMounts                                       | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| extraVolumes                                            | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| fullnameOverride                                        | string | `nil`                                              | Provide a name to override the full names of resources                                                                                                                                                                                                                                                                              |
+| hostAliases                                             | list   | `[]`                                               | Custom hostAliases for all superset pods # https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/                                                                                                                                                                                                                  |
+| image.pullPolicy                                        | string | `"IfNotPresent"`                                   |                                                                                                                                                                                                                                                                                                                                     |
+| image.repository                                        | string | `"apachesuperset.docker.scarf.sh/apache/superset"` |                                                                                                                                                                                                                                                                                                                                     |
+| image.tag                                               | string | `""`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| imagePullSecrets                                        | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.annotations                                     | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.enabled                                         | bool   | `false`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.extraHostsRaw                                   | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.hosts[0]                                        | string | `"chart-example.local"`                            |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.ingressClassName                                | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.path                                            | string | `"/"`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.pathType                                        | string | `"ImplementationSpecific"`                         |                                                                                                                                                                                                                                                                                                                                     |
+| ingress.tls                                             | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| init.adminUser.email                                    | string | `"admin@superset.com"`                             |                                                                                                                                                                                                                                                                                                                                     |
+| init.adminUser.firstname                                | string | `"Superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
+| init.adminUser.lastname                                 | string | `"Admin"`                                          |                                                                                                                                                                                                                                                                                                                                     |
+| init.adminUser.password                                 | string | `"admin"`                                          |                                                                                                                                                                                                                                                                                                                                     |
+| init.adminUser.username                                 | string | `"admin"`                                          |                                                                                                                                                                                                                                                                                                                                     |
+| init.affinity                                           | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| init.command                                            | list   | a `superset_init.sh` command                       | Command                                                                                                                                                                                                                                                                                                                             |
+| init.containerSecurityContext                           | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| init.createAdmin                                        | bool   | `true`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| init.enabled                                            | bool   | `true`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| init.initContainers                                     | list   | a container waiting for postgres                   | List of initContainers                                                                                                                                                                                                                                                                                                              |
+| init.initscript                                         | string | a script to create admin user and initailize roles | A Superset init script                                                                                                                                                                                                                                                                                                              |
+| init.jobAnnotations."helm.sh/hook"                      | string | `"post-install,post-upgrade"`                      |                                                                                                                                                                                                                                                                                                                                     |
+| init.jobAnnotations."helm.sh/hook-delete-policy"        | string | `"before-hook-creation"`                           |                                                                                                                                                                                                                                                                                                                                     |
+| init.loadExamples                                       | bool   | `false`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| init.podAnnotations                                     | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| init.podSecurityContext                                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| init.resources                                          | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| init.tolerations                                        | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| init.topologySpreadConstraints                          | list   | `[]`                                               | TopologySpreadConstrains to be added to init job                                                                                                                                                                                                                                                                                    |
+| initImage.pullPolicy                                    | string | `"IfNotPresent"`                                   |                                                                                                                                                                                                                                                                                                                                     |
+| initImage.repository                                    | string | `"apache/superset"`                                |                                                                                                                                                                                                                                                                                                                                     |
+| initImage.tag                                           | string | `"dockerize"`                                      |                                                                                                                                                                                                                                                                                                                                     |
+| nameOverride                                            | string | `nil`                                              | Provide a name to override the name of the chart                                                                                                                                                                                                                                                                                    |
+| nodeSelector                                            | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| postgresql                                              | object | see `values.yaml`                                  | Configuration values for the postgresql dependency. ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md                                                                                                                                                                                               |
+| redis                                                   | object | see `values.yaml`                                  | Configuration values for the Redis dependency. ref: https://github.com/bitnami/charts/blob/master/bitnami/redis More documentation can be found here: https://artifacthub.io/packages/helm/bitnami/redis                                                                                                                            |
+| resources                                               | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| runAsUser                                               | int    | `0`                                                | User ID directive. This user must have enough permissions to run the bootstrap script Running containers as root is not recommended in production. Change this to another UID - e.g. 1000 to be more secure                                                                                                                         |
+| service.annotations                                     | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| service.loadBalancerIP                                  | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| service.nodePort.http                                   | int    | `"nil"`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| service.port                                            | int    | `8088`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| service.type                                            | string | `"ClusterIP"`                                      |                                                                                                                                                                                                                                                                                                                                     |
+| serviceAccount.annotations                              | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| serviceAccount.create                                   | bool   | `false`                                            | Create custom service account for Superset. If create: true and serviceAccountName is not provided, `superset.fullname` will be used.                                                                                                                                                                                               |
+| serviceAccountName                                      | string | `nil`                                              | Specify service account name to be used                                                                                                                                                                                                                                                                                             |
+| supersetCeleryBeat.affinity                             | object | `{}`                                               | Affinity to be added to supersetCeleryBeat deployment                                                                                                                                                                                                                                                                               |
+| supersetCeleryBeat.command                              | list   | a `celery beat` command                            | Command                                                                                                                                                                                                                                                                                                                             |
+| supersetCeleryBeat.containerSecurityContext             | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryBeat.deploymentAnnotations                | object | `{}`                                               | Annotations to be added to supersetCeleryBeat deployment                                                                                                                                                                                                                                                                            |
+| supersetCeleryBeat.enabled                              | bool   | `false`                                            | This is only required if you intend to use alerts and reports                                                                                                                                                                                                                                                                       |
+| supersetCeleryBeat.forceReload                          | bool   | `false`                                            | If true, forces deployment to reload on each upgrade                                                                                                                                                                                                                                                                                |
+| supersetCeleryBeat.initContainers                       | list   | a container waiting for postgres                   | List of init containers                                                                                                                                                                                                                                                                                                             |
+| supersetCeleryBeat.podAnnotations                       | object | `{}`                                               | Annotations to be added to supersetCeleryBeat pods                                                                                                                                                                                                                                                                                  |
+| supersetCeleryBeat.podLabels                            | object | `{}`                                               | Labels to be added to supersetCeleryBeat pods                                                                                                                                                                                                                                                                                       |
+| supersetCeleryBeat.podSecurityContext                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryBeat.resources                            | object | `{}`                                               | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                          |
+| supersetCeleryBeat.topologySpreadConstraints            | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetCeleryBeat deployments                                                                                                                                                                                                                                                              |
+| supersetCeleryFlower.affinity                           | object | `{}`                                               | Affinity to be added to supersetCeleryFlower deployment                                                                                                                                                                                                                                                                             |
+| supersetCeleryFlower.command                            | list   | a `celery flower` command                          | Command                                                                                                                                                                                                                                                                                                                             |
+| supersetCeleryFlower.containerSecurityContext           | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.deploymentAnnotations              | object | `{}`                                               | Annotations to be added to supersetCeleryFlower deployment                                                                                                                                                                                                                                                                          |
+| supersetCeleryFlower.enabled                            | bool   | `false`                                            | Enables a Celery flower deployment (management UI to monitor celery jobs) WARNING: on superset 1.x, this requires a Superset image that has `flower<1.0.0` installed (which is NOT the case of the default images) flower>=1.0.0 requires Celery 5+ which Superset 1.5 does not support                                             |
+| supersetCeleryFlower.initContainers                     | list   | a container waiting for postgres and redis         | List of init containers                                                                                                                                                                                                                                                                                                             |
+| supersetCeleryFlower.livenessProbe.failureThreshold     | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.livenessProbe.httpGet.path         | string | `"/api/workers"`                                   |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.livenessProbe.httpGet.port         | string | `"flower"`                                         |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.livenessProbe.initialDelaySeconds  | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.livenessProbe.periodSeconds        | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.livenessProbe.successThreshold     | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.livenessProbe.timeoutSeconds       | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.podAnnotations                     | object | `{}`                                               | Annotations to be added to supersetCeleryFlower pods                                                                                                                                                                                                                                                                                |
+| supersetCeleryFlower.podLabels                          | object | `{}`                                               | Labels to be added to supersetCeleryFlower pods                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.podSecurityContext                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.readinessProbe.failureThreshold    | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.readinessProbe.httpGet.path        | string | `"/api/workers"`                                   |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.readinessProbe.httpGet.port        | string | `"flower"`                                         |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.readinessProbe.initialDelaySeconds | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.readinessProbe.periodSeconds       | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.readinessProbe.successThreshold    | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.readinessProbe.timeoutSeconds      | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.replicaCount                       | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.resources                          | object | `{}`                                               | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                          |
+| supersetCeleryFlower.service.annotations                | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.service.loadBalancerIP             | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.service.nodePort.http              | int    | `"nil"`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.service.port                       | int    | `5555`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.service.type                       | string | `"ClusterIP"`                                      |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.startupProbe.failureThreshold      | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.startupProbe.httpGet.path          | string | `"/api/workers"`                                   |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.startupProbe.httpGet.port          | string | `"flower"`                                         |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.startupProbe.initialDelaySeconds   | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.startupProbe.periodSeconds         | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.startupProbe.successThreshold      | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.startupProbe.timeoutSeconds        | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetCeleryFlower.topologySpreadConstraints          | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetCeleryFlower deployments                                                                                                                                                                                                                                                            |
+| supersetNode.affinity                                   | object | `{}`                                               | Affinity to be added to supersetNode deployment                                                                                                                                                                                                                                                                                     |
+| supersetNode.command                                    | list   | See `values.yaml`                                  | Startup command                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.connections.db_host                        | string | `"{{ .Release.Name }}-postgresql"`                 |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.connections.db_name                        | string | `"superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.connections.db_pass                        | string | `"superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.connections.db_port                        | string | `"5432"`                                           |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.connections.db_user                        | string | `"superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.connections.redis_host                     | string | `"{{ .Release.Name }}-redis-headless"`             | Change in case of bringing your own redis and then also set redis.enabled:false                                                                                                                                                                                                                                                     |
+| supersetNode.connections.redis_port                     | string | `"6379"`                                           |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.containerSecurityContext                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.deploymentAnnotations                      | object | `{}`                                               | Annotations to be added to supersetNode deployment                                                                                                                                                                                                                                                                                  |
+| supersetNode.deploymentLabels                           | object | `{}`                                               | Labels to be added to supersetNode deployment                                                                                                                                                                                                                                                                                       |
+| supersetNode.env                                        | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.extraContainers                            | list   | `[]`                                               | Launch additional containers into supersetNode pod                                                                                                                                                                                                                                                                                  |
+| supersetNode.forceReload                                | bool   | `false`                                            | If true, forces deployment to reload on each upgrade                                                                                                                                                                                                                                                                                |
+| supersetNode.initContainers                             | list   | a container waiting for postgres                   | Init containers                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.livenessProbe.failureThreshold             | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.livenessProbe.httpGet.path                 | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.livenessProbe.httpGet.port                 | string | `"http"`                                           |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.livenessProbe.initialDelaySeconds          | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.livenessProbe.periodSeconds                | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.livenessProbe.successThreshold             | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.livenessProbe.timeoutSeconds               | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.podAnnotations                             | object | `{}`                                               | Annotations to be added to supersetNode pods                                                                                                                                                                                                                                                                                        |
+| supersetNode.podLabels                                  | object | `{}`                                               | Labels to be added to supersetNode pods                                                                                                                                                                                                                                                                                             |
+| supersetNode.podSecurityContext                         | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.readinessProbe.failureThreshold            | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.readinessProbe.httpGet.path                | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.readinessProbe.httpGet.port                | string | `"http"`                                           |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.readinessProbe.initialDelaySeconds         | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.readinessProbe.periodSeconds               | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.readinessProbe.successThreshold            | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.readinessProbe.timeoutSeconds              | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.replicaCount                               | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.resources                                  | object | `{}`                                               | Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                        |
+| supersetNode.startupProbe.failureThreshold              | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.startupProbe.httpGet.path                  | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.startupProbe.httpGet.port                  | string | `"http"`                                           |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.startupProbe.initialDelaySeconds           | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.startupProbe.periodSeconds                 | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.startupProbe.successThreshold              | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.startupProbe.timeoutSeconds                | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.strategy                                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.topologySpreadConstraints                  | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetNode deployments                                                                                                                                                                                                                                                                    |
+| supersetWebsockets.affinity                             | object | `{}`                                               | Affinity to be added to supersetWebsockets deployment                                                                                                                                                                                                                                                                               |
+| supersetWebsockets.command                              | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.config                               | object | see `values.yaml`                                  | The config.json to pass to the server, see https://github.com/apache/superset/tree/master/superset-websocket Note that the configuration can also read from environment variables (which will have priority), see https://github.com/apache/superset/blob/master/superset-websocket/src/config.ts for a list of supported variables |
+| supersetWebsockets.containerSecurityContext             | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.deploymentAnnotations                | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.enabled                              | bool   | `false`                                            | This is only required if you intend to use `GLOBAL_ASYNC_QUERIES` in `ws` mode see https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries                                                                                                                                                               |
+| supersetWebsockets.image.pullPolicy                     | string | `"IfNotPresent"`                                   |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.image.repository                     | string | `"oneacrefund/superset-websocket"`                 | There is no official image (yet), this one is community-supported                                                                                                                                                                                                                                                                   |
+| supersetWebsockets.image.tag                            | string | `"latest"`                                         |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.ingress.path                         | string | `"/ws"`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.ingress.pathType                     | string | `"Prefix"`                                         |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.livenessProbe.failureThreshold       | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.livenessProbe.httpGet.path           | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.livenessProbe.httpGet.port           | string | `"ws"`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.livenessProbe.initialDelaySeconds    | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.livenessProbe.periodSeconds          | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.livenessProbe.successThreshold       | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.livenessProbe.timeoutSeconds         | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.podAnnotations                       | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.podLabels                            | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.podSecurityContext                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.readinessProbe.failureThreshold      | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.readinessProbe.httpGet.path          | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.readinessProbe.httpGet.port          | string | `"ws"`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.readinessProbe.initialDelaySeconds   | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.readinessProbe.periodSeconds         | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.readinessProbe.successThreshold      | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.readinessProbe.timeoutSeconds        | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.replicaCount                         | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.resources                            | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.service.annotations                  | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.service.loadBalancerIP               | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.service.nodePort.http                | int    | `"nil"`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.service.port                         | int    | `8080`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.service.type                         | string | `"ClusterIP"`                                      |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.startupProbe.failureThreshold        | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.startupProbe.httpGet.path            | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.startupProbe.httpGet.port            | string | `"ws"`                                             |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.startupProbe.initialDelaySeconds     | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.startupProbe.periodSeconds           | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.startupProbe.successThreshold        | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.startupProbe.timeoutSeconds          | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.strategy                             | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWebsockets.topologySpreadConstraints            | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetWebsockets deployments                                                                                                                                                                                                                                                              |
+| supersetWorker.affinity                                 | object | `{}`                                               | Affinity to be added to supersetWorker deployment                                                                                                                                                                                                                                                                                   |
+| supersetWorker.command                                  | list   | a `celery worker` command                          | Worker startup command                                                                                                                                                                                                                                                                                                              |
+| supersetWorker.containerSecurityContext                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.deploymentAnnotations                    | object | `{}`                                               | Annotations to be added to supersetWorker deployment                                                                                                                                                                                                                                                                                |
+| supersetWorker.deploymentLabels                         | object | `{}`                                               | Labels to be added to supersetWorker deployment                                                                                                                                                                                                                                                                                     |
+| supersetWorker.extraContainers                          | list   | `[]`                                               | Launch additional containers into supersetWorker pod                                                                                                                                                                                                                                                                                |
+| supersetWorker.forceReload                              | bool   | `false`                                            | If true, forces deployment to reload on each upgrade                                                                                                                                                                                                                                                                                |
+| supersetWorker.initContainers                           | list   | a container waiting for postgres and redis         | Init container                                                                                                                                                                                                                                                                                                                      |
+| supersetWorker.livenessProbe.exec.command               | list   | a `celery inspect ping` command                    | Liveness probe command                                                                                                                                                                                                                                                                                                              |
+| supersetWorker.livenessProbe.failureThreshold           | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.livenessProbe.initialDelaySeconds        | int    | `120`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.livenessProbe.periodSeconds              | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.livenessProbe.successThreshold           | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.livenessProbe.timeoutSeconds             | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.podAnnotations                           | object | `{}`                                               | Annotations to be added to supersetWorker pods                                                                                                                                                                                                                                                                                      |
+| supersetWorker.podLabels                                | object | `{}`                                               | Labels to be added to supersetWorker pods                                                                                                                                                                                                                                                                                           |
+| supersetWorker.podSecurityContext                       | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.readinessProbe                           | object | `{}`                                               | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic)                                                                                                                                                                                                                 |
+| supersetWorker.replicaCount                             | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.resources                                | object | `{}`                                               | Resource settings for the supersetWorker pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                      |
+| supersetWorker.startupProbe                             | object | `{}`                                               | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic)                                                                                                                                                                                                                 |
+| supersetWorker.strategy                                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.topologySpreadConstraints                | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetWorker deployments                                                                                                                                                                                                                                                                  |
+| tolerations                                             | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| topologySpreadConstraints                               | list   | `[]`                                               | TopologySpreadConstrains to be added to all deployments                                                                                                                                                                                                                                                                             |
diff --git a/helm/superset/templates/init-job.yaml b/helm/superset/templates/init-job.yaml
index da83f7f95d..36b527ca97 100644
--- a/helm/superset/templates/init-job.yaml
+++ b/helm/superset/templates/init-job.yaml
@@ -63,7 +63,7 @@ spec:
               name: {{ tpl .Values.envFromSecret . }}
           {{- range .Values.envFromSecrets }}
           - secretRef:
-              name: {{ tpl . $ }}
+              name: {{ tpl . $ | quote }}
           {{- end }}
         imagePullPolicy: {{ .Values.image.pullPolicy }}
         {{- if .Values.init.containerSecurityContext }}


(superset) 07/08: fix(chart-filter): Avoid column denormalization if not enabled (#26199)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 8eb6bbba91debe75309a5187fc301f1f03e6b3ff
Author: Vitor Avila <96...@users.noreply.github.com>
AuthorDate: Thu Dec 7 22:24:47 2023 -0300

    fix(chart-filter): Avoid column denormalization if not enabled (#26199)
    
    (cherry picked from commit 05d7060d838271ae46176040bcdd02b6fa359c72)
---
 superset/datasource/api.py |  5 ++++-
 superset/models/helpers.py | 15 ++++++++++-----
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/superset/datasource/api.py b/superset/datasource/api.py
index 213298d30b..9a278c7032 100644
--- a/superset/datasource/api.py
+++ b/superset/datasource/api.py
@@ -115,9 +115,12 @@ class DatasourceRestApi(BaseSupersetApi):
             return self.response(403, message=ex.message)
 
         row_limit = apply_max_row_limit(app.config["FILTER_SELECT_ROW_LIMIT"])
+        denormalize_column = not datasource.normalize_columns
         try:
             payload = datasource.values_for_column(
-                column_name=column_name, limit=row_limit
+                column_name=column_name,
+                limit=row_limit,
+                denormalize_column=denormalize_column,
             )
             return self.response(200, result=payload)
         except KeyError:
diff --git a/superset/models/helpers.py b/superset/models/helpers.py
index 13b4edb3bc..b22768bfd6 100644
--- a/superset/models/helpers.py
+++ b/superset/models/helpers.py
@@ -1331,14 +1331,19 @@ class ExploreMixin:  # pylint: disable=too-many-public-methods
             )
         return and_(*l)
 
-    def values_for_column(self, column_name: str, limit: int = 10000) -> list[Any]:
-        # always denormalize column name before querying for values
+    def values_for_column(
+        self, column_name: str, limit: int = 10000, denormalize_column: bool = False
+    ) -> list[Any]:
+        # denormalize column name before querying for values
+        # unless disabled in the dataset configuration
         db_dialect = self.database.get_dialect()
-        denormalized_col_name = self.database.db_engine_spec.denormalize_name(
-            db_dialect, column_name
+        column_name_ = (
+            self.database.db_engine_spec.denormalize_name(db_dialect, column_name)
+            if denormalize_column
+            else column_name
         )
         cols = {col.column_name: col for col in self.columns}
-        target_col = cols[denormalized_col_name]
+        target_col = cols[column_name_]
         tp = self.get_template_processor()
         tbl, cte = self.get_from_clause(tp)
 


(superset) 08/08: fix(plugin-chart-echarts): support truncated numeric x-axis (#26215)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit b0905ce0bd7c46b8bdd8b5c4b820b885bc457a9c
Author: Ville Brofeldt <33...@users.noreply.github.com>
AuthorDate: Fri Dec 8 05:40:09 2023 -0800

    fix(plugin-chart-echarts): support truncated numeric x-axis (#26215)
    
    Co-authored-by: Michael S. Molina <mi...@gmail.com>
---
 helm/superset/Chart.yaml                           |   2 +-
 helm/superset/README.md                            | 474 ++++++++++-----------
 .../src/MixedTimeseries/transformProps.ts          |   6 +-
 .../src/Timeseries/Area/controlPanel.tsx           |   4 +
 .../src/Timeseries/Regular/Bar/controlPanel.tsx    |   4 +
 .../src/Timeseries/Regular/Line/controlPanel.tsx   |   4 +
 .../Timeseries/Regular/Scatter/controlPanel.tsx    |   4 +
 .../Timeseries/Regular/SmoothLine/controlPanel.tsx |   4 +
 .../src/Timeseries/Step/controlPanel.tsx           |   4 +
 .../src/Timeseries/constants.ts                    |   1 +
 .../src/Timeseries/transformProps.ts               |  28 +-
 .../plugin-chart-echarts/src/Timeseries/types.ts   |   2 +
 .../plugins/plugin-chart-echarts/src/controls.tsx  |  31 ++
 .../plugin-chart-echarts/src/utils/controls.ts     |   2 +-
 .../plugin-chart-echarts/src/utils/series.ts       |  14 +
 .../test/utils/controls.test.ts                    |  22 +-
 .../plugin-chart-echarts/test/utils/series.test.ts |  28 ++
 superset/dashboards/schemas.py                     |   6 +-
 18 files changed, 375 insertions(+), 265 deletions(-)

diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml
index 23ab47dc6a..d6915090dd 100644
--- a/helm/superset/Chart.yaml
+++ b/helm/superset/Chart.yaml
@@ -15,7 +15,7 @@
 # limitations under the License.
 #
 apiVersion: v2
-appVersion: "3.0.2"
+appVersion: "3.0.3"
 description: Apache Superset is a modern, enterprise-ready business intelligence web application
 name: superset
 icon: https://artifacthub.io/image/68c1d717-0e97-491f-b046-754e46f46922@2x
diff --git a/helm/superset/README.md b/helm/superset/README.md
index 56f2323cd8..333f74d789 100644
--- a/helm/superset/README.md
+++ b/helm/superset/README.md
@@ -31,7 +31,7 @@ Apache Superset is a modern, enterprise-ready business intelligence web applicat
 
 ## Source Code
 
-- <https://github.com/apache/superset>
+* <https://github.com/apache/superset>
 
 ## TL;DR
 
@@ -48,242 +48,242 @@ On helm this can be set on `extraSecretEnv.SUPERSET_SECRET_KEY` or `configOverri
 
 ## Requirements
 
-| Repository                         | Name       | Version |
-| ---------------------------------- | ---------- | ------- |
-| https://charts.bitnami.com/bitnami | postgresql | 12.1.6  |
-| https://charts.bitnami.com/bitnami | redis      | 17.9.4  |
+| Repository | Name | Version |
+|------------|------|---------|
+| https://charts.bitnami.com/bitnami | postgresql | 12.1.6 |
+| https://charts.bitnami.com/bitnami | redis | 17.9.4 |
 
 ## Values
 
-| Key                                                     | Type   | Default                                            | Description                                                                                                                                                                                                                                                                                                                         |
-| ------------------------------------------------------- | ------ | -------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| affinity                                                | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| bootstrapScript                                         | string | see `values.yaml`                                  | Install additional packages and do any other bootstrap configuration in this script For production clusters it's recommended to build own image with this step done in CI                                                                                                                                                           |
-| configFromSecret                                        | string | `"{{ template \"superset.fullname\" . }}-config"`  | The name of the secret which we will use to generate a superset_config.py file Note: this secret must have the key superset_config.py in it and can include other files as well                                                                                                                                                     |
-| configMountPath                                         | string | `"/app/pythonpath"`                                |                                                                                                                                                                                                                                                                                                                                     |
-| configOverrides                                         | object | `{}`                                               | A dictionary of overrides to append at the end of superset_config.py - the name does not matter WARNING: the order is not guaranteed Files can be passed as helm --set-file configOverrides.my-override=my-file.py                                                                                                                  |
-| configOverridesFiles                                    | object | `{}`                                               | Same as above but the values are files                                                                                                                                                                                                                                                                                              |
-| envFromSecret                                           | string | `"{{ template \"superset.fullname\" . }}-env"`     | The name of the secret which we will use to populate env vars in deployed pods This can be useful for secret keys, etc.                                                                                                                                                                                                             |
-| envFromSecrets                                          | list   | `[]`                                               | This can be a list of templated strings                                                                                                                                                                                                                                                                                             |
-| extraConfigMountPath                                    | string | `"/app/configs"`                                   |                                                                                                                                                                                                                                                                                                                                     |
-| extraConfigs                                            | object | `{}`                                               | Extra files to mount on `/app/pythonpath`                                                                                                                                                                                                                                                                                           |
-| extraEnv                                                | object | `{}`                                               | Extra environment variables that will be passed into pods                                                                                                                                                                                                                                                                           |
-| extraEnvRaw                                             | list   | `[]`                                               | Extra environment variables in RAW format that will be passed into pods                                                                                                                                                                                                                                                             |
-| extraSecretEnv                                          | object | `{}`                                               | Extra environment variables to pass as secrets                                                                                                                                                                                                                                                                                      |
-| extraSecrets                                            | object | `{}`                                               | Extra files to mount on `/app/pythonpath` as secrets                                                                                                                                                                                                                                                                                |
-| extraVolumeMounts                                       | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| extraVolumes                                            | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| fullnameOverride                                        | string | `nil`                                              | Provide a name to override the full names of resources                                                                                                                                                                                                                                                                              |
-| hostAliases                                             | list   | `[]`                                               | Custom hostAliases for all superset pods # https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/                                                                                                                                                                                                                  |
-| image.pullPolicy                                        | string | `"IfNotPresent"`                                   |                                                                                                                                                                                                                                                                                                                                     |
-| image.repository                                        | string | `"apachesuperset.docker.scarf.sh/apache/superset"` |                                                                                                                                                                                                                                                                                                                                     |
-| image.tag                                               | string | `""`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| imagePullSecrets                                        | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.annotations                                     | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.enabled                                         | bool   | `false`                                            |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.extraHostsRaw                                   | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.hosts[0]                                        | string | `"chart-example.local"`                            |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.ingressClassName                                | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.path                                            | string | `"/"`                                              |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.pathType                                        | string | `"ImplementationSpecific"`                         |                                                                                                                                                                                                                                                                                                                                     |
-| ingress.tls                                             | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| init.adminUser.email                                    | string | `"admin@superset.com"`                             |                                                                                                                                                                                                                                                                                                                                     |
-| init.adminUser.firstname                                | string | `"Superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
-| init.adminUser.lastname                                 | string | `"Admin"`                                          |                                                                                                                                                                                                                                                                                                                                     |
-| init.adminUser.password                                 | string | `"admin"`                                          |                                                                                                                                                                                                                                                                                                                                     |
-| init.adminUser.username                                 | string | `"admin"`                                          |                                                                                                                                                                                                                                                                                                                                     |
-| init.affinity                                           | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| init.command                                            | list   | a `superset_init.sh` command                       | Command                                                                                                                                                                                                                                                                                                                             |
-| init.containerSecurityContext                           | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| init.createAdmin                                        | bool   | `true`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| init.enabled                                            | bool   | `true`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| init.initContainers                                     | list   | a container waiting for postgres                   | List of initContainers                                                                                                                                                                                                                                                                                                              |
-| init.initscript                                         | string | a script to create admin user and initailize roles | A Superset init script                                                                                                                                                                                                                                                                                                              |
-| init.jobAnnotations."helm.sh/hook"                      | string | `"post-install,post-upgrade"`                      |                                                                                                                                                                                                                                                                                                                                     |
-| init.jobAnnotations."helm.sh/hook-delete-policy"        | string | `"before-hook-creation"`                           |                                                                                                                                                                                                                                                                                                                                     |
-| init.loadExamples                                       | bool   | `false`                                            |                                                                                                                                                                                                                                                                                                                                     |
-| init.podAnnotations                                     | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| init.podSecurityContext                                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| init.resources                                          | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| init.tolerations                                        | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| init.topologySpreadConstraints                          | list   | `[]`                                               | TopologySpreadConstrains to be added to init job                                                                                                                                                                                                                                                                                    |
-| initImage.pullPolicy                                    | string | `"IfNotPresent"`                                   |                                                                                                                                                                                                                                                                                                                                     |
-| initImage.repository                                    | string | `"apache/superset"`                                |                                                                                                                                                                                                                                                                                                                                     |
-| initImage.tag                                           | string | `"dockerize"`                                      |                                                                                                                                                                                                                                                                                                                                     |
-| nameOverride                                            | string | `nil`                                              | Provide a name to override the name of the chart                                                                                                                                                                                                                                                                                    |
-| nodeSelector                                            | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| postgresql                                              | object | see `values.yaml`                                  | Configuration values for the postgresql dependency. ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md                                                                                                                                                                                               |
-| redis                                                   | object | see `values.yaml`                                  | Configuration values for the Redis dependency. ref: https://github.com/bitnami/charts/blob/master/bitnami/redis More documentation can be found here: https://artifacthub.io/packages/helm/bitnami/redis                                                                                                                            |
-| resources                                               | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| runAsUser                                               | int    | `0`                                                | User ID directive. This user must have enough permissions to run the bootstrap script Running containers as root is not recommended in production. Change this to another UID - e.g. 1000 to be more secure                                                                                                                         |
-| service.annotations                                     | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| service.loadBalancerIP                                  | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
-| service.nodePort.http                                   | int    | `"nil"`                                            |                                                                                                                                                                                                                                                                                                                                     |
-| service.port                                            | int    | `8088`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| service.type                                            | string | `"ClusterIP"`                                      |                                                                                                                                                                                                                                                                                                                                     |
-| serviceAccount.annotations                              | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| serviceAccount.create                                   | bool   | `false`                                            | Create custom service account for Superset. If create: true and serviceAccountName is not provided, `superset.fullname` will be used.                                                                                                                                                                                               |
-| serviceAccountName                                      | string | `nil`                                              | Specify service account name to be used                                                                                                                                                                                                                                                                                             |
-| supersetCeleryBeat.affinity                             | object | `{}`                                               | Affinity to be added to supersetCeleryBeat deployment                                                                                                                                                                                                                                                                               |
-| supersetCeleryBeat.command                              | list   | a `celery beat` command                            | Command                                                                                                                                                                                                                                                                                                                             |
-| supersetCeleryBeat.containerSecurityContext             | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryBeat.deploymentAnnotations                | object | `{}`                                               | Annotations to be added to supersetCeleryBeat deployment                                                                                                                                                                                                                                                                            |
-| supersetCeleryBeat.enabled                              | bool   | `false`                                            | This is only required if you intend to use alerts and reports                                                                                                                                                                                                                                                                       |
-| supersetCeleryBeat.forceReload                          | bool   | `false`                                            | If true, forces deployment to reload on each upgrade                                                                                                                                                                                                                                                                                |
-| supersetCeleryBeat.initContainers                       | list   | a container waiting for postgres                   | List of init containers                                                                                                                                                                                                                                                                                                             |
-| supersetCeleryBeat.podAnnotations                       | object | `{}`                                               | Annotations to be added to supersetCeleryBeat pods                                                                                                                                                                                                                                                                                  |
-| supersetCeleryBeat.podLabels                            | object | `{}`                                               | Labels to be added to supersetCeleryBeat pods                                                                                                                                                                                                                                                                                       |
-| supersetCeleryBeat.podSecurityContext                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryBeat.resources                            | object | `{}`                                               | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                          |
-| supersetCeleryBeat.topologySpreadConstraints            | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetCeleryBeat deployments                                                                                                                                                                                                                                                              |
-| supersetCeleryFlower.affinity                           | object | `{}`                                               | Affinity to be added to supersetCeleryFlower deployment                                                                                                                                                                                                                                                                             |
-| supersetCeleryFlower.command                            | list   | a `celery flower` command                          | Command                                                                                                                                                                                                                                                                                                                             |
-| supersetCeleryFlower.containerSecurityContext           | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.deploymentAnnotations              | object | `{}`                                               | Annotations to be added to supersetCeleryFlower deployment                                                                                                                                                                                                                                                                          |
-| supersetCeleryFlower.enabled                            | bool   | `false`                                            | Enables a Celery flower deployment (management UI to monitor celery jobs) WARNING: on superset 1.x, this requires a Superset image that has `flower<1.0.0` installed (which is NOT the case of the default images) flower>=1.0.0 requires Celery 5+ which Superset 1.5 does not support                                             |
-| supersetCeleryFlower.initContainers                     | list   | a container waiting for postgres and redis         | List of init containers                                                                                                                                                                                                                                                                                                             |
-| supersetCeleryFlower.livenessProbe.failureThreshold     | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.livenessProbe.httpGet.path         | string | `"/api/workers"`                                   |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.livenessProbe.httpGet.port         | string | `"flower"`                                         |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.livenessProbe.initialDelaySeconds  | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.livenessProbe.periodSeconds        | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.livenessProbe.successThreshold     | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.livenessProbe.timeoutSeconds       | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.podAnnotations                     | object | `{}`                                               | Annotations to be added to supersetCeleryFlower pods                                                                                                                                                                                                                                                                                |
-| supersetCeleryFlower.podLabels                          | object | `{}`                                               | Labels to be added to supersetCeleryFlower pods                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.podSecurityContext                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.readinessProbe.failureThreshold    | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.readinessProbe.httpGet.path        | string | `"/api/workers"`                                   |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.readinessProbe.httpGet.port        | string | `"flower"`                                         |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.readinessProbe.initialDelaySeconds | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.readinessProbe.periodSeconds       | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.readinessProbe.successThreshold    | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.readinessProbe.timeoutSeconds      | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.replicaCount                       | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.resources                          | object | `{}`                                               | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                          |
-| supersetCeleryFlower.service.annotations                | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.service.loadBalancerIP             | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.service.nodePort.http              | int    | `"nil"`                                            |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.service.port                       | int    | `5555`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.service.type                       | string | `"ClusterIP"`                                      |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.startupProbe.failureThreshold      | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.startupProbe.httpGet.path          | string | `"/api/workers"`                                   |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.startupProbe.httpGet.port          | string | `"flower"`                                         |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.startupProbe.initialDelaySeconds   | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.startupProbe.periodSeconds         | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.startupProbe.successThreshold      | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.startupProbe.timeoutSeconds        | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetCeleryFlower.topologySpreadConstraints          | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetCeleryFlower deployments                                                                                                                                                                                                                                                            |
-| supersetNode.affinity                                   | object | `{}`                                               | Affinity to be added to supersetNode deployment                                                                                                                                                                                                                                                                                     |
-| supersetNode.command                                    | list   | See `values.yaml`                                  | Startup command                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.connections.db_host                        | string | `"{{ .Release.Name }}-postgresql"`                 |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.connections.db_name                        | string | `"superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.connections.db_pass                        | string | `"superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.connections.db_port                        | string | `"5432"`                                           |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.connections.db_user                        | string | `"superset"`                                       |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.connections.redis_host                     | string | `"{{ .Release.Name }}-redis-headless"`             | Change in case of bringing your own redis and then also set redis.enabled:false                                                                                                                                                                                                                                                     |
-| supersetNode.connections.redis_port                     | string | `"6379"`                                           |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.containerSecurityContext                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.deploymentAnnotations                      | object | `{}`                                               | Annotations to be added to supersetNode deployment                                                                                                                                                                                                                                                                                  |
-| supersetNode.deploymentLabels                           | object | `{}`                                               | Labels to be added to supersetNode deployment                                                                                                                                                                                                                                                                                       |
-| supersetNode.env                                        | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.extraContainers                            | list   | `[]`                                               | Launch additional containers into supersetNode pod                                                                                                                                                                                                                                                                                  |
-| supersetNode.forceReload                                | bool   | `false`                                            | If true, forces deployment to reload on each upgrade                                                                                                                                                                                                                                                                                |
-| supersetNode.initContainers                             | list   | a container waiting for postgres                   | Init containers                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.livenessProbe.failureThreshold             | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.livenessProbe.httpGet.path                 | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.livenessProbe.httpGet.port                 | string | `"http"`                                           |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.livenessProbe.initialDelaySeconds          | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.livenessProbe.periodSeconds                | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.livenessProbe.successThreshold             | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.livenessProbe.timeoutSeconds               | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.podAnnotations                             | object | `{}`                                               | Annotations to be added to supersetNode pods                                                                                                                                                                                                                                                                                        |
-| supersetNode.podLabels                                  | object | `{}`                                               | Labels to be added to supersetNode pods                                                                                                                                                                                                                                                                                             |
-| supersetNode.podSecurityContext                         | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.readinessProbe.failureThreshold            | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.readinessProbe.httpGet.path                | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.readinessProbe.httpGet.port                | string | `"http"`                                           |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.readinessProbe.initialDelaySeconds         | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.readinessProbe.periodSeconds               | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.readinessProbe.successThreshold            | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.readinessProbe.timeoutSeconds              | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.replicaCount                               | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.resources                                  | object | `{}`                                               | Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                        |
-| supersetNode.startupProbe.failureThreshold              | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.startupProbe.httpGet.path                  | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.startupProbe.httpGet.port                  | string | `"http"`                                           |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.startupProbe.initialDelaySeconds           | int    | `15`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.startupProbe.periodSeconds                 | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.startupProbe.successThreshold              | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.startupProbe.timeoutSeconds                | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.strategy                                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetNode.topologySpreadConstraints                  | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetNode deployments                                                                                                                                                                                                                                                                    |
-| supersetWebsockets.affinity                             | object | `{}`                                               | Affinity to be added to supersetWebsockets deployment                                                                                                                                                                                                                                                                               |
-| supersetWebsockets.command                              | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.config                               | object | see `values.yaml`                                  | The config.json to pass to the server, see https://github.com/apache/superset/tree/master/superset-websocket Note that the configuration can also read from environment variables (which will have priority), see https://github.com/apache/superset/blob/master/superset-websocket/src/config.ts for a list of supported variables |
-| supersetWebsockets.containerSecurityContext             | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.deploymentAnnotations                | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.enabled                              | bool   | `false`                                            | This is only required if you intend to use `GLOBAL_ASYNC_QUERIES` in `ws` mode see https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries                                                                                                                                                               |
-| supersetWebsockets.image.pullPolicy                     | string | `"IfNotPresent"`                                   |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.image.repository                     | string | `"oneacrefund/superset-websocket"`                 | There is no official image (yet), this one is community-supported                                                                                                                                                                                                                                                                   |
-| supersetWebsockets.image.tag                            | string | `"latest"`                                         |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.ingress.path                         | string | `"/ws"`                                            |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.ingress.pathType                     | string | `"Prefix"`                                         |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.livenessProbe.failureThreshold       | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.livenessProbe.httpGet.path           | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.livenessProbe.httpGet.port           | string | `"ws"`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.livenessProbe.initialDelaySeconds    | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.livenessProbe.periodSeconds          | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.livenessProbe.successThreshold       | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.livenessProbe.timeoutSeconds         | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.podAnnotations                       | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.podLabels                            | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.podSecurityContext                   | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.readinessProbe.failureThreshold      | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.readinessProbe.httpGet.path          | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.readinessProbe.httpGet.port          | string | `"ws"`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.readinessProbe.initialDelaySeconds   | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.readinessProbe.periodSeconds         | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.readinessProbe.successThreshold      | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.readinessProbe.timeoutSeconds        | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.replicaCount                         | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.resources                            | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.service.annotations                  | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.service.loadBalancerIP               | string | `nil`                                              |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.service.nodePort.http                | int    | `"nil"`                                            |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.service.port                         | int    | `8080`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.service.type                         | string | `"ClusterIP"`                                      |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.startupProbe.failureThreshold        | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.startupProbe.httpGet.path            | string | `"/health"`                                        |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.startupProbe.httpGet.port            | string | `"ws"`                                             |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.startupProbe.initialDelaySeconds     | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.startupProbe.periodSeconds           | int    | `5`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.startupProbe.successThreshold        | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.startupProbe.timeoutSeconds          | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.strategy                             | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWebsockets.topologySpreadConstraints            | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetWebsockets deployments                                                                                                                                                                                                                                                              |
-| supersetWorker.affinity                                 | object | `{}`                                               | Affinity to be added to supersetWorker deployment                                                                                                                                                                                                                                                                                   |
-| supersetWorker.command                                  | list   | a `celery worker` command                          | Worker startup command                                                                                                                                                                                                                                                                                                              |
-| supersetWorker.containerSecurityContext                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.deploymentAnnotations                    | object | `{}`                                               | Annotations to be added to supersetWorker deployment                                                                                                                                                                                                                                                                                |
-| supersetWorker.deploymentLabels                         | object | `{}`                                               | Labels to be added to supersetWorker deployment                                                                                                                                                                                                                                                                                     |
-| supersetWorker.extraContainers                          | list   | `[]`                                               | Launch additional containers into supersetWorker pod                                                                                                                                                                                                                                                                                |
-| supersetWorker.forceReload                              | bool   | `false`                                            | If true, forces deployment to reload on each upgrade                                                                                                                                                                                                                                                                                |
-| supersetWorker.initContainers                           | list   | a container waiting for postgres and redis         | Init container                                                                                                                                                                                                                                                                                                                      |
-| supersetWorker.livenessProbe.exec.command               | list   | a `celery inspect ping` command                    | Liveness probe command                                                                                                                                                                                                                                                                                                              |
-| supersetWorker.livenessProbe.failureThreshold           | int    | `3`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.livenessProbe.initialDelaySeconds        | int    | `120`                                              |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.livenessProbe.periodSeconds              | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.livenessProbe.successThreshold           | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.livenessProbe.timeoutSeconds             | int    | `60`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.podAnnotations                           | object | `{}`                                               | Annotations to be added to supersetWorker pods                                                                                                                                                                                                                                                                                      |
-| supersetWorker.podLabels                                | object | `{}`                                               | Labels to be added to supersetWorker pods                                                                                                                                                                                                                                                                                           |
-| supersetWorker.podSecurityContext                       | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.readinessProbe                           | object | `{}`                                               | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic)                                                                                                                                                                                                                 |
-| supersetWorker.replicaCount                             | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.resources                                | object | `{}`                                               | Resource settings for the supersetWorker pods - these settings overwrite might existing values from the global resources object defined above.                                                                                                                                                                                      |
-| supersetWorker.startupProbe                             | object | `{}`                                               | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic)                                                                                                                                                                                                                 |
-| supersetWorker.strategy                                 | object | `{}`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| supersetWorker.topologySpreadConstraints                | list   | `[]`                                               | TopologySpreadConstrains to be added to supersetWorker deployments                                                                                                                                                                                                                                                                  |
-| tolerations                                             | list   | `[]`                                               |                                                                                                                                                                                                                                                                                                                                     |
-| topologySpreadConstraints                               | list   | `[]`                                               | TopologySpreadConstrains to be added to all deployments                                                                                                                                                                                                                                                                             |
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| affinity | object | `{}` |  |
+| bootstrapScript | string | see `values.yaml` | Install additional packages and do any other bootstrap configuration in this script For production clusters it's recommended to build own image with this step done in CI |
+| configFromSecret | string | `"{{ template \"superset.fullname\" . }}-config"` | The name of the secret which we will use to generate a superset_config.py file Note: this secret must have the key superset_config.py in it and can include other files as well |
+| configMountPath | string | `"/app/pythonpath"` |  |
+| configOverrides | object | `{}` | A dictionary of overrides to append at the end of superset_config.py - the name does not matter WARNING: the order is not guaranteed Files can be passed as helm --set-file configOverrides.my-override=my-file.py |
+| configOverridesFiles | object | `{}` | Same as above but the values are files |
+| envFromSecret | string | `"{{ template \"superset.fullname\" . }}-env"` | The name of the secret which we will use to populate env vars in deployed pods This can be useful for secret keys, etc. |
+| envFromSecrets | list | `[]` | This can be a list of templated strings |
+| extraConfigMountPath | string | `"/app/configs"` |  |
+| extraConfigs | object | `{}` | Extra files to mount on `/app/pythonpath` |
+| extraEnv | object | `{}` | Extra environment variables that will be passed into pods |
+| extraEnvRaw | list | `[]` | Extra environment variables in RAW format that will be passed into pods |
+| extraSecretEnv | object | `{}` | Extra environment variables to pass as secrets |
+| extraSecrets | object | `{}` | Extra files to mount on `/app/pythonpath` as secrets |
+| extraVolumeMounts | list | `[]` |  |
+| extraVolumes | list | `[]` |  |
+| fullnameOverride | string | `nil` | Provide a name to override the full names of resources |
+| hostAliases | list | `[]` | Custom hostAliases for all superset pods # https://kubernetes.io/docs/tasks/network/customize-hosts-file-for-pods/ |
+| image.pullPolicy | string | `"IfNotPresent"` |  |
+| image.repository | string | `"apachesuperset.docker.scarf.sh/apache/superset"` |  |
+| image.tag | string | `""` |  |
+| imagePullSecrets | list | `[]` |  |
+| ingress.annotations | object | `{}` |  |
+| ingress.enabled | bool | `false` |  |
+| ingress.extraHostsRaw | list | `[]` |  |
+| ingress.hosts[0] | string | `"chart-example.local"` |  |
+| ingress.ingressClassName | string | `nil` |  |
+| ingress.path | string | `"/"` |  |
+| ingress.pathType | string | `"ImplementationSpecific"` |  |
+| ingress.tls | list | `[]` |  |
+| init.adminUser.email | string | `"admin@superset.com"` |  |
+| init.adminUser.firstname | string | `"Superset"` |  |
+| init.adminUser.lastname | string | `"Admin"` |  |
+| init.adminUser.password | string | `"admin"` |  |
+| init.adminUser.username | string | `"admin"` |  |
+| init.affinity | object | `{}` |  |
+| init.command | list | a `superset_init.sh` command | Command |
+| init.containerSecurityContext | object | `{}` |  |
+| init.createAdmin | bool | `true` |  |
+| init.enabled | bool | `true` |  |
+| init.initContainers | list | a container waiting for postgres | List of initContainers |
+| init.initscript | string | a script to create admin user and initailize roles | A Superset init script |
+| init.jobAnnotations."helm.sh/hook" | string | `"post-install,post-upgrade"` |  |
+| init.jobAnnotations."helm.sh/hook-delete-policy" | string | `"before-hook-creation"` |  |
+| init.loadExamples | bool | `false` |  |
+| init.podAnnotations | object | `{}` |  |
+| init.podSecurityContext | object | `{}` |  |
+| init.resources | object | `{}` |  |
+| init.tolerations | list | `[]` |  |
+| init.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to init job |
+| initImage.pullPolicy | string | `"IfNotPresent"` |  |
+| initImage.repository | string | `"apache/superset"` |  |
+| initImage.tag | string | `"dockerize"` |  |
+| nameOverride | string | `nil` | Provide a name to override the name of the chart |
+| nodeSelector | object | `{}` |  |
+| postgresql | object | see `values.yaml` | Configuration values for the postgresql dependency. ref: https://github.com/kubernetes/charts/blob/master/stable/postgresql/README.md |
+| redis | object | see `values.yaml` | Configuration values for the Redis dependency. ref: https://github.com/bitnami/charts/blob/master/bitnami/redis More documentation can be found here: https://artifacthub.io/packages/helm/bitnami/redis |
+| resources | object | `{}` |  |
+| runAsUser | int | `0` | User ID directive. This user must have enough permissions to run the bootstrap script Running containers as root is not recommended in production. Change this to another UID - e.g. 1000 to be more secure |
+| service.annotations | object | `{}` |  |
+| service.loadBalancerIP | string | `nil` |  |
+| service.nodePort.http | int | `"nil"` |  |
+| service.port | int | `8088` |  |
+| service.type | string | `"ClusterIP"` |  |
+| serviceAccount.annotations | object | `{}` |  |
+| serviceAccount.create | bool | `false` | Create custom service account for Superset. If create: true and serviceAccountName is not provided, `superset.fullname` will be used. |
+| serviceAccountName | string | `nil` | Specify service account name to be used |
+| supersetCeleryBeat.affinity | object | `{}` | Affinity to be added to supersetCeleryBeat deployment |
+| supersetCeleryBeat.command | list | a `celery beat` command | Command |
+| supersetCeleryBeat.containerSecurityContext | object | `{}` |  |
+| supersetCeleryBeat.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat deployment |
+| supersetCeleryBeat.enabled | bool | `false` | This is only required if you intend to use alerts and reports |
+| supersetCeleryBeat.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade |
+| supersetCeleryBeat.initContainers | list | a container waiting for postgres | List of init containers |
+| supersetCeleryBeat.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryBeat pods |
+| supersetCeleryBeat.podLabels | object | `{}` | Labels to be added to supersetCeleryBeat pods |
+| supersetCeleryBeat.podSecurityContext | object | `{}` |  |
+| supersetCeleryBeat.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. |
+| supersetCeleryBeat.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryBeat deployments |
+| supersetCeleryFlower.affinity | object | `{}` | Affinity to be added to supersetCeleryFlower deployment |
+| supersetCeleryFlower.command | list | a `celery flower` command | Command |
+| supersetCeleryFlower.containerSecurityContext | object | `{}` |  |
+| supersetCeleryFlower.deploymentAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower deployment |
+| supersetCeleryFlower.enabled | bool | `false` | Enables a Celery flower deployment (management UI to monitor celery jobs) WARNING: on superset 1.x, this requires a Superset image that has `flower<1.0.0` installed (which is NOT the case of the default images) flower>=1.0.0 requires Celery 5+ which Superset 1.5 does not support |
+| supersetCeleryFlower.initContainers | list | a container waiting for postgres and redis | List of init containers |
+| supersetCeleryFlower.livenessProbe.failureThreshold | int | `3` |  |
+| supersetCeleryFlower.livenessProbe.httpGet.path | string | `"/api/workers"` |  |
+| supersetCeleryFlower.livenessProbe.httpGet.port | string | `"flower"` |  |
+| supersetCeleryFlower.livenessProbe.initialDelaySeconds | int | `5` |  |
+| supersetCeleryFlower.livenessProbe.periodSeconds | int | `5` |  |
+| supersetCeleryFlower.livenessProbe.successThreshold | int | `1` |  |
+| supersetCeleryFlower.livenessProbe.timeoutSeconds | int | `1` |  |
+| supersetCeleryFlower.podAnnotations | object | `{}` | Annotations to be added to supersetCeleryFlower pods |
+| supersetCeleryFlower.podLabels | object | `{}` | Labels to be added to supersetCeleryFlower pods |
+| supersetCeleryFlower.podSecurityContext | object | `{}` |  |
+| supersetCeleryFlower.readinessProbe.failureThreshold | int | `3` |  |
+| supersetCeleryFlower.readinessProbe.httpGet.path | string | `"/api/workers"` |  |
+| supersetCeleryFlower.readinessProbe.httpGet.port | string | `"flower"` |  |
+| supersetCeleryFlower.readinessProbe.initialDelaySeconds | int | `5` |  |
+| supersetCeleryFlower.readinessProbe.periodSeconds | int | `5` |  |
+| supersetCeleryFlower.readinessProbe.successThreshold | int | `1` |  |
+| supersetCeleryFlower.readinessProbe.timeoutSeconds | int | `1` |  |
+| supersetCeleryFlower.replicaCount | int | `1` |  |
+| supersetCeleryFlower.resources | object | `{}` | Resource settings for the CeleryBeat pods - these settings overwrite might existing values from the global resources object defined above. |
+| supersetCeleryFlower.service.annotations | object | `{}` |  |
+| supersetCeleryFlower.service.loadBalancerIP | string | `nil` |  |
+| supersetCeleryFlower.service.nodePort.http | int | `"nil"` |  |
+| supersetCeleryFlower.service.port | int | `5555` |  |
+| supersetCeleryFlower.service.type | string | `"ClusterIP"` |  |
+| supersetCeleryFlower.startupProbe.failureThreshold | int | `60` |  |
+| supersetCeleryFlower.startupProbe.httpGet.path | string | `"/api/workers"` |  |
+| supersetCeleryFlower.startupProbe.httpGet.port | string | `"flower"` |  |
+| supersetCeleryFlower.startupProbe.initialDelaySeconds | int | `5` |  |
+| supersetCeleryFlower.startupProbe.periodSeconds | int | `5` |  |
+| supersetCeleryFlower.startupProbe.successThreshold | int | `1` |  |
+| supersetCeleryFlower.startupProbe.timeoutSeconds | int | `1` |  |
+| supersetCeleryFlower.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetCeleryFlower deployments |
+| supersetNode.affinity | object | `{}` | Affinity to be added to supersetNode deployment |
+| supersetNode.command | list | See `values.yaml` | Startup command |
+| supersetNode.connections.db_host | string | `"{{ .Release.Name }}-postgresql"` |  |
+| supersetNode.connections.db_name | string | `"superset"` |  |
+| supersetNode.connections.db_pass | string | `"superset"` |  |
+| supersetNode.connections.db_port | string | `"5432"` |  |
+| supersetNode.connections.db_user | string | `"superset"` |  |
+| supersetNode.connections.redis_host | string | `"{{ .Release.Name }}-redis-headless"` | Change in case of bringing your own redis and then also set redis.enabled:false |
+| supersetNode.connections.redis_port | string | `"6379"` |  |
+| supersetNode.containerSecurityContext | object | `{}` |  |
+| supersetNode.deploymentAnnotations | object | `{}` | Annotations to be added to supersetNode deployment |
+| supersetNode.deploymentLabels | object | `{}` | Labels to be added to supersetNode deployment |
+| supersetNode.env | object | `{}` |  |
+| supersetNode.extraContainers | list | `[]` | Launch additional containers into supersetNode pod |
+| supersetNode.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade |
+| supersetNode.initContainers | list | a container waiting for postgres | Init containers |
+| supersetNode.livenessProbe.failureThreshold | int | `3` |  |
+| supersetNode.livenessProbe.httpGet.path | string | `"/health"` |  |
+| supersetNode.livenessProbe.httpGet.port | string | `"http"` |  |
+| supersetNode.livenessProbe.initialDelaySeconds | int | `15` |  |
+| supersetNode.livenessProbe.periodSeconds | int | `15` |  |
+| supersetNode.livenessProbe.successThreshold | int | `1` |  |
+| supersetNode.livenessProbe.timeoutSeconds | int | `1` |  |
+| supersetNode.podAnnotations | object | `{}` | Annotations to be added to supersetNode pods |
+| supersetNode.podLabels | object | `{}` | Labels to be added to supersetNode pods |
+| supersetNode.podSecurityContext | object | `{}` |  |
+| supersetNode.readinessProbe.failureThreshold | int | `3` |  |
+| supersetNode.readinessProbe.httpGet.path | string | `"/health"` |  |
+| supersetNode.readinessProbe.httpGet.port | string | `"http"` |  |
+| supersetNode.readinessProbe.initialDelaySeconds | int | `15` |  |
+| supersetNode.readinessProbe.periodSeconds | int | `15` |  |
+| supersetNode.readinessProbe.successThreshold | int | `1` |  |
+| supersetNode.readinessProbe.timeoutSeconds | int | `1` |  |
+| supersetNode.replicaCount | int | `1` |  |
+| supersetNode.resources | object | `{}` | Resource settings for the supersetNode pods - these settings overwrite might existing values from the global resources object defined above. |
+| supersetNode.startupProbe.failureThreshold | int | `60` |  |
+| supersetNode.startupProbe.httpGet.path | string | `"/health"` |  |
+| supersetNode.startupProbe.httpGet.port | string | `"http"` |  |
+| supersetNode.startupProbe.initialDelaySeconds | int | `15` |  |
+| supersetNode.startupProbe.periodSeconds | int | `5` |  |
+| supersetNode.startupProbe.successThreshold | int | `1` |  |
+| supersetNode.startupProbe.timeoutSeconds | int | `1` |  |
+| supersetNode.strategy | object | `{}` |  |
+| supersetNode.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetNode deployments |
+| supersetWebsockets.affinity | object | `{}` | Affinity to be added to supersetWebsockets deployment |
+| supersetWebsockets.command | list | `[]` |  |
+| supersetWebsockets.config | object | see `values.yaml` | The config.json to pass to the server, see https://github.com/apache/superset/tree/master/superset-websocket Note that the configuration can also read from environment variables (which will have priority), see https://github.com/apache/superset/blob/master/superset-websocket/src/config.ts for a list of supported variables |
+| supersetWebsockets.containerSecurityContext | object | `{}` |  |
+| supersetWebsockets.deploymentAnnotations | object | `{}` |  |
+| supersetWebsockets.enabled | bool | `false` | This is only required if you intend to use `GLOBAL_ASYNC_QUERIES` in `ws` mode see https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries |
+| supersetWebsockets.image.pullPolicy | string | `"IfNotPresent"` |  |
+| supersetWebsockets.image.repository | string | `"oneacrefund/superset-websocket"` | There is no official image (yet), this one is community-supported |
+| supersetWebsockets.image.tag | string | `"latest"` |  |
+| supersetWebsockets.ingress.path | string | `"/ws"` |  |
+| supersetWebsockets.ingress.pathType | string | `"Prefix"` |  |
+| supersetWebsockets.livenessProbe.failureThreshold | int | `3` |  |
+| supersetWebsockets.livenessProbe.httpGet.path | string | `"/health"` |  |
+| supersetWebsockets.livenessProbe.httpGet.port | string | `"ws"` |  |
+| supersetWebsockets.livenessProbe.initialDelaySeconds | int | `5` |  |
+| supersetWebsockets.livenessProbe.periodSeconds | int | `5` |  |
+| supersetWebsockets.livenessProbe.successThreshold | int | `1` |  |
+| supersetWebsockets.livenessProbe.timeoutSeconds | int | `1` |  |
+| supersetWebsockets.podAnnotations | object | `{}` |  |
+| supersetWebsockets.podLabels | object | `{}` |  |
+| supersetWebsockets.podSecurityContext | object | `{}` |  |
+| supersetWebsockets.readinessProbe.failureThreshold | int | `3` |  |
+| supersetWebsockets.readinessProbe.httpGet.path | string | `"/health"` |  |
+| supersetWebsockets.readinessProbe.httpGet.port | string | `"ws"` |  |
+| supersetWebsockets.readinessProbe.initialDelaySeconds | int | `5` |  |
+| supersetWebsockets.readinessProbe.periodSeconds | int | `5` |  |
+| supersetWebsockets.readinessProbe.successThreshold | int | `1` |  |
+| supersetWebsockets.readinessProbe.timeoutSeconds | int | `1` |  |
+| supersetWebsockets.replicaCount | int | `1` |  |
+| supersetWebsockets.resources | object | `{}` |  |
+| supersetWebsockets.service.annotations | object | `{}` |  |
+| supersetWebsockets.service.loadBalancerIP | string | `nil` |  |
+| supersetWebsockets.service.nodePort.http | int | `"nil"` |  |
+| supersetWebsockets.service.port | int | `8080` |  |
+| supersetWebsockets.service.type | string | `"ClusterIP"` |  |
+| supersetWebsockets.startupProbe.failureThreshold | int | `60` |  |
+| supersetWebsockets.startupProbe.httpGet.path | string | `"/health"` |  |
+| supersetWebsockets.startupProbe.httpGet.port | string | `"ws"` |  |
+| supersetWebsockets.startupProbe.initialDelaySeconds | int | `5` |  |
+| supersetWebsockets.startupProbe.periodSeconds | int | `5` |  |
+| supersetWebsockets.startupProbe.successThreshold | int | `1` |  |
+| supersetWebsockets.startupProbe.timeoutSeconds | int | `1` |  |
+| supersetWebsockets.strategy | object | `{}` |  |
+| supersetWebsockets.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWebsockets deployments |
+| supersetWorker.affinity | object | `{}` | Affinity to be added to supersetWorker deployment |
+| supersetWorker.command | list | a `celery worker` command | Worker startup command |
+| supersetWorker.containerSecurityContext | object | `{}` |  |
+| supersetWorker.deploymentAnnotations | object | `{}` | Annotations to be added to supersetWorker deployment |
+| supersetWorker.deploymentLabels | object | `{}` | Labels to be added to supersetWorker deployment |
+| supersetWorker.extraContainers | list | `[]` | Launch additional containers into supersetWorker pod |
+| supersetWorker.forceReload | bool | `false` | If true, forces deployment to reload on each upgrade |
+| supersetWorker.initContainers | list | a container waiting for postgres and redis | Init container |
+| supersetWorker.livenessProbe.exec.command | list | a `celery inspect ping` command | Liveness probe command |
+| supersetWorker.livenessProbe.failureThreshold | int | `3` |  |
+| supersetWorker.livenessProbe.initialDelaySeconds | int | `120` |  |
+| supersetWorker.livenessProbe.periodSeconds | int | `60` |  |
+| supersetWorker.livenessProbe.successThreshold | int | `1` |  |
+| supersetWorker.livenessProbe.timeoutSeconds | int | `60` |  |
+| supersetWorker.podAnnotations | object | `{}` | Annotations to be added to supersetWorker pods |
+| supersetWorker.podLabels | object | `{}` | Labels to be added to supersetWorker pods |
+| supersetWorker.podSecurityContext | object | `{}` |  |
+| supersetWorker.readinessProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) |
+| supersetWorker.replicaCount | int | `1` |  |
+| supersetWorker.resources | object | `{}` | Resource settings for the supersetWorker pods - these settings overwrite might existing values from the global resources object defined above. |
+| supersetWorker.startupProbe | object | `{}` | No startup/readiness probes by default since we don't really care about its startup time (it doesn't serve traffic) |
+| supersetWorker.strategy | object | `{}` |  |
+| supersetWorker.topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to supersetWorker deployments |
+| tolerations | list | `[]` |  |
+| topologySpreadConstraints | list | `[]` | TopologySpreadConstrains to be added to all deployments |
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
index 25b7e5364a..00466c607a 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/transformProps.ts
@@ -53,7 +53,7 @@ import {
   ForecastSeriesEnum,
   Refs,
 } from '../types';
-import { parseYAxisBound } from '../utils/controls';
+import { parseAxisBound } from '../utils/controls';
 import {
   getOverMaxHiddenFormatter,
   dedupSeries,
@@ -343,9 +343,9 @@ export default function transformProps(
     });
 
   // yAxisBounds need to be parsed to replace incompatible values with undefined
-  let [min, max] = (yAxisBounds || []).map(parseYAxisBound);
+  let [min, max] = (yAxisBounds || []).map(parseAxisBound);
   let [minSecondary, maxSecondary] = (yAxisBoundsSecondary || []).map(
-    parseYAxisBound,
+    parseAxisBound,
   );
 
   const array = ensureIsArray(chartProps.rawFormData?.time_compare);
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
index 5a5975c66b..018038772c 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
@@ -37,6 +37,8 @@ import {
   richTooltipSection,
   seriesOrderSection,
   percentageThresholdControl,
+  truncateXAxis,
+  xAxisBounds,
 } from '../../controls';
 import { AreaChartStackControlOptions } from '../../constants';
 
@@ -241,6 +243,8 @@ const config: ControlPanelConfig = {
             },
           },
         ],
+        [truncateXAxis],
+        [xAxisBounds],
         [
           {
             name: 'truncateYAxis',
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
index af482da1b4..c3002a2498 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
@@ -35,6 +35,8 @@ import {
   richTooltipSection,
   seriesOrderSection,
   showValueSection,
+  truncateXAxis,
+  xAxisBounds,
 } from '../../../controls';
 
 import { OrientationType } from '../../types';
@@ -224,6 +226,8 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] {
         },
       },
     ],
+    [truncateXAxis],
+    [xAxisBounds],
     [
       {
         name: 'truncateYAxis',
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
index 124ab1e935..5c5f7a0ab1 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
@@ -38,6 +38,8 @@ import {
   richTooltipSection,
   seriesOrderSection,
   showValueSection,
+  truncateXAxis,
+  xAxisBounds,
 } from '../../../controls';
 
 const {
@@ -229,6 +231,8 @@ const config: ControlPanelConfig = {
             },
           },
         ],
+        [truncateXAxis],
+        [xAxisBounds],
         [
           {
             name: 'truncateYAxis',
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
index bc813127ca..6701647694 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
@@ -37,6 +37,8 @@ import {
   richTooltipSection,
   seriesOrderSection,
   showValueSection,
+  truncateXAxis,
+  xAxisBounds,
 } from '../../../controls';
 
 const {
@@ -173,6 +175,8 @@ const config: ControlPanelConfig = {
             },
           },
         ],
+        [truncateXAxis],
+        [xAxisBounds],
         [
           {
             name: 'truncateYAxis',
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
index 2a8fbfb0af..0c6623f216 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
@@ -37,6 +37,8 @@ import {
   richTooltipSection,
   seriesOrderSection,
   showValueSectionWithoutStack,
+  truncateXAxis,
+  xAxisBounds,
 } from '../../../controls';
 
 const {
@@ -173,6 +175,8 @@ const config: ControlPanelConfig = {
             },
           },
         ],
+        [truncateXAxis],
+        [xAxisBounds],
         [
           {
             name: 'truncateYAxis',
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
index 9333cb48a1..021c306d05 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
@@ -35,6 +35,8 @@ import {
   richTooltipSection,
   seriesOrderSection,
   showValueSection,
+  truncateXAxis,
+  xAxisBounds,
 } from '../../controls';
 
 const {
@@ -223,6 +225,8 @@ const config: ControlPanelConfig = {
             },
           },
         ],
+        [truncateXAxis],
+        [xAxisBounds],
         [
           {
             name: 'truncateYAxis',
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts
index 17629c0996..a95a14077d 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/constants.ts
@@ -57,6 +57,7 @@ export const DEFAULT_FORM_DATA: EchartsTimeseriesFormData = {
   seriesType: EchartsTimeseriesSeriesType.Line,
   stack: false,
   tooltipTimeFormat: 'smart_date',
+  truncateXAxis: true,
   truncateYAxis: false,
   yAxisBounds: [null, null],
   zoomable: false,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts
index d59da861a0..e81f13b784 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/transformProps.ts
@@ -54,7 +54,7 @@ import {
 } from './types';
 import { DEFAULT_FORM_DATA } from './constants';
 import { ForecastSeriesEnum, ForecastValue, Refs } from '../types';
-import { parseYAxisBound } from '../utils/controls';
+import { parseAxisBound } from '../utils/controls';
 import {
   calculateLowerLogTick,
   dedupSeries,
@@ -64,6 +64,7 @@ import {
   getAxisType,
   getColtypesMapping,
   getLegendProps,
+  getMinAndMaxFromBounds,
 } from '../utils/series';
 import {
   extractAnnotationLabels,
@@ -159,8 +160,10 @@ export default function transformProps(
     stack,
     tooltipTimeFormat,
     tooltipSortByMetric,
+    truncateXAxis,
     truncateYAxis,
     xAxis: xAxisOrig,
+    xAxisBounds,
     xAxisLabelRotation,
     xAxisSortSeries,
     xAxisSortSeriesAscending,
@@ -386,15 +389,20 @@ export default function transformProps(
       }
     });
 
-  // yAxisBounds need to be parsed to replace incompatible values with undefined
-  let [min, max] = (yAxisBounds || []).map(parseYAxisBound);
+  // axis bounds need to be parsed to replace incompatible values with undefined
+  const [xAxisMin, xAxisMax] = (xAxisBounds || []).map(parseAxisBound);
+  let [yAxisMin, yAxisMax] = (yAxisBounds || []).map(parseAxisBound);
 
   // default to 0-100% range when doing row-level contribution chart
   if ((contributionMode === 'row' || isAreaExpand) && stack) {
-    if (min === undefined) min = 0;
-    if (max === undefined) max = 1;
-  } else if (logAxis && min === undefined && minPositiveValue !== undefined) {
-    min = calculateLowerLogTick(minPositiveValue);
+    if (yAxisMin === undefined) yAxisMin = 0;
+    if (yAxisMax === undefined) yAxisMax = 1;
+  } else if (
+    logAxis &&
+    yAxisMin === undefined &&
+    minPositiveValue !== undefined
+  ) {
+    yAxisMin = calculateLowerLogTick(minPositiveValue);
   }
 
   const tooltipFormatter =
@@ -450,12 +458,14 @@ export default function transformProps(
       xAxisType === AxisType.time && timeGrainSqla
         ? TIMEGRAIN_TO_TIMESTAMP[timeGrainSqla]
         : 0,
+    ...getMinAndMaxFromBounds(xAxisType, truncateXAxis, xAxisMin, xAxisMax),
   };
+
   let yAxis: any = {
     ...defaultYAxis,
     type: logAxis ? AxisType.log : AxisType.value,
-    min,
-    max,
+    min: yAxisMin,
+    max: yAxisMax,
     minorTick: { show: true },
     minorSplitLine: { show: minorSplitLine },
     axisLabel: {
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/types.ts b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/types.ts
index 1873086d99..65da981e49 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/types.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/types.ts
@@ -75,10 +75,12 @@ export type EchartsTimeseriesFormData = QueryFormData & {
   stack: StackType;
   timeCompare?: string[];
   tooltipTimeFormat?: string;
+  truncateXAxis: boolean;
   truncateYAxis: boolean;
   yAxisFormat?: string;
   xAxisTimeFormat?: string;
   timeGrainSqla?: TimeGranularity;
+  xAxisBounds: [number | undefined | null, number | undefined | null];
   yAxisBounds: [number | undefined | null, number | undefined | null];
   zoomable: boolean;
   richTooltip: boolean;
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/controls.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/controls.tsx
index 8f311e47e5..093617446a 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/controls.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/controls.tsx
@@ -248,3 +248,34 @@ export const seriesOrderSection: ControlSetRow[] = [
   [sortSeriesType],
   [sortSeriesAscending],
 ];
+
+export const truncateXAxis: ControlSetItem = {
+  name: 'truncateXAxis',
+  config: {
+    type: 'CheckboxControl',
+    label: t('Truncate X Axis'),
+    default: DEFAULT_FORM_DATA.truncateXAxis,
+    renderTrigger: true,
+    description: t(
+      'Truncate X Axis. Can be overridden by specifying a min or max bound. Only applicable for numercal X axis.',
+    ),
+  },
+};
+
+export const xAxisBounds: ControlSetItem = {
+  name: 'xAxisBounds',
+  config: {
+    type: 'BoundsControl',
+    label: t('X Axis Bounds'),
+    renderTrigger: true,
+    default: DEFAULT_FORM_DATA.xAxisBounds,
+    description: t(
+      'Bounds for numerical X axis. Not applicable for temporal or categorical axes. ' +
+        'When left empty, the bounds are dynamically defined based on the min/max of the data. ' +
+        "Note that this feature will only expand the axis range. It won't " +
+        "narrow the data's extent.",
+    ),
+    visibility: ({ controls }: ControlPanelsContainerProps) =>
+      Boolean(controls?.truncateXAxis?.value),
+  },
+};
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/controls.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/controls.ts
index af91596b5e..e5ba4c95d1 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/controls.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/controls.ts
@@ -20,7 +20,7 @@
 import { validateNumber } from '@superset-ui/core';
 
 // eslint-disable-next-line import/prefer-default-export
-export function parseYAxisBound(
+export function parseAxisBound(
   bound?: string | number | null,
 ): number | undefined {
   if (bound === undefined || bound === null || Number.isNaN(Number(bound))) {
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
index bd4e329d0b..aa353f66d1 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/utils/series.ts
@@ -543,3 +543,17 @@ export function calculateLowerLogTick(minPositiveValue: number) {
   const logBase10 = Math.floor(Math.log10(minPositiveValue));
   return Math.pow(10, logBase10);
 }
+
+export function getMinAndMaxFromBounds(
+  axisType: AxisType,
+  truncateAxis: boolean,
+  min?: number,
+  max?: number,
+): { min: number | 'dataMin'; max: number | 'dataMax' } | {} {
+  return truncateAxis && axisType === AxisType.value
+    ? {
+        min: min === undefined ? 'dataMin' : min,
+        max: max === undefined ? 'dataMax' : max,
+      }
+    : {};
+}
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/utils/controls.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/utils/controls.test.ts
index 60ced57739..cb0faac595 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/utils/controls.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/utils/controls.test.ts
@@ -16,22 +16,22 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import { parseYAxisBound } from '../../src/utils/controls';
+import { parseAxisBound } from '../../src/utils/controls';
 
 describe('parseYAxisBound', () => {
   it('should return undefined for invalid values', () => {
-    expect(parseYAxisBound(null)).toBeUndefined();
-    expect(parseYAxisBound(undefined)).toBeUndefined();
-    expect(parseYAxisBound(NaN)).toBeUndefined();
-    expect(parseYAxisBound('abc')).toBeUndefined();
+    expect(parseAxisBound(null)).toBeUndefined();
+    expect(parseAxisBound(undefined)).toBeUndefined();
+    expect(parseAxisBound(NaN)).toBeUndefined();
+    expect(parseAxisBound('abc')).toBeUndefined();
   });
 
   it('should return numeric value for valid values', () => {
-    expect(parseYAxisBound(0)).toEqual(0);
-    expect(parseYAxisBound('0')).toEqual(0);
-    expect(parseYAxisBound(1)).toEqual(1);
-    expect(parseYAxisBound('1')).toEqual(1);
-    expect(parseYAxisBound(10.1)).toEqual(10.1);
-    expect(parseYAxisBound('10.1')).toEqual(10.1);
+    expect(parseAxisBound(0)).toEqual(0);
+    expect(parseAxisBound('0')).toEqual(0);
+    expect(parseAxisBound(1)).toEqual(1);
+    expect(parseAxisBound('1')).toEqual(1);
+    expect(parseAxisBound(10.1)).toEqual(10.1);
+    expect(parseAxisBound('10.1')).toEqual(10.1);
   });
 });
diff --git a/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts b/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
index 927ee49e8c..b445dceabb 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
+++ b/superset-frontend/plugins/plugin-chart-echarts/test/utils/series.test.ts
@@ -36,6 +36,7 @@ import {
   getChartPadding,
   getLegendProps,
   getOverMaxHiddenFormatter,
+  getMinAndMaxFromBounds,
   sanitizeHtml,
   sortAndFilterSeries,
   sortRows,
@@ -879,3 +880,30 @@ test('getAxisType', () => {
   expect(getAxisType(GenericDataType.BOOLEAN)).toEqual(AxisType.category);
   expect(getAxisType(GenericDataType.STRING)).toEqual(AxisType.category);
 });
+
+test('getMinAndMaxFromBounds returns empty object when not truncating', () => {
+  expect(getMinAndMaxFromBounds(AxisType.value, false, 10, 100)).toEqual({});
+});
+
+test('getMinAndMaxFromBounds returns automatic bounds when truncating', () => {
+  expect(
+    getMinAndMaxFromBounds(AxisType.value, true, undefined, undefined),
+  ).toEqual({
+    min: 'dataMin',
+    max: 'dataMax',
+  });
+});
+
+test('getMinAndMaxFromBounds returns automatic upper bound when truncating', () => {
+  expect(getMinAndMaxFromBounds(AxisType.value, true, 10, undefined)).toEqual({
+    min: 10,
+    max: 'dataMax',
+  });
+});
+
+test('getMinAndMaxFromBounds returns automatic lower bound when truncating', () => {
+  expect(getMinAndMaxFromBounds(AxisType.value, true, undefined, 100)).toEqual({
+    min: 'dataMin',
+    max: 100,
+  });
+});
diff --git a/superset/dashboards/schemas.py b/superset/dashboards/schemas.py
index 9a6bcfb456..ab4ec819b4 100644
--- a/superset/dashboards/schemas.py
+++ b/superset/dashboards/schemas.py
@@ -203,7 +203,7 @@ class DashboardGetResponseSchema(Schema):
     changed_on_humanized = fields.String(data_key="changed_on_delta_humanized")
     is_managed_externally = fields.Boolean(allow_none=True, dump_default=False)
 
-    # pylint: disable=unused-argument
+    # pylint: disable=unused-argument, no-self-use
     @post_dump()
     def post_dump(self, serialized: dict[str, Any], **kwargs: Any) -> dict[str, Any]:
         if security_manager.is_guest_user():
@@ -260,7 +260,7 @@ class DashboardDatasetSchema(Schema):
     granularity_sqla = fields.List(fields.List(fields.Str()))
     normalize_columns = fields.Bool()
 
-    # pylint: disable=unused-argument
+    # pylint: disable=unused-argument, no-self-use
     @post_dump()
     def post_dump(self, serialized: dict[str, Any], **kwargs: Any) -> dict[str, Any]:
         if security_manager.is_guest_user():
@@ -270,7 +270,7 @@ class DashboardDatasetSchema(Schema):
 
 
 class BaseDashboardSchema(Schema):
-    # pylint: disable=no-self-use,unused-argument
+    # pylint: disable=no-self-use, unused-argument
     @post_load
     def post_load(self, data: dict[str, Any], **kwargs: Any) -> dict[str, Any]:
         if data.get("slug"):


(superset) 03/08: fix: Includes 90° x-axis label rotation (#26207)

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelsmolina pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 2532fa5dd90dde112cc3bf4dc4e6a52a6a77c2fe
Author: Michael S. Molina <70...@users.noreply.github.com>
AuthorDate: Thu Dec 7 13:08:54 2023 -0300

    fix: Includes 90° x-axis label rotation (#26207)
---
 .../plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx    | 1 +
 .../plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx    | 1 +
 .../plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx     | 1 +
 .../plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx    | 1 +
 .../plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx | 1 +
 .../src/Timeseries/Regular/SmoothLine/controlPanel.tsx                   | 1 +
 .../plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx    | 1 +
 7 files changed, 7 insertions(+)

diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
index c9f9027a3e..ec2443bb60 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/MixedTimeseries/controlPanel.tsx
@@ -325,6 +325,7 @@ const config: ControlPanelConfig = {
               choices: [
                 [0, '0°'],
                 [45, '45°'],
+                [90, '90°'],
               ],
               default: xAxisLabelRotation,
               renderTrigger: true,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
index 8515139548..5a5975c66b 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Area/controlPanel.tsx
@@ -202,6 +202,7 @@ const config: ControlPanelConfig = {
               choices: [
                 [0, '0°'],
                 [45, '45°'],
+                [90, '90°'],
               ],
               default: xAxisLabelRotation,
               renderTrigger: true,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
index 47fe550ad7..af482da1b4 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Bar/controlPanel.tsx
@@ -172,6 +172,7 @@ function createAxisControl(axis: 'x' | 'y'): ControlSetRow[] {
           choices: [
             [0, '0°'],
             [45, '45°'],
+            [90, '90°'],
           ],
           default: xAxisLabelRotation,
           renderTrigger: true,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
index 637a5fbc57..124ab1e935 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Line/controlPanel.tsx
@@ -190,6 +190,7 @@ const config: ControlPanelConfig = {
               choices: [
                 [0, '0°'],
                 [45, '45°'],
+                [90, '90°'],
               ],
               default: xAxisLabelRotation,
               renderTrigger: true,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
index ffcee71792..bc813127ca 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/Scatter/controlPanel.tsx
@@ -133,6 +133,7 @@ const config: ControlPanelConfig = {
               choices: [
                 [0, '0°'],
                 [45, '45°'],
+                [90, '90°'],
               ],
               default: xAxisLabelRotation,
               renderTrigger: true,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
index cb7164e0ab..2a8fbfb0af 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Regular/SmoothLine/controlPanel.tsx
@@ -132,6 +132,7 @@ const config: ControlPanelConfig = {
               choices: [
                 [0, '0°'],
                 [45, '45°'],
+                [90, '90°'],
               ],
               default: xAxisLabelRotation,
               renderTrigger: true,
diff --git a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
index 1921e698c2..9333cb48a1 100644
--- a/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
+++ b/superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/Step/controlPanel.tsx
@@ -184,6 +184,7 @@ const config: ControlPanelConfig = {
               choices: [
                 [0, '0°'],
                 [45, '45°'],
+                [90, '90°'],
               ],
               default: xAxisLabelRotation,
               renderTrigger: true,