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 2024/01/25 14:53:10 UTC

(superset) branch 3.1 updated (1b41307b9a -> aa542b53fc)

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

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


    from 1b41307b9a fix: Avoid 500 if end users write bad SQL (#26638)
     new 8fa8ae68b2 fix(translation): correct translation errors for Chinese(zh) (#26645)
     new 224c3a1b3d fix: Catch ImportErrors for Google SDKs (#25550)
     new 24567a57a5 fix: do not use lodash/memoize (#26709)
     new 51ca5fa049 fix(legacy-charts): Show Time Grain control for legacy charts (#26705)
     new 1273f72f94 fix(db2): Improving support for ibm db2 connections (#26744)
     new 519f7704ef fix(BigQuery): Support special characters in column/metric names used in ORDER BY (#26461)
     new 33d8f72f91 fix(logging): Filter out undefined columns (#26314)
     new 72ad551d1e fix(import): only import FORMULA annotations (#26652)
     new debe7811d0 fix: helm chart comment on SECRET_KEY (#26674)
     new aa542b53fc feat(helm): Upgrade default Superset version to 3.1.0 (#26707)

The 10 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:
 helm/superset/Chart.yaml                           |   4 +-
 helm/superset/README.md                            | 500 ++++++++++-----------
 helm/superset/values.yaml                          |   4 +-
 setup.py                                           |   2 +-
 .../src/shared-controls/sharedControls.tsx         |   2 +-
 .../dashboard/components/gridComponents/Chart.jsx  |   4 +-
 .../src/utils/getControlsForVizType.js             |   4 +-
 superset/cli/importexport.py                       |   3 +-
 superset/commands/chart/importers/v1/utils.py      |  18 +
 superset/db_engine_specs/bigquery.py               |   2 +-
 superset/db_engine_specs/db2.py                    |  55 +++
 superset/models/helpers.py                         |   4 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |  16 +-
 tests/integration_tests/charts/commands_tests.py   |   1 +
 tests/integration_tests/cli_tests.py               |  12 +-
 .../db_engine_specs/bigquery_tests.py              |   2 +-
 tests/integration_tests/fixtures/importexport.py   |  35 ++
 .../charts/commands/importers/v1/import_test.py    |  19 +
 tests/unit_tests/db_engine_specs/test_db2.py       |  75 ++++
 19 files changed, 487 insertions(+), 275 deletions(-)
 create mode 100644 tests/unit_tests/db_engine_specs/test_db2.py


(superset) 09/10: fix: helm chart comment on SECRET_KEY (#26674)

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

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

commit debe7811d066aed55fce45316abd69a102f0f765
Author: Daniel Vaz Gaspar <da...@gmail.com>
AuthorDate: Wed Jan 24 21:36:18 2024 +0000

    fix: helm chart comment on SECRET_KEY (#26674)
    
    Co-authored-by: Ville Brofeldt <33...@users.noreply.github.com>
---
 helm/superset/Chart.yaml  |   2 +-
 helm/superset/README.md   | 500 +++++++++++++++++++++++-----------------------
 helm/superset/values.yaml |   4 +-
 3 files changed, 253 insertions(+), 253 deletions(-)

diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml
index cbca942569..34c987e6c8 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.2
+version: 0.12.1
 dependencies:
   - name: postgresql
     version: 12.1.6
diff --git a/helm/superset/README.md b/helm/superset/README.md
index 1eaf4928c1..a92af45696 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.2](https://img.shields.io/badge/Version-0.11.2-informational?style=flat-square)
+![Version: 0.12.1](https://img.shields.io/badge/Version-0.12.1-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,254 +48,254 @@ 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.extraContainers | list | `[]` | Launch additional containers into init job pod |
-| init.initContainers | list | a container waiting for postgres | List of initContainers |
-| init.initscript | string | a script to create admin user and initialize 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/bitnami/charts/tree/main/bitnami/postgresql |
-| 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.extraContainers | list | `[]` | Launch additional containers into supersetCeleryBeat pods |
-| 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.extraContainers | list | `[]` | Launch additional containers into supersetCeleryFlower pods |
-| 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.autoscaling.enabled | bool | `false` |  |
-| supersetNode.autoscaling.maxReplicas | int | `100` |  |
-| supersetNode.autoscaling.minReplicas | int | `1` |  |
-| supersetNode.autoscaling.targetCPUUtilizationPercentage | int | `80` |  |
-| 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.extraContainers | list | `[]` | Launch additional containers into supersetWebsockets pods |
-| 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.autoscaling.enabled | bool | `false` |  |
-| supersetWorker.autoscaling.maxReplicas | int | `100` |  |
-| supersetWorker.autoscaling.minReplicas | int | `1` |  |
-| supersetWorker.autoscaling.targetCPUUtilizationPercentage | int | `80` |  |
-| 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.extraContainers                                      | list   | `[]`                                               | Launch additional containers into init job pod                                                                                                                                                                                                                                                                                      |
+| init.initContainers                                       | list   | a container waiting for postgres                   | List of initContainers                                                                                                                                                                                                                                                                                                              |
+| init.initscript                                           | string | a script to create admin user and initialize 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/bitnami/charts/tree/main/bitnami/postgresql                                                                                                                                                                                                             |
+| 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.extraContainers                        | list   | `[]`                                               | Launch additional containers into supersetCeleryBeat pods                                                                                                                                                                                                                                                                           |
+| 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.extraContainers                      | list   | `[]`                                               | Launch additional containers into supersetCeleryFlower pods                                                                                                                                                                                                                                                                         |
+| 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.autoscaling.enabled                          | bool   | `false`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.autoscaling.maxReplicas                      | int    | `100`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.autoscaling.minReplicas                      | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetNode.autoscaling.targetCPUUtilizationPercentage   | int    | `80`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| 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.extraContainers                        | list   | `[]`                                               | Launch additional containers into supersetWebsockets pods                                                                                                                                                                                                                                                                           |
+| 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.autoscaling.enabled                        | bool   | `false`                                            |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.autoscaling.maxReplicas                    | int    | `100`                                              |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.autoscaling.minReplicas                    | int    | `1`                                                |                                                                                                                                                                                                                                                                                                                                     |
+| supersetWorker.autoscaling.targetCPUUtilizationPercentage | int    | `80`                                               |                                                                                                                                                                                                                                                                                                                                     |
+| 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/values.yaml b/helm/superset/values.yaml
index 26d4547420..15c5f7e214 100644
--- a/helm/superset/values.yaml
+++ b/helm/superset/values.yaml
@@ -165,8 +165,8 @@ configOverrides: {}
   #   # The default user self registration role
   #   AUTH_USER_REGISTRATION_ROLE = "Admin"
   # secret: |
-  #   # Generate your own secret key for encryption. Use openssl rand -base64 42 to generate a good key
-  #   SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'
+  #   # Generate your own secret key for encryption. Use `openssl rand -base64 42` to generate a good key
+  #   SECRET_KEY = 'CHANGE_ME_TO_A_COMPLEX_RANDOM_SECRET'
 
 # -- Same as above but the values are files
 configOverridesFiles: {}


(superset) 08/10: fix(import): only import FORMULA annotations (#26652)

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

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

commit 72ad551d1e7b78f650461d6bf84c04da755b00fd
Author: Maxime Beauchemin <ma...@gmail.com>
AuthorDate: Fri Jan 19 15:13:18 2024 -0800

    fix(import): only import FORMULA annotations (#26652)
---
 superset/cli/importexport.py                       |  3 +-
 superset/commands/chart/importers/v1/utils.py      | 18 +++++++++++
 tests/integration_tests/charts/commands_tests.py   |  1 +
 tests/integration_tests/cli_tests.py               | 12 +++++---
 tests/integration_tests/fixtures/importexport.py   | 35 ++++++++++++++++++++++
 .../charts/commands/importers/v1/import_test.py    | 19 ++++++++++++
 6 files changed, 83 insertions(+), 5 deletions(-)

diff --git a/superset/cli/importexport.py b/superset/cli/importexport.py
index 0d76e535e8..5b19cc9ffc 100755
--- a/superset/cli/importexport.py
+++ b/superset/cli/importexport.py
@@ -133,12 +133,13 @@ if feature_flags.get("VERSIONED_EXPORT"):
     @click.option(
         "--path",
         "-p",
+        required=True,
         help="Path to a single ZIP file",
     )
     @click.option(
         "--username",
         "-u",
-        default=None,
+        required=True,
         help="Specify the user name to assign dashboards to",
     )
     def import_dashboards(path: str, username: Optional[str]) -> None:
diff --git a/superset/commands/chart/importers/v1/utils.py b/superset/commands/chart/importers/v1/utils.py
index d27b631f97..f905f8cc3a 100644
--- a/superset/commands/chart/importers/v1/utils.py
+++ b/superset/commands/chart/importers/v1/utils.py
@@ -28,6 +28,22 @@ from superset.commands.exceptions import ImportFailedError
 from superset.migrations.shared.migrate_viz import processors
 from superset.migrations.shared.migrate_viz.base import MigrateViz
 from superset.models.slice import Slice
+from superset.utils.core import AnnotationType
+
+
+def filter_chart_annotations(chart_config: dict[str, Any]) -> None:
+    """
+    Mutating the chart's config params to keep only the annotations of
+    type FORMULA.
+    TODO:
+      handle annotation dependencies on either other charts or
+      annotation layers objects.
+    """
+    params = chart_config.get("params", {})
+    als = params.get("annotation_layers", [])
+    params["annotation_layers"] = [
+        al for al in als if al.get("annotationType") == AnnotationType.FORMULA
+    ]
 
 
 def import_chart(
@@ -47,6 +63,8 @@ def import_chart(
             "Chart doesn't exist and user doesn't have permission to create charts"
         )
 
+    filter_chart_annotations(config)
+
     # TODO (betodealmeida): move this logic to import_from_dict
     config["params"] = json.dumps(config["params"])
 
diff --git a/tests/integration_tests/charts/commands_tests.py b/tests/integration_tests/charts/commands_tests.py
index 87c7823ae5..b6adf197f5 100644
--- a/tests/integration_tests/charts/commands_tests.py
+++ b/tests/integration_tests/charts/commands_tests.py
@@ -190,6 +190,7 @@ class TestImportChartsCommand(SupersetTestCase):
         )
         dataset = chart.datasource
         assert json.loads(chart.params) == {
+            "annotation_layers": [],
             "color_picker": {"a": 1, "b": 135, "g": 122, "r": 0},
             "datasource": dataset.uid,
             "js_columns": ["color"],
diff --git a/tests/integration_tests/cli_tests.py b/tests/integration_tests/cli_tests.py
index 55557ab32d..487e018369 100644
--- a/tests/integration_tests/cli_tests.py
+++ b/tests/integration_tests/cli_tests.py
@@ -235,7 +235,8 @@ def test_import_dashboards_versioned_export(import_dashboards_command, app_conte
 
     runner = app.test_cli_runner()
     response = runner.invoke(
-        superset.cli.importexport.import_dashboards, ("-p", "dashboards.json")
+        superset.cli.importexport.import_dashboards,
+        ("-p", "dashboards.json", "-u", "admin"),
     )
 
     assert response.exit_code == 0
@@ -249,7 +250,8 @@ def test_import_dashboards_versioned_export(import_dashboards_command, app_conte
 
     runner = app.test_cli_runner()
     response = runner.invoke(
-        superset.cli.importexport.import_dashboards, ("-p", "dashboards.zip")
+        superset.cli.importexport.import_dashboards,
+        ("-p", "dashboards.zip", "-u", "admin"),
     )
 
     assert response.exit_code == 0
@@ -283,7 +285,8 @@ def test_failing_import_dashboards_versioned_export(
 
     runner = app.test_cli_runner()
     response = runner.invoke(
-        superset.cli.importexport.import_dashboards, ("-p", "dashboards.json")
+        superset.cli.importexport.import_dashboards,
+        ("-p", "dashboards.json", "-u", "admin"),
     )
 
     assert_cli_fails_properly(response, caplog)
@@ -295,7 +298,8 @@ def test_failing_import_dashboards_versioned_export(
 
     runner = app.test_cli_runner()
     response = runner.invoke(
-        superset.cli.importexport.import_dashboards, ("-p", "dashboards.zip")
+        superset.cli.importexport.import_dashboards,
+        ("-p", "dashboards.zip", "-u", "admin"),
     )
 
     assert_cli_fails_properly(response, caplog)
diff --git a/tests/integration_tests/fixtures/importexport.py b/tests/integration_tests/fixtures/importexport.py
index 8fa61539dc..5096c27233 100644
--- a/tests/integration_tests/fixtures/importexport.py
+++ b/tests/integration_tests/fixtures/importexport.py
@@ -14,6 +14,7 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+from copy import deepcopy
 from typing import Any
 
 # example V0 import/export format
@@ -575,6 +576,40 @@ chart_config: dict[str, Any] = {
     "version": "1.0.0",
     "dataset_uuid": "10808100-158b-42c4-842e-f32b99d88dfb",
 }
+chart_config_with_mixed_annotations: dict[str, Any] = deepcopy(chart_config)
+chart_config_with_mixed_annotations["params"]["annotation_layers"] = [
+    {
+        "name": "Formula test layer",
+        "annotationType": "FORMULA",
+        "color": None,
+        "descriptionColumns": [],
+        "hideLine": False,
+        "opacity": "",
+        "overrides": {"time_range": None},
+        "show": True,
+        "showLabel": False,
+        "showMarkers": False,
+        "style": "solid",
+        "value": "100000",
+        "width": 1,
+    },
+    {
+        "name": "Native layer to be removed on import",
+        "annotationType": "EVENT",
+        "sourceType": "NATIVE",
+        "color": None,
+        "opacity": "",
+        "style": "solid",
+        "width": 1,
+        "showMarkers": False,
+        "hideLine": False,
+        "value": 2,
+        "overrides": {"time_range": None},
+        "show": True,
+        "showLabel": False,
+        "descriptionColumns": [],
+    },
+]
 
 dashboard_config: dict[str, Any] = {
     "dashboard_title": "Test dash",
diff --git a/tests/unit_tests/charts/commands/importers/v1/import_test.py b/tests/unit_tests/charts/commands/importers/v1/import_test.py
index f0d142644d..903b7468ba 100644
--- a/tests/unit_tests/charts/commands/importers/v1/import_test.py
+++ b/tests/unit_tests/charts/commands/importers/v1/import_test.py
@@ -108,3 +108,22 @@ def test_import_chart_without_permission(
         str(excinfo.value)
         == "Chart doesn't exist and user doesn't have permission to create charts"
     )
+
+
+def test_filter_chart_annotations(mocker: MockFixture, session: Session) -> None:
+    """
+    Test importing a chart.
+    """
+    from superset import security_manager
+    from superset.commands.chart.importers.v1.utils import filter_chart_annotations
+    from tests.integration_tests.fixtures.importexport import (
+        chart_config_with_mixed_annotations,
+    )
+
+    config = copy.deepcopy(chart_config_with_mixed_annotations)
+    filter_chart_annotations(config)
+    params = config["params"]
+    annotation_layers = params["annotation_layers"]
+
+    assert len(annotation_layers) == 1
+    assert all([al["annotationType"] == "FORMULA" for al in annotation_layers])


(superset) 02/10: fix: Catch ImportErrors for Google SDKs (#25550)

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

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

commit 224c3a1b3d883d0db6d87978ef40d6d79487ed2a
Author: Pieter Ennes <pi...@ennes.nl>
AuthorDate: Sat Jan 20 00:00:43 2024 +0100

    fix: Catch ImportErrors for Google SDKs (#25550)
    
    (cherry picked from commit effd73f2cc5bd4afbc830ae98feca568c773e4a5)
---
 superset/db_engine_specs/bigquery.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/superset/db_engine_specs/bigquery.py b/superset/db_engine_specs/bigquery.py
index f3b9c486e9..8e7ed0bf7d 100644
--- a/superset/db_engine_specs/bigquery.py
+++ b/superset/db_engine_specs/bigquery.py
@@ -52,7 +52,7 @@ try:
     from google.oauth2 import service_account
 
     dependencies_installed = True
-except ModuleNotFoundError:
+except ImportError:
     dependencies_installed = False
 
 try:


(superset) 07/10: fix(logging): Filter out undefined columns (#26314)

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

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

commit 33d8f72f91b28028e7555a8179f51143d7d6f374
Author: John Bodley <45...@users.noreply.github.com>
AuthorDate: Thu Jan 25 13:17:10 2024 +1300

    fix(logging): Filter out undefined columns (#26314)
    
    (cherry picked from commit 01fdfbee0952d88b31910237e6e8a0c652dd65b2)
---
 superset-frontend/src/dashboard/components/gridComponents/Chart.jsx | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx b/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx
index a99061c707..f76f29724d 100644
--- a/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx
+++ b/superset-frontend/src/dashboard/components/gridComponents/Chart.jsx
@@ -274,7 +274,9 @@ class Chart extends React.Component {
   changeFilter(newSelectedValues = {}) {
     this.props.logEvent(LOG_ACTIONS_CHANGE_DASHBOARD_FILTER, {
       id: this.props.chart.id,
-      columns: Object.keys(newSelectedValues),
+      columns: Object.keys(newSelectedValues).filter(
+        key => newSelectedValues[key] !== null,
+      ),
     });
     this.props.changeFilter(this.props.chart.id, newSelectedValues);
   }


(superset) 05/10: fix(db2): Improving support for ibm db2 connections (#26744)

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

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

commit 1273f72f94928e6c5b04663cb9055c9507bd002f
Author: Vitor Avila <96...@users.noreply.github.com>
AuthorDate: Mon Jan 22 19:05:58 2024 -0300

    fix(db2): Improving support for ibm db2 connections (#26744)
    
    (cherry picked from commit 5eb4e82d278b29f074d0530a473c54215446fbab)
---
 setup.py                                     |  2 +-
 superset/db_engine_specs/db2.py              | 55 ++++++++++++++++++++
 tests/unit_tests/db_engine_specs/test_db2.py | 75 ++++++++++++++++++++++++++++
 3 files changed, 131 insertions(+), 1 deletion(-)

diff --git a/setup.py b/setup.py
index 993c727846..913cfc5c35 100644
--- a/setup.py
+++ b/setup.py
@@ -151,7 +151,7 @@ setup(
             "databricks-sql-connector>=2.0.2, <3",
             "sqlalchemy-databricks>=0.2.0",
         ],
-        "db2": ["ibm-db-sa>=0.3.5, <0.4"],
+        "db2": ["ibm-db-sa>0.3.8, <=0.4.0"],
         "dremio": ["sqlalchemy-dremio>=1.1.5, <1.3"],
         "drill": ["sqlalchemy-drill==0.1.dev"],
         "druid": ["pydruid>=0.6.5,<0.7"],
diff --git a/superset/db_engine_specs/db2.py b/superset/db_engine_specs/db2.py
index 5f54613a4b..db2e500b53 100644
--- a/superset/db_engine_specs/db2.py
+++ b/superset/db_engine_specs/db2.py
@@ -14,9 +14,16 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
+import logging
+from typing import Optional, Union
+
+from sqlalchemy.engine.reflection import Inspector
+
 from superset.constants import TimeGrain
 from superset.db_engine_specs.base import BaseEngineSpec, LimitMethod
 
+logger = logging.getLogger(__name__)
+
 
 class Db2EngineSpec(BaseEngineSpec):
     engine = "db2"
@@ -26,6 +33,8 @@ class Db2EngineSpec(BaseEngineSpec):
     force_column_alias_quotes = True
     max_column_name_length = 30
 
+    supports_dynamic_schema = True
+
     _time_grain_expressions = {
         None: "{col}",
         TimeGrain.SECOND: "CAST({col} as TIMESTAMP) - MICROSECOND({col}) MICROSECONDS",
@@ -52,3 +61,49 @@ class Db2EngineSpec(BaseEngineSpec):
     @classmethod
     def epoch_to_dttm(cls) -> str:
         return "(TIMESTAMP('1970-01-01', '00:00:00') + {col} SECONDS)"
+
+    @classmethod
+    def get_table_comment(
+        cls, inspector: Inspector, table_name: str, schema: Union[str, None]
+    ) -> Optional[str]:
+        """
+        Get comment of table from a given schema
+
+        Ibm Db2 return comments as tuples, so we need to get the first element
+
+        :param inspector: SqlAlchemy Inspector instance
+        :param table_name: Table name
+        :param schema: Schema name. If omitted, uses default schema for database
+        :return: comment of table
+        """
+        comment = None
+        try:
+            table_comment = inspector.get_table_comment(table_name, schema)
+            comment = table_comment.get("text")
+            return comment[0]
+        except IndexError:
+            return comment
+        except Exception as ex:  # pylint: disable=broad-except
+            logger.error("Unexpected error while fetching table comment", exc_info=True)
+            logger.exception(ex)
+            return comment
+
+    @classmethod
+    def get_prequeries(
+        cls,
+        catalog: Union[str, None] = None,
+        schema: Union[str, None] = None,
+    ) -> list[str]:
+        """
+        Set the search path to the specified schema.
+
+        This is important for two reasons: in SQL Lab it will allow queries to run in
+        the schema selected in the dropdown, resolving unqualified table names to the
+        expected schema.
+
+        But more importantly, in SQL Lab this is used to check if the user has access to
+        any tables with unqualified names. If the schema is not set by SQL Lab it could
+        be anything, and we would have to block users from running any queries
+        referencing tables without an explicit schema.
+        """
+        return [f'set current_schema "{schema}"'] if schema else []
diff --git a/tests/unit_tests/db_engine_specs/test_db2.py b/tests/unit_tests/db_engine_specs/test_db2.py
new file mode 100644
index 0000000000..d7dd19ad59
--- /dev/null
+++ b/tests/unit_tests/db_engine_specs/test_db2.py
@@ -0,0 +1,75 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+import pytest
+from pytest_mock import MockerFixture
+
+
+def test_epoch_to_dttm() -> None:
+    """
+    Test the `epoch_to_dttm` method.
+    """
+    from superset.db_engine_specs.db2 import Db2EngineSpec
+
+    assert (
+        Db2EngineSpec.epoch_to_dttm().format(col="epoch_dttm")
+        == "(TIMESTAMP('1970-01-01', '00:00:00') + epoch_dttm SECONDS)"
+    )
+
+
+def test_get_table_comment(mocker: MockerFixture):
+    """
+    Test the `get_table_comment` method.
+    """
+    from superset.db_engine_specs.db2 import Db2EngineSpec
+
+    mock_inspector = mocker.MagicMock()
+    mock_inspector.get_table_comment.return_value = {
+        "text": ("This is a table comment",)
+    }
+
+    assert (
+        Db2EngineSpec.get_table_comment(mock_inspector, "my_table", "my_schema")
+        == "This is a table comment"
+    )
+
+
+def test_get_table_comment_empty(mocker: MockerFixture):
+    """
+    Test the `get_table_comment` method
+    when no comment is returned.
+    """
+    from superset.db_engine_specs.db2 import Db2EngineSpec
+
+    mock_inspector = mocker.MagicMock()
+    mock_inspector.get_table_comment.return_value = {}
+
+    assert (
+        Db2EngineSpec.get_table_comment(mock_inspector, "my_table", "my_schema") == None
+    )
+
+
+def test_get_prequeries() -> None:
+    """
+    Test the ``get_prequeries`` method.
+    """
+    from superset.db_engine_specs.db2 import Db2EngineSpec
+
+    assert Db2EngineSpec.get_prequeries() == []
+    assert Db2EngineSpec.get_prequeries(schema="my_schema") == [
+        'set current_schema "my_schema"'
+    ]


(superset) 03/10: fix: do not use lodash/memoize (#26709)

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

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

commit 24567a57a59f6a33cdd00f38f2918d09eeb2b383
Author: Evan Rusackas <ev...@preset.io>
AuthorDate: Mon Jan 22 12:36:43 2024 -0700

    fix: do not use lodash/memoize (#26709)
    
    (cherry picked from commit ef4878b845ea2d3de3c0ad83a4ebfc220d8f14f4)
---
 superset-frontend/src/utils/getControlsForVizType.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/superset-frontend/src/utils/getControlsForVizType.js b/superset-frontend/src/utils/getControlsForVizType.js
index ae48b8b0d8..8771d91dc7 100644
--- a/superset-frontend/src/utils/getControlsForVizType.js
+++ b/superset-frontend/src/utils/getControlsForVizType.js
@@ -17,12 +17,12 @@
  * under the License.
  */
 
-import memoize from 'lodash/memoize';
+import memoizeOne from 'memoize-one';
 import { isControlPanelSectionConfig } from '@superset-ui/chart-controls';
 import { getChartControlPanelRegistry } from '@superset-ui/core';
 import { controls } from '../explore/controls';
 
-const memoizedControls = memoize((vizType, controlPanel) => {
+const memoizedControls = memoizeOne((vizType, controlPanel) => {
   const controlsMap = {};
   (controlPanel?.controlPanelSections || [])
     .filter(isControlPanelSectionConfig)


(superset) 04/10: fix(legacy-charts): Show Time Grain control for legacy charts (#26705)

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

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

commit 51ca5fa049fb524d757655c850fe35ce5c1f1934
Author: Vitor Avila <96...@users.noreply.github.com>
AuthorDate: Mon Jan 22 16:37:03 2024 -0300

    fix(legacy-charts): Show Time Grain control for legacy charts (#26705)
    
    (cherry picked from commit 3ed70d8f53c229682027df3efa7815ca12bd1328)
---
 .../superset-ui-chart-controls/src/shared-controls/sharedControls.tsx   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx b/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx
index 341aaa0729..4396f4f2e9 100644
--- a/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx
+++ b/superset-frontend/packages/superset-ui-chart-controls/src/shared-controls/sharedControls.tsx
@@ -207,7 +207,7 @@ const time_grain_sqla: SharedControlConfig<'SelectControl'> = {
     choices: (datasource as Dataset)?.time_grain_sqla || [],
   }),
   visibility: ({ controls }) => {
-    if (!hasGenericChartAxes) {
+    if (!hasGenericChartAxes || !controls?.x_axis) {
       return true;
     }
 


(superset) 10/10: feat(helm): Upgrade default Superset version to 3.1.0 (#26707)

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

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

commit aa542b53fce7a7dc73be680d1ed7cab50b149497
Author: Denis Krivenko <dn...@gmail.com>
AuthorDate: Sun Jan 21 18:43:17 2024 +0100

    feat(helm): Upgrade default Superset version to 3.1.0 (#26707)
---
 helm/superset/Chart.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/helm/superset/Chart.yaml b/helm/superset/Chart.yaml
index 34c987e6c8..25ff660e38 100644
--- a/helm/superset/Chart.yaml
+++ b/helm/superset/Chart.yaml
@@ -15,7 +15,7 @@
 # limitations under the License.
 #
 apiVersion: v2
-appVersion: "3.0.1"
+appVersion: "3.1.0"
 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


(superset) 01/10: fix(translation): correct translation errors for Chinese(zh) (#26645)

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

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

commit 8fa8ae68b2f225fd4283b6d09febde759641e113
Author: Linghao Wang <10...@qq.com>
AuthorDate: Thu Jan 18 23:38:43 2024 +0800

    fix(translation): correct translation errors for Chinese(zh) (#26645)
    
    Signed-off-by: Waterkin <10...@qq.com>
    (cherry picked from commit 8539dfd0baa9edbe1563fae8f36c4e57845d7269)
---
 superset/translations/zh/LC_MESSAGES/messages.po | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/superset/translations/zh/LC_MESSAGES/messages.po b/superset/translations/zh/LC_MESSAGES/messages.po
index 791ea2c4db..4997d7ab97 100644
--- a/superset/translations/zh/LC_MESSAGES/messages.po
+++ b/superset/translations/zh/LC_MESSAGES/messages.po
@@ -19232,7 +19232,7 @@ msgstr "时间序列的列"
 #: superset-frontend/src/dashboard/components/gridComponents/Tab.jsx:210
 #, fuzzy
 msgid "edit mode"
-msgstr "光模式"
+msgstr "编辑模式"
 
 #: superset-frontend/plugins/plugin-chart-table/src/DataTable/components/SelectPageSize.tsx:58
 #, fuzzy
@@ -19311,7 +19311,7 @@ msgstr ""
 msgid ""
 "filter_box will be deprecated in a future version of Superset. Please "
 "replace filter_box by dashboard filter components."
-msgstr "'filter_box将在Superset的未来版本中弃用。"
+msgstr "filter_box将在Superset的未来版本中弃用。"
 
 #: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:219
 #: superset-frontend/plugins/plugin-chart-echarts/src/BoxPlot/controlPanel.ts:119
@@ -19322,7 +19322,7 @@ msgstr "在"
 
 #: superset-frontend/src/features/databases/DatabaseModal/SqlAlchemyForm.tsx:100
 msgid "for more information on how to structure your URI."
-msgstr " 来查询有关如何构造URI的更多信息。"
+msgstr "来查询有关如何构造URI的更多信息。"
 
 #: superset-frontend/packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/ColumnTypeLabel.tsx:57
 msgid "function type icon"
@@ -19339,7 +19339,7 @@ msgstr "热力图"
 
 #: superset-frontend/plugins/legacy-plugin-chart-heatmap/src/controlPanel.tsx:184
 msgid "heatmap: values are normalized across the entire heatmap"
-msgstr ""
+msgstr "热力图:其中所有数值都经过了归一化"
 
 #: superset-frontend/src/components/EmptyState/index.tsx:231
 #: superset-frontend/src/components/ImportModal/ErrorAlert.tsx:60
@@ -19384,7 +19384,7 @@ msgstr "应该为数字"
 #: superset-frontend/packages/superset-ui-core/src/validator/legacyValidateInteger.ts:31
 #: superset-frontend/packages/superset-ui-core/src/validator/validateInteger.ts:32
 msgid "is expected to be an integer"
-msgstr "应该为为整数"
+msgstr "应该为整数"
 
 #: superset-frontend/src/profile/components/UserInfo.tsx:64
 msgid "joined"
@@ -19477,7 +19477,7 @@ msgstr "最大值"
 #: superset-frontend/src/explore/controlPanels/sections.tsx:255
 #, fuzzy
 msgid "mean"
-msgstr "主域"
+msgstr "平均值"
 
 #: superset-frontend/plugins/legacy-plugin-chart-partition/src/controlPanel.tsx:376
 #: superset-frontend/plugins/legacy-plugin-chart-rose/src/controlPanel.tsx:258
@@ -19485,7 +19485,7 @@ msgstr "主域"
 #: superset-frontend/plugins/legacy-preset-chart-nvd3/src/NVD3Controls.tsx:530
 #: superset-frontend/src/explore/controlPanels/sections.tsx:254
 msgid "median"
-msgstr ""
+msgstr "中位数"
 
 #: superset-frontend/plugins/plugin-chart-pivot-table/src/PivotTableChart.tsx:62
 #: superset-frontend/src/explore/components/controls/FixedOrMetricControl/index.jsx:136
@@ -19499,7 +19499,7 @@ msgstr "指标"
 #: superset-frontend/src/filters/components/Range/buildQuery.ts:58
 #, fuzzy
 msgid "min"
-msgstr "在"
+msgstr "分钟"
 
 #: superset-frontend/src/components/CronPicker/CronPicker.tsx:41
 msgid "minute"


(superset) 06/10: fix(BigQuery): Support special characters in column/metric names used in ORDER BY (#26461)

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

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

commit 519f7704ef43cb4a72119920b3a59d66d413b164
Author: Vitor Avila <96...@users.noreply.github.com>
AuthorDate: Wed Jan 24 00:26:53 2024 -0300

    fix(BigQuery): Support special characters in column/metric names used in ORDER BY (#26461)
    
    (cherry picked from commit 4592dd13fa7fdae6d8d8c153f42d47447f5319ef)
---
 superset/models/helpers.py                                | 4 +++-
 tests/integration_tests/db_engine_specs/bigquery_tests.py | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/superset/models/helpers.py b/superset/models/helpers.py
index 3e88bec44f..7bfbbddfd3 100644
--- a/superset/models/helpers.py
+++ b/superset/models/helpers.py
@@ -1974,7 +1974,9 @@ class ExploreMixin:  # pylint: disable=too-many-public-methods
                 and db_engine_spec.allows_hidden_cc_in_orderby
                 and col.name in [select_col.name for select_col in select_exprs]
             ):
-                col = literal_column(col.name)
+                with self.database.get_sqla_engine_with_context() as engine:
+                    quote = engine.dialect.identifier_preparer.quote
+                    col = literal_column(quote(col.name))
             direction = sa.asc if ascending else sa.desc
             qry = qry.order_by(direction(col))
 
diff --git a/tests/integration_tests/db_engine_specs/bigquery_tests.py b/tests/integration_tests/db_engine_specs/bigquery_tests.py
index c4f04584fa..3523e71b0b 100644
--- a/tests/integration_tests/db_engine_specs/bigquery_tests.py
+++ b/tests/integration_tests/db_engine_specs/bigquery_tests.py
@@ -381,4 +381,4 @@ class TestBigQueryDbEngineSpec(TestDbEngineSpec):
             "orderby": [["gender_cc", True]],
         }
         sql = table.get_query_str(query_obj)
-        assert "ORDER BY gender_cc ASC" in sql
+        assert "ORDER BY `gender_cc` ASC" in sql