deploying docs: chore: Bump redis to 4.5.4 (#23845) (apache/superset@dab038c00551bb6cd3d01889435216e902d0d513)
diff --git a/404.html b/404.html
index d2fb72b..4e55903 100644
--- a/404.html
+++ b/404.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/fe0957ee.70836a31.js b/assets/js/fe0957ee.70836a31.js
new file mode 100644
index 0000000..6fc1d98
--- /dev/null
+++ b/assets/js/fe0957ee.70836a31.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[9822],{25079:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var r=t(83117),a=(t(67294),t(3905));const s={title:"Running on Kubernetes",hide_title:!0,sidebar_position:12,version:1},l=void 0,i={unversionedId:"installation/running-on-kubernetes",id:"installation/running-on-kubernetes",title:"Running on Kubernetes",description:"Running on Kubernetes",source:"@site/docs/installation/running-on-kubernetes.mdx",sourceDirName:"installation",slug:"/installation/running-on-kubernetes",permalink:"/docs/installation/running-on-kubernetes",draft:!1,editUrl:"https://github.com/apache/superset/tree/master/docs/docs/installation/running-on-kubernetes.mdx",tags:[],version:"current",sidebarPosition:12,frontMatter:{title:"Running on Kubernetes",hide_title:!0,sidebar_position:12,version:1},sidebar:"tutorialSidebar",previous:{title:"SQL Templating",permalink:"/docs/installation/sql-templating"},next:{title:"Setup SSH Tunneling",permalink:"/docs/installation/setup-ssh-tunneling"}},o={},p=[{value:"Running on Kubernetes",id:"running-on-kubernetes",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Running",id:"running",level:3},{value:"Important settings",id:"important-settings",level:3},{value:"Security settings",id:"security-settings",level:4},{value:"Dependencies",id:"dependencies",level:4},{value:"superset_config.py",id:"superset_configpy",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"System packages",id:"system-packages",level:4},{value:"Data sources",id:"data-sources",level:4},{value:"Configuration Examples",id:"configuration-examples",level:3},{value:"Setting up OAuth",id:"setting-up-oauth",level:4},{value:"Enable Alerts and Reports",id:"enable-alerts-and-reports",level:4},{value:"Install a supported webdriver in the Celery worker",id:"install-a-supported-webdriver-in-the-celery-worker",level:5},{value:"Run the Celery beat",id:"run-the-celery-beat",level:5},{value:"Configure the appropriate Celery jobs and SMTP/Slack settings",id:"configure-the-appropriate-celery-jobs-and-smtpslack-settings",level:5}],u={toc:p},c="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"running-on-kubernetes"},"Running on Kubernetes"),(0,a.kt)("p",null,"Running on Kubernetes is supported with the provided ",(0,a.kt)("a",{parentName:"p",href:"https://helm.sh/"},"Helm")," chart found in the official ",(0,a.kt)("a",{parentName:"p",href:"https://apache.github.io/superset/index.yaml"},"Superset helm repository"),"."),(0,a.kt)("h3",{id:"prerequisites"},"Prerequisites"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A Kubernetes cluster"),(0,a.kt)("li",{parentName:"ul"},"Helm installed")),(0,a.kt)("h3",{id:"running"},"Running"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Add the Superset helm repository")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},'helm repo add superset https://apache.github.io/superset\n"superset" has been added to your repositories\n')),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"View charts in repo")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"helm search repo superset\nNAME                    CHART VERSION   APP VERSION     DESCRIPTION\nsuperset/superset       0.1.1           1.0             Apache Superset is a modern, enterprise-ready b...\n")),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"Configure your setting overrides")),(0,a.kt)("p",null,"Just like any typical Helm chart, you'll need to craft a ",(0,a.kt)("inlineCode",{parentName:"p"},"values.yaml")," file that would define/override any of the values exposed into the default ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/tree/master/helm/superset/values.yaml"},"values.yaml"),", or from any of the dependent charts it depends on:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://artifacthub.io/packages/helm/bitnami/redis"},"bitnami/redis")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://artifacthub.io/packages/helm/bitnami/postgresql"},"bitnami/postgresql"))),(0,a.kt)("p",null,"More info down below on some important overrides you might need."),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"Install and run")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"helm upgrade --install --values my-values.yaml superset superset/superset\n")),(0,a.kt)("p",null,"You should see various pods popping up, such as:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"kubectl get pods\nNAME                                    READY   STATUS      RESTARTS   AGE\nsuperset-celerybeat-7cdcc9575f-k6xmc    1/1     Running     0          119s\nsuperset-f5c9c667-dw9lp                 1/1     Running     0          4m7s\nsuperset-f5c9c667-fk8bk                 1/1     Running     0          4m11s\nsuperset-init-db-zlm9z                  0/1     Completed   0          111s\nsuperset-postgresql-0                   1/1     Running     0          6d20h\nsuperset-redis-master-0                 1/1     Running     0          6d20h\nsuperset-worker-75b48bbcc-jmmjr         1/1     Running     0          4m8s\nsuperset-worker-75b48bbcc-qrq49         1/1     Running     0          4m12s\n")),(0,a.kt)("p",null,"The exact list will depend on some of your specific configuration overrides but you should generally expect:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"N ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-xxxx-yyyy")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-worker-xxxx-yyyy")," pods (depending on your ",(0,a.kt)("inlineCode",{parentName:"li"},"supersetNode.replicaCount")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"supersetWorker.replicaCount")," values)"),(0,a.kt)("li",{parentName:"ul"},"1 ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-postgresql-0")," depending on your postgres settings"),(0,a.kt)("li",{parentName:"ul"},"1 ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-redis-master-0")," depending on your redis settings"),(0,a.kt)("li",{parentName:"ul"},"1 ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-celerybeat-xxxx-yyyy")," pod if you have ",(0,a.kt)("inlineCode",{parentName:"li"},"supersetCeleryBeat.enabled = true")," in your values overrides")),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Access it")),(0,a.kt)("p",null,"The chart will publish appropriate services to expose the Superset UI internally within your k8s cluster. To access it externally you will have to either:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Configure the Service as a ",(0,a.kt)("inlineCode",{parentName:"li"},"LoadBalancer")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"NodePort")),(0,a.kt)("li",{parentName:"ul"},"Set up an ",(0,a.kt)("inlineCode",{parentName:"li"},"Ingress")," for it - the chart includes a definition, but will need to be tuned to your needs (hostname, tls, annotations etc...)"),(0,a.kt)("li",{parentName:"ul"},"Run ",(0,a.kt)("inlineCode",{parentName:"li"},"kubectl port-forward superset-xxxx-yyyy :8088")," to directly tunnel one pod's port into your localhost")),(0,a.kt)("p",null,"Depending how you configured external access, the URL will vary. Once you've identified the appropriate URL you can log in with:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"user: ",(0,a.kt)("inlineCode",{parentName:"li"},"admin")),(0,a.kt)("li",{parentName:"ul"},"password: ",(0,a.kt)("inlineCode",{parentName:"li"},"admin"))),(0,a.kt)("h3",{id:"important-settings"},"Important settings"),(0,a.kt)("h4",{id:"security-settings"},"Security settings"),(0,a.kt)("p",null,"Default security settings and passwords are included but you ",(0,a.kt)("strong",{parentName:"p"},"SHOULD")," override those with your own, in particular:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"postgresql:\n  postgresqlPassword: superset\n")),(0,a.kt)("p",null,"Make sure, you set a unique strong complex alphanumeric string for your SECRET_KEY and use a tool to help you generate\na sufficiently random sequence."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"To generate a good key you can run, ",(0,a.kt)("inlineCode",{parentName:"li"},"openssl rand -base64 42"))),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"configOverrides:\n  secret: |\n    SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'\n")),(0,a.kt)("p",null,"If you want to change the previous secret key then you should rotate the keys.\nDefault secret key for kubernetes deployment is ",(0,a.kt)("inlineCode",{parentName:"p"},"thisISaSECRET_1234")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"configOverrides:\n  my_override: |\n    PREVIOUS_SECRET_KEY = 'YOUR_PREVIOUS_SECRET_KEY'\n    SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'\ninit:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh\n      superset re-encrypt-secrets\n      . {{ .Values.configMountPath }}/superset_init.sh\n")),(0,a.kt)("h4",{id:"dependencies"},"Dependencies"),(0,a.kt)("p",null,"Install additional packages and do any other bootstrap configuration in the bootstrap script.\nFor production clusters it's recommended to build own image with this step done in CI."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Superset requires a Python DB-API database driver and a SQLAlchemy\ndialect to be installed for each datastore you want to connect to."),(0,a.kt)("p",{parentName:"admonition"},"See ",(0,a.kt)("a",{parentName:"p",href:"/docs/databases/installing-database-drivers"},"Install Database Drivers")," for more information")),(0,a.kt)("p",null,"The following example installs the Big Query and Elasticsearch database drivers so that you can\nconnect to those datasources in your Superset installation:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'bootstrapScript: |\n  #!/bin/bash\n  pip install psycopg2==2.9.6 \\\n    sqlalchemy-bigquery==1.5.0 \\\n    elasticsearch-dbapi==0.2.5 &&\\\n  if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap; fi\n')),(0,a.kt)("h4",{id:"superset_configpy"},"superset_config.py"),(0,a.kt)("p",null,"The default ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py")," is fairly minimal and you will very likely need to extend it. This is done by specifying one or more key/value entries in ",(0,a.kt)("inlineCode",{parentName:"p"},"configOverrides"),", e.g.:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'configOverrides:\n  my_override: |\n    # This will make sure the redirect_uri is properly computed, even with SSL offloading\n    ENABLE_PROXY_FIX = True\n    FEATURE_FLAGS = {\n        "DYNAMIC_PLUGINS": True\n    }\n')),(0,a.kt)("p",null,"Those will be evaluated as Helm templates and therefore will be able to reference other ",(0,a.kt)("inlineCode",{parentName:"p"},"values.yaml")," variables e.g. ",(0,a.kt)("inlineCode",{parentName:"p"},"{{ .Values.ingress.hosts[0] }}")," will resolve to your ingress external domain."),(0,a.kt)("p",null,"The entire ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py")," will be installed as a secret, so it is safe to pass sensitive parameters directly... however it might be more readable to use secret env variables for that."),(0,a.kt)("p",null,"Full python files can be provided by running ",(0,a.kt)("inlineCode",{parentName:"p"},"helm upgrade --install --values my-values.yaml --set-file configOverrides.oauth=set_oauth.py")),(0,a.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,a.kt)("p",null,"Those can be passed as key/values either with ",(0,a.kt)("inlineCode",{parentName:"p"},"extraEnv")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"extraSecretEnv")," if they're sensitive. They can then be referenced from ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py")," using e.g. ",(0,a.kt)("inlineCode",{parentName:"p"},'os.environ.get("VAR")'),"."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'extraEnv:\n  SMTP_HOST: smtp.gmail.com\n  SMTP_USER: user@gmail.com\n  SMTP_PORT: "587"\n  SMTP_MAIL_FROM: user@gmail.com\n\nextraSecretEnv:\n  SMTP_PASSWORD: xxxx\n\nconfigOverrides:\n  smtp: |\n    import ast\n    SMTP_HOST = os.getenv("SMTP_HOST","localhost")\n    SMTP_STARTTLS = ast.literal_eval(os.getenv("SMTP_STARTTLS", "True"))\n    SMTP_SSL = ast.literal_eval(os.getenv("SMTP_SSL", "False"))\n    SMTP_USER = os.getenv("SMTP_USER","superset")\n    SMTP_PORT = os.getenv("SMTP_PORT",25)\n    SMTP_PASSWORD = os.getenv("SMTP_PASSWORD","superset")\n')),(0,a.kt)("h4",{id:"system-packages"},"System packages"),(0,a.kt)("p",null,"If new system packages are required, they can be installed before application startup by overriding the container's ",(0,a.kt)("inlineCode",{parentName:"p"},"command"),", e.g.:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"supersetWorker:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      apt update\n      apt install -y somepackage\n      apt autoremove -yqq --purge\n      apt clean\n\n      # Run celery worker\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker\n")),(0,a.kt)("h4",{id:"data-sources"},"Data sources"),(0,a.kt)("p",null,"Data source definitions can be automatically declared by providing key/value yaml definitions in ",(0,a.kt)("inlineCode",{parentName:"p"},"extraConfigs"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'extraConfigs:\n  import_datasources.yaml: |\n    databases:\n    - allow_file_upload: true\n      allow_ctas: true\n      allow_cvas: true\n      database_name: example-db\n      extra: "{\\r\\n    \\"metadata_params\\": {},\\r\\n    \\"engine_params\\": {},\\r\\n    \\"\\\n        metadata_cache_timeout\\": {},\\r\\n    \\"schemas_allowed_for_file_upload\\": []\\r\\n\\\n        }"\n      sqlalchemy_uri: example://example-db.local\n      tables: []\n')),(0,a.kt)("p",null,"Those will also be mounted as secrets and can include sensitive parameters."),(0,a.kt)("h3",{id:"configuration-examples"},"Configuration Examples"),(0,a.kt)("h4",{id:"setting-up-oauth"},"Setting up OAuth"),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"OAuth setup requires that the ",(0,a.kt)("a",{parentName:"p",href:"https://authlib.org/"},"authlib")," Python library is installed. This can\nbe done using ",(0,a.kt)("inlineCode",{parentName:"p"},"pip")," by updating the ",(0,a.kt)("inlineCode",{parentName:"p"},"bootstrapScript"),". See the ",(0,a.kt)("a",{parentName:"p",href:"#dependencies"},"Dependencies")," section\nfor more information.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'extraEnv:\n  AUTH_DOMAIN: example.com\n\nextraSecretEnv:\n  GOOGLE_KEY: xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n  GOOGLE_SECRET: xxxxxxxxxxxxxxxxxxxxxxxx\n\nconfigOverrides:\n  enable_oauth: |\n    # This will make sure the redirect_uri is properly computed, even with SSL offloading\n    ENABLE_PROXY_FIX = True\n\n    from flask_appbuilder.security.manager import AUTH_OAUTH\n    AUTH_TYPE = AUTH_OAUTH\n    OAUTH_PROVIDERS = [\n        {\n            "name": "google",\n            "icon": "fa-google",\n            "token_key": "access_token",\n            "remote_app": {\n                "client_id": os.getenv("GOOGLE_KEY"),\n                "client_secret": os.getenv("GOOGLE_SECRET"),\n                "api_base_url": "https://www.googleapis.com/oauth2/v2/",\n                "client_kwargs": {"scope": "email profile"},\n                "request_token_url": None,\n                "access_token_url": "https://accounts.google.com/o/oauth2/token",\n                "authorize_url": "https://accounts.google.com/o/oauth2/auth",\n                "authorize_params": {"hd": os.getenv("AUTH_DOMAIN", "")}\n            },\n        }\n    ]\n\n    # Map Authlib roles to superset roles\n    AUTH_ROLE_ADMIN = \'Admin\'\n    AUTH_ROLE_PUBLIC = \'Public\'\n\n    # Will allow user self registration, allowing to create Flask users from Authorized User\n    AUTH_USER_REGISTRATION = True\n\n    # The default user self registration role\n    AUTH_USER_REGISTRATION_ROLE = "Admin"\n')),(0,a.kt)("h4",{id:"enable-alerts-and-reports"},"Enable Alerts and Reports"),(0,a.kt)("p",null,"For this, as per the ",(0,a.kt)("a",{parentName:"p",href:"/docs/installation/email-reports"},"Alerts and Reports doc"),", you will need to:"),(0,a.kt)("h5",{id:"install-a-supported-webdriver-in-the-celery-worker"},"Install a supported webdriver in the Celery worker"),(0,a.kt)("p",null,"This is done either by using a custom image that has the webdriver pre-installed, or installing at startup time by overriding the ",(0,a.kt)("inlineCode",{parentName:"p"},"command"),". Here's a working example for ",(0,a.kt)("inlineCode",{parentName:"p"},"chromedriver"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"supersetWorker:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      # Install chrome webdriver\n      # See https://github.com/apache/superset/blob/4fa3b6c7185629b87c27fc2c0e5435d458f7b73d/docs/src/pages/docs/installation/email_reports.mdx\n      apt update\n      wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb\n      apt install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb\n      wget https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip\n      unzip chromedriver_linux64.zip\n      chmod +x chromedriver\n      mv chromedriver /usr/bin\n      apt autoremove -yqq --purge\n      apt clean\n      rm -f google-chrome-stable_current_amd64.deb chromedriver_linux64.zip\n\n      # Run\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker\n")),(0,a.kt)("h5",{id:"run-the-celery-beat"},"Run the Celery beat"),(0,a.kt)("p",null,"This pod will trigger the scheduled tasks configured in the alerts and reports UI section:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"supersetCeleryBeat:\n  enabled: true\n")),(0,a.kt)("h5",{id:"configure-the-appropriate-celery-jobs-and-smtpslack-settings"},"Configure the appropriate Celery jobs and SMTP/Slack settings"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"extraEnv:\n  SMTP_HOST: smtp.gmail.com\n  SMTP_USER: user@gmail.com\n  SMTP_PORT: \"587\"\n  SMTP_MAIL_FROM: user@gmail.com\n\nextraSecretEnv:\n  SLACK_API_TOKEN: xoxb-xxxx-yyyy\n  SMTP_PASSWORD: xxxx-yyyy\n\nconfigOverrides:\n  feature_flags: |\n    import ast\n\n    FEATURE_FLAGS = {\n        \"ALERT_REPORTS\": True\n    }\n\n    SMTP_HOST = os.getenv(\"SMTP_HOST\",\"localhost\")\n    SMTP_STARTTLS = ast.literal_eval(os.getenv(\"SMTP_STARTTLS\", \"True\"))\n    SMTP_SSL = ast.literal_eval(os.getenv(\"SMTP_SSL\", \"False\"))\n    SMTP_USER = os.getenv(\"SMTP_USER\",\"superset\")\n    SMTP_PORT = os.getenv(\"SMTP_PORT\",25)\n    SMTP_PASSWORD = os.getenv(\"SMTP_PASSWORD\",\"superset\")\n    SMTP_MAIL_FROM = os.getenv(\"SMTP_MAIL_FROM\",\"superset@superset.com\")\n\n    SLACK_API_TOKEN = os.getenv(\"SLACK_API_TOKEN\",None)\n  celery_conf: |\n    from celery.schedules import crontab\n\n    class CeleryConfig(object):\n      broker_url = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\n      imports = ('superset.sql_lab', \"superset.tasks\", \"superset.tasks.thumbnails\", )\n      result_backend = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\n      task_annotations = {\n          'sql_lab.get_sql_results': {\n              'rate_limit': '100/s',\n          },\n          'email_reports.send': {\n              'rate_limit': '1/s',\n              'time_limit': 600,\n              'soft_time_limit': 600,\n              'ignore_result': True,\n          },\n      }\n      beat_schedule = {\n          'reports.scheduler': {\n              'task': 'reports.scheduler',\n              'schedule': crontab(minute='*', hour='*'),\n          },\n          'reports.prune_log': {\n              'task': 'reports.prune_log',\n              'schedule': crontab(minute=0, hour=0),\n          },\n          'cache-warmup-hourly': {\n              'task': 'cache-warmup',\n              'schedule': crontab(minute='*/30', hour='*'),\n              'kwargs': {\n                  'strategy_name': 'top_n_dashboards',\n                  'top_n': 10,\n                  'since': '7 days ago',\n              },\n          }\n      }\n\n    CELERY_CONFIG = CeleryConfig\n  reports: |\n    EMAIL_PAGE_RENDER_WAIT = 60\n    WEBDRIVER_BASEURL = \"http://{{ template \"superset.fullname\" . }}:{{ .Values.service.port }}/\"\n    WEBDRIVER_BASEURL_USER_FRIENDLY = \"https://www.example.com/\"\n    WEBDRIVER_TYPE= \"chrome\"\n    WEBDRIVER_OPTION_ARGS = [\n        \"--force-device-scale-factor=2.0\",\n        \"--high-dpi-support=2.0\",\n        \"--headless\",\n        \"--disable-gpu\",\n        \"--disable-dev-shm-usage\",\n        # This is required because our process runs as root (in order to install pip packages)\n        \"--no-sandbox\",\n        \"--disable-setuid-sandbox\",\n        \"--disable-extensions\",\n    ]\n")))}d.isMDXComponent=!0},3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>g});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var o=r.createContext({}),p=function(e){var n=r.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=p(e.components);return r.createElement(o.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,s=e.originalType,o=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(t),m=a,g=c["".concat(o,".").concat(m)]||c[m]||d[m]||s;return t?r.createElement(g,l(l({ref:n},u),{},{components:t})):r.createElement(g,l({ref:n},u))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var s=t.length,l=new Array(s);l[0]=m;var i={};for(var o in n)hasOwnProperty.call(n,o)&&(i[o]=n[o]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var p=2;p<s;p++)l[p]=t[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"}}]);
\ No newline at end of file
diff --git a/assets/js/fe0957ee.b3151092.js b/assets/js/fe0957ee.b3151092.js
deleted file mode 100644
index 4e1ae1f..0000000
--- a/assets/js/fe0957ee.b3151092.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[9822],{25079:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>o,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>i,toc:()=>p});var r=t(83117),a=(t(67294),t(3905));const s={title:"Running on Kubernetes",hide_title:!0,sidebar_position:12,version:1},l=void 0,i={unversionedId:"installation/running-on-kubernetes",id:"installation/running-on-kubernetes",title:"Running on Kubernetes",description:"Running on Kubernetes",source:"@site/docs/installation/running-on-kubernetes.mdx",sourceDirName:"installation",slug:"/installation/running-on-kubernetes",permalink:"/docs/installation/running-on-kubernetes",draft:!1,editUrl:"https://github.com/apache/superset/tree/master/docs/docs/installation/running-on-kubernetes.mdx",tags:[],version:"current",sidebarPosition:12,frontMatter:{title:"Running on Kubernetes",hide_title:!0,sidebar_position:12,version:1},sidebar:"tutorialSidebar",previous:{title:"SQL Templating",permalink:"/docs/installation/sql-templating"},next:{title:"Setup SSH Tunneling",permalink:"/docs/installation/setup-ssh-tunneling"}},o={},p=[{value:"Running on Kubernetes",id:"running-on-kubernetes",level:2},{value:"Prerequisites",id:"prerequisites",level:3},{value:"Running",id:"running",level:3},{value:"Important settings",id:"important-settings",level:3},{value:"Security settings",id:"security-settings",level:4},{value:"Dependencies",id:"dependencies",level:4},{value:"superset_config.py",id:"superset_configpy",level:4},{value:"Environment Variables",id:"environment-variables",level:4},{value:"System packages",id:"system-packages",level:4},{value:"Data sources",id:"data-sources",level:4},{value:"Configuration Examples",id:"configuration-examples",level:3},{value:"Setting up OAuth",id:"setting-up-oauth",level:4},{value:"Enable Alerts and Reports",id:"enable-alerts-and-reports",level:4},{value:"Install a supported webdriver in the Celery worker",id:"install-a-supported-webdriver-in-the-celery-worker",level:5},{value:"Run the Celery beat",id:"run-the-celery-beat",level:5},{value:"Configure the appropriate Celery jobs and SMTP/Slack settings",id:"configure-the-appropriate-celery-jobs-and-smtpslack-settings",level:5}],u={toc:p},c="wrapper";function d(e){let{components:n,...t}=e;return(0,a.kt)(c,(0,r.Z)({},u,t,{components:n,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"running-on-kubernetes"},"Running on Kubernetes"),(0,a.kt)("p",null,"Running on Kubernetes is supported with the provided ",(0,a.kt)("a",{parentName:"p",href:"https://helm.sh/"},"Helm")," chart found in the official ",(0,a.kt)("a",{parentName:"p",href:"https://apache.github.io/superset/index.yaml"},"Superset helm repository"),"."),(0,a.kt)("h3",{id:"prerequisites"},"Prerequisites"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A Kubernetes cluster"),(0,a.kt)("li",{parentName:"ul"},"Helm installed")),(0,a.kt)("h3",{id:"running"},"Running"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Add the Superset helm repository")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},'helm repo add superset https://apache.github.io/superset\n"superset" has been added to your repositories\n')),(0,a.kt)("ol",{start:2},(0,a.kt)("li",{parentName:"ol"},"View charts in repo")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"helm search repo superset\nNAME                    CHART VERSION   APP VERSION     DESCRIPTION\nsuperset/superset       0.1.1           1.0             Apache Superset is a modern, enterprise-ready b...\n")),(0,a.kt)("ol",{start:3},(0,a.kt)("li",{parentName:"ol"},"Configure your setting overrides")),(0,a.kt)("p",null,"Just like any typical Helm chart, you'll need to craft a ",(0,a.kt)("inlineCode",{parentName:"p"},"values.yaml")," file that would define/override any of the values exposed into the default ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/tree/master/helm/superset/values.yaml"},"values.yaml"),", or from any of the dependent charts it depends on:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://artifacthub.io/packages/helm/bitnami/redis"},"bitnami/redis")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://artifacthub.io/packages/helm/bitnami/postgresql"},"bitnami/postgresql"))),(0,a.kt)("p",null,"More info down below on some important overrides you might need."),(0,a.kt)("ol",{start:4},(0,a.kt)("li",{parentName:"ol"},"Install and run")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"helm upgrade --install --values my-values.yaml superset superset/superset\n")),(0,a.kt)("p",null,"You should see various pods popping up, such as:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-sh"},"kubectl get pods\nNAME                                    READY   STATUS      RESTARTS   AGE\nsuperset-celerybeat-7cdcc9575f-k6xmc    1/1     Running     0          119s\nsuperset-f5c9c667-dw9lp                 1/1     Running     0          4m7s\nsuperset-f5c9c667-fk8bk                 1/1     Running     0          4m11s\nsuperset-init-db-zlm9z                  0/1     Completed   0          111s\nsuperset-postgresql-0                   1/1     Running     0          6d20h\nsuperset-redis-master-0                 1/1     Running     0          6d20h\nsuperset-worker-75b48bbcc-jmmjr         1/1     Running     0          4m8s\nsuperset-worker-75b48bbcc-qrq49         1/1     Running     0          4m12s\n")),(0,a.kt)("p",null,"The exact list will depend on some of your specific configuration overrides but you should generally expect:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"N ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-xxxx-yyyy")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-worker-xxxx-yyyy")," pods (depending on your ",(0,a.kt)("inlineCode",{parentName:"li"},"supersetNode.replicaCount")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"supersetWorker.replicaCount")," values)"),(0,a.kt)("li",{parentName:"ul"},"1 ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-postgresql-0")," depending on your postgres settings"),(0,a.kt)("li",{parentName:"ul"},"1 ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-redis-master-0")," depending on your redis settings"),(0,a.kt)("li",{parentName:"ul"},"1 ",(0,a.kt)("inlineCode",{parentName:"li"},"superset-celerybeat-xxxx-yyyy")," pod if you have ",(0,a.kt)("inlineCode",{parentName:"li"},"supersetCeleryBeat.enabled = true")," in your values overrides")),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Access it")),(0,a.kt)("p",null,"The chart will publish appropriate services to expose the Superset UI internally within your k8s cluster. To access it externally you will have to either:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Configure the Service as a ",(0,a.kt)("inlineCode",{parentName:"li"},"LoadBalancer")," or ",(0,a.kt)("inlineCode",{parentName:"li"},"NodePort")),(0,a.kt)("li",{parentName:"ul"},"Set up an ",(0,a.kt)("inlineCode",{parentName:"li"},"Ingress")," for it - the chart includes a definition, but will need to be tuned to your needs (hostname, tls, annotations etc...)"),(0,a.kt)("li",{parentName:"ul"},"Run ",(0,a.kt)("inlineCode",{parentName:"li"},"kubectl port-forward superset-xxxx-yyyy :8088")," to directly tunnel one pod's port into your localhost")),(0,a.kt)("p",null,"Depending how you configured external access, the URL will vary. Once you've identified the appropriate URL you can log in with:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"user: ",(0,a.kt)("inlineCode",{parentName:"li"},"admin")),(0,a.kt)("li",{parentName:"ul"},"password: ",(0,a.kt)("inlineCode",{parentName:"li"},"admin"))),(0,a.kt)("h3",{id:"important-settings"},"Important settings"),(0,a.kt)("h4",{id:"security-settings"},"Security settings"),(0,a.kt)("p",null,"Default security settings and passwords are included but you ",(0,a.kt)("strong",{parentName:"p"},"SHOULD")," override those with your own, in particular:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"postgresql:\n  postgresqlPassword: superset\n")),(0,a.kt)("p",null,"Make sure, you set a unique strong complex alphanumeric string for your SECRET_KEY and use a tool to help you generate\na sufficiently random sequence."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"To generate a good key you can run, ",(0,a.kt)("inlineCode",{parentName:"li"},"openssl rand -base64 42"))),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"configOverrides:\n  secret: |\n    SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'\n")),(0,a.kt)("p",null,"If you want to change the previous secret key then you should rotate the keys.\nDefault secret key for kubernetes deployment is ",(0,a.kt)("inlineCode",{parentName:"p"},"thisISaSECRET_1234")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"configOverrides:\n  my_override: |\n    PREVIOUS_SECRET_KEY = 'YOUR_PREVIOUS_SECRET_KEY'\n    SECRET_KEY = 'YOUR_OWN_RANDOM_GENERATED_SECRET_KEY'\ninit:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh\n      superset re-encrypt-secrets\n      . {{ .Values.configMountPath }}/superset_init.sh\n")),(0,a.kt)("h4",{id:"dependencies"},"Dependencies"),(0,a.kt)("p",null,"Install additional packages and do any other bootstrap configuration in the bootstrap script.\nFor production clusters it's recommended to build own image with this step done in CI."),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"Superset requires a Python DB-API database driver and a SQLAlchemy\ndialect to be installed for each datastore you want to connect to."),(0,a.kt)("p",{parentName:"admonition"},"See ",(0,a.kt)("a",{parentName:"p",href:"/docs/databases/installing-database-drivers"},"Install Database Drivers")," for more information")),(0,a.kt)("p",null,"The following example installs the Big Query and Elasticsearch database drivers so that you can\nconnect to those datasources in your Superset installation:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'bootstrapScript: |\n  #!/bin/bash\n  pip install psycopg2==2.9.1 \\\n    redis==3.2.1 \\\n    sqlalchemy-bigquery==1.5.0 \\\n    elasticsearch-dbapi==0.2.5 &&\\\n  if [ ! -f ~/bootstrap ]; then echo "Running Superset with uid {{ .Values.runAsUser }}" > ~/bootstrap; fi\n')),(0,a.kt)("h4",{id:"superset_configpy"},"superset_config.py"),(0,a.kt)("p",null,"The default ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py")," is fairly minimal and you will very likely need to extend it. This is done by specifying one or more key/value entries in ",(0,a.kt)("inlineCode",{parentName:"p"},"configOverrides"),", e.g.:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'configOverrides:\n  my_override: |\n    # This will make sure the redirect_uri is properly computed, even with SSL offloading\n    ENABLE_PROXY_FIX = True\n    FEATURE_FLAGS = {\n        "DYNAMIC_PLUGINS": True\n    }\n')),(0,a.kt)("p",null,"Those will be evaluated as Helm templates and therefore will be able to reference other ",(0,a.kt)("inlineCode",{parentName:"p"},"values.yaml")," variables e.g. ",(0,a.kt)("inlineCode",{parentName:"p"},"{{ .Values.ingress.hosts[0] }}")," will resolve to your ingress external domain."),(0,a.kt)("p",null,"The entire ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py")," will be installed as a secret, so it is safe to pass sensitive parameters directly... however it might be more readable to use secret env variables for that."),(0,a.kt)("p",null,"Full python files can be provided by running ",(0,a.kt)("inlineCode",{parentName:"p"},"helm upgrade --install --values my-values.yaml --set-file configOverrides.oauth=set_oauth.py")),(0,a.kt)("h4",{id:"environment-variables"},"Environment Variables"),(0,a.kt)("p",null,"Those can be passed as key/values either with ",(0,a.kt)("inlineCode",{parentName:"p"},"extraEnv")," or ",(0,a.kt)("inlineCode",{parentName:"p"},"extraSecretEnv")," if they're sensitive. They can then be referenced from ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py")," using e.g. ",(0,a.kt)("inlineCode",{parentName:"p"},'os.environ.get("VAR")'),"."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'extraEnv:\n  SMTP_HOST: smtp.gmail.com\n  SMTP_USER: user@gmail.com\n  SMTP_PORT: "587"\n  SMTP_MAIL_FROM: user@gmail.com\n\nextraSecretEnv:\n  SMTP_PASSWORD: xxxx\n\nconfigOverrides:\n  smtp: |\n    import ast\n    SMTP_HOST = os.getenv("SMTP_HOST","localhost")\n    SMTP_STARTTLS = ast.literal_eval(os.getenv("SMTP_STARTTLS", "True"))\n    SMTP_SSL = ast.literal_eval(os.getenv("SMTP_SSL", "False"))\n    SMTP_USER = os.getenv("SMTP_USER","superset")\n    SMTP_PORT = os.getenv("SMTP_PORT",25)\n    SMTP_PASSWORD = os.getenv("SMTP_PASSWORD","superset")\n')),(0,a.kt)("h4",{id:"system-packages"},"System packages"),(0,a.kt)("p",null,"If new system packages are required, they can be installed before application startup by overriding the container's ",(0,a.kt)("inlineCode",{parentName:"p"},"command"),", e.g.:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"supersetWorker:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      apt update\n      apt install -y somepackage\n      apt autoremove -yqq --purge\n      apt clean\n\n      # Run celery worker\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker\n")),(0,a.kt)("h4",{id:"data-sources"},"Data sources"),(0,a.kt)("p",null,"Data source definitions can be automatically declared by providing key/value yaml definitions in ",(0,a.kt)("inlineCode",{parentName:"p"},"extraConfigs"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'extraConfigs:\n  import_datasources.yaml: |\n    databases:\n    - allow_file_upload: true\n      allow_ctas: true\n      allow_cvas: true\n      database_name: example-db\n      extra: "{\\r\\n    \\"metadata_params\\": {},\\r\\n    \\"engine_params\\": {},\\r\\n    \\"\\\n        metadata_cache_timeout\\": {},\\r\\n    \\"schemas_allowed_for_file_upload\\": []\\r\\n\\\n        }"\n      sqlalchemy_uri: example://example-db.local\n      tables: []\n')),(0,a.kt)("p",null,"Those will also be mounted as secrets and can include sensitive parameters."),(0,a.kt)("h3",{id:"configuration-examples"},"Configuration Examples"),(0,a.kt)("h4",{id:"setting-up-oauth"},"Setting up OAuth"),(0,a.kt)("admonition",{type:"note"},(0,a.kt)("p",{parentName:"admonition"},"OAuth setup requires that the ",(0,a.kt)("a",{parentName:"p",href:"https://authlib.org/"},"authlib")," Python library is installed. This can\nbe done using ",(0,a.kt)("inlineCode",{parentName:"p"},"pip")," by updating the ",(0,a.kt)("inlineCode",{parentName:"p"},"bootstrapScript"),". See the ",(0,a.kt)("a",{parentName:"p",href:"#dependencies"},"Dependencies")," section\nfor more information.")),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},'extraEnv:\n  AUTH_DOMAIN: example.com\n\nextraSecretEnv:\n  GOOGLE_KEY: xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n  GOOGLE_SECRET: xxxxxxxxxxxxxxxxxxxxxxxx\n\nconfigOverrides:\n  enable_oauth: |\n    # This will make sure the redirect_uri is properly computed, even with SSL offloading\n    ENABLE_PROXY_FIX = True\n\n    from flask_appbuilder.security.manager import AUTH_OAUTH\n    AUTH_TYPE = AUTH_OAUTH\n    OAUTH_PROVIDERS = [\n        {\n            "name": "google",\n            "icon": "fa-google",\n            "token_key": "access_token",\n            "remote_app": {\n                "client_id": os.getenv("GOOGLE_KEY"),\n                "client_secret": os.getenv("GOOGLE_SECRET"),\n                "api_base_url": "https://www.googleapis.com/oauth2/v2/",\n                "client_kwargs": {"scope": "email profile"},\n                "request_token_url": None,\n                "access_token_url": "https://accounts.google.com/o/oauth2/token",\n                "authorize_url": "https://accounts.google.com/o/oauth2/auth",\n                "authorize_params": {"hd": os.getenv("AUTH_DOMAIN", "")}\n            },\n        }\n    ]\n\n    # Map Authlib roles to superset roles\n    AUTH_ROLE_ADMIN = \'Admin\'\n    AUTH_ROLE_PUBLIC = \'Public\'\n\n    # Will allow user self registration, allowing to create Flask users from Authorized User\n    AUTH_USER_REGISTRATION = True\n\n    # The default user self registration role\n    AUTH_USER_REGISTRATION_ROLE = "Admin"\n')),(0,a.kt)("h4",{id:"enable-alerts-and-reports"},"Enable Alerts and Reports"),(0,a.kt)("p",null,"For this, as per the ",(0,a.kt)("a",{parentName:"p",href:"/docs/installation/email-reports"},"Alerts and Reports doc"),", you will need to:"),(0,a.kt)("h5",{id:"install-a-supported-webdriver-in-the-celery-worker"},"Install a supported webdriver in the Celery worker"),(0,a.kt)("p",null,"This is done either by using a custom image that has the webdriver pre-installed, or installing at startup time by overriding the ",(0,a.kt)("inlineCode",{parentName:"p"},"command"),". Here's a working example for ",(0,a.kt)("inlineCode",{parentName:"p"},"chromedriver"),":"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"supersetWorker:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      # Install chrome webdriver\n      # See https://github.com/apache/superset/blob/4fa3b6c7185629b87c27fc2c0e5435d458f7b73d/docs/src/pages/docs/installation/email_reports.mdx\n      apt update\n      wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb\n      apt install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb\n      wget https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip\n      unzip chromedriver_linux64.zip\n      chmod +x chromedriver\n      mv chromedriver /usr/bin\n      apt autoremove -yqq --purge\n      apt clean\n      rm -f google-chrome-stable_current_amd64.deb chromedriver_linux64.zip\n\n      # Run\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker\n")),(0,a.kt)("h5",{id:"run-the-celery-beat"},"Run the Celery beat"),(0,a.kt)("p",null,"This pod will trigger the scheduled tasks configured in the alerts and reports UI section:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"supersetCeleryBeat:\n  enabled: true\n")),(0,a.kt)("h5",{id:"configure-the-appropriate-celery-jobs-and-smtpslack-settings"},"Configure the appropriate Celery jobs and SMTP/Slack settings"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-yaml"},"extraEnv:\n  SMTP_HOST: smtp.gmail.com\n  SMTP_USER: user@gmail.com\n  SMTP_PORT: \"587\"\n  SMTP_MAIL_FROM: user@gmail.com\n\nextraSecretEnv:\n  SLACK_API_TOKEN: xoxb-xxxx-yyyy\n  SMTP_PASSWORD: xxxx-yyyy\n\nconfigOverrides:\n  feature_flags: |\n    import ast\n\n    FEATURE_FLAGS = {\n        \"ALERT_REPORTS\": True\n    }\n\n    SMTP_HOST = os.getenv(\"SMTP_HOST\",\"localhost\")\n    SMTP_STARTTLS = ast.literal_eval(os.getenv(\"SMTP_STARTTLS\", \"True\"))\n    SMTP_SSL = ast.literal_eval(os.getenv(\"SMTP_SSL\", \"False\"))\n    SMTP_USER = os.getenv(\"SMTP_USER\",\"superset\")\n    SMTP_PORT = os.getenv(\"SMTP_PORT\",25)\n    SMTP_PASSWORD = os.getenv(\"SMTP_PASSWORD\",\"superset\")\n    SMTP_MAIL_FROM = os.getenv(\"SMTP_MAIL_FROM\",\"superset@superset.com\")\n\n    SLACK_API_TOKEN = os.getenv(\"SLACK_API_TOKEN\",None)\n  celery_conf: |\n    from celery.schedules import crontab\n\n    class CeleryConfig(object):\n      broker_url = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\n      imports = ('superset.sql_lab', \"superset.tasks\", \"superset.tasks.thumbnails\", )\n      result_backend = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\n      task_annotations = {\n          'sql_lab.get_sql_results': {\n              'rate_limit': '100/s',\n          },\n          'email_reports.send': {\n              'rate_limit': '1/s',\n              'time_limit': 600,\n              'soft_time_limit': 600,\n              'ignore_result': True,\n          },\n      }\n      beat_schedule = {\n          'reports.scheduler': {\n              'task': 'reports.scheduler',\n              'schedule': crontab(minute='*', hour='*'),\n          },\n          'reports.prune_log': {\n              'task': 'reports.prune_log',\n              'schedule': crontab(minute=0, hour=0),\n          },\n          'cache-warmup-hourly': {\n              'task': 'cache-warmup',\n              'schedule': crontab(minute='*/30', hour='*'),\n              'kwargs': {\n                  'strategy_name': 'top_n_dashboards',\n                  'top_n': 10,\n                  'since': '7 days ago',\n              },\n          }\n      }\n\n    CELERY_CONFIG = CeleryConfig\n  reports: |\n    EMAIL_PAGE_RENDER_WAIT = 60\n    WEBDRIVER_BASEURL = \"http://{{ template \"superset.fullname\" . }}:{{ .Values.service.port }}/\"\n    WEBDRIVER_BASEURL_USER_FRIENDLY = \"https://www.example.com/\"\n    WEBDRIVER_TYPE= \"chrome\"\n    WEBDRIVER_OPTION_ARGS = [\n        \"--force-device-scale-factor=2.0\",\n        \"--high-dpi-support=2.0\",\n        \"--headless\",\n        \"--disable-gpu\",\n        \"--disable-dev-shm-usage\",\n        # This is required because our process runs as root (in order to install pip packages)\n        \"--no-sandbox\",\n        \"--disable-setuid-sandbox\",\n        \"--disable-extensions\",\n    ]\n")))}d.isMDXComponent=!0},3905:(e,n,t)=>{t.d(n,{Zo:()=>u,kt:()=>g});var r=t(67294);function a(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function s(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function l(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{};n%2?s(Object(t),!0).forEach((function(n){a(e,n,t[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):s(Object(t)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}))}return e}function i(e,n){if(null==e)return{};var t,r,a=function(e,n){if(null==e)return{};var t,r,a={},s=Object.keys(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||(a[t]=e[t]);return a}(e,n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(r=0;r<s.length;r++)t=s[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(a[t]=e[t])}return a}var o=r.createContext({}),p=function(e){var n=r.useContext(o),t=n;return e&&(t="function"==typeof e?e(n):l(l({},n),e)),t},u=function(e){var n=p(e.components);return r.createElement(o.Provider,{value:n},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var n=e.children;return r.createElement(r.Fragment,{},n)}},m=r.forwardRef((function(e,n){var t=e.components,a=e.mdxType,s=e.originalType,o=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),c=p(t),m=a,g=c["".concat(o,".").concat(m)]||c[m]||d[m]||s;return t?r.createElement(g,l(l({ref:n},u),{},{components:t})):r.createElement(g,l({ref:n},u))}));function g(e,n){var t=arguments,a=n&&n.mdxType;if("string"==typeof e||a){var s=t.length,l=new Array(s);l[0]=m;var i={};for(var o in n)hasOwnProperty.call(n,o)&&(i[o]=n[o]);i.originalType=e,i[c]="string"==typeof e?e:a,l[1]=i;for(var p=2;p<s;p++)l[p]=t[p];return r.createElement.apply(null,l)}return r.createElement.apply(null,t)}m.displayName="MDXCreateElement"}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.ea64386b.js b/assets/js/runtime~main.67670889.js
similarity index 98%
rename from assets/js/runtime~main.ea64386b.js
rename to assets/js/runtime~main.67670889.js
index de09989..08669aa 100644
--- a/assets/js/runtime~main.ea64386b.js
+++ b/assets/js/runtime~main.67670889.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,c,f,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],d=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",112:"afef705c",229:"25f17725",340:"070b53d1",396:"0ae8b3d4",515:"53bb5fc4",599:"3c585fdb",674:"67158350",907:"c1424005",1083:"bd23e567",1444:"69a4ab96",1533:"6edc47f3",1964:"5e15fec9",2331:"19682bb8",2429:"d5417e33",2942:"eb23a929",3085:"1f391b9e",3206:"f8409a7e",3237:"1df93b7f",3628:"fa1a3aa0",3672:"cf6ffe2f",3775:"496bf018",3821:"21b4b958",3909:"cd90435d",3945:"a309f86e",3996:"9791fd42",4003:"6432bc55",4014:"5e50ba72",4096:"c76f729d",4244:"4cc2c078",4281:"1c734f75",4343:"18cf5ace",4490:"262418cd",4519:"2c412ea7",4586:"dc3fdd24",4628:"1ce51947",4729:"0c21af39",4796:"471df853",4992:"dc737160",5097:"a584ba2a",5324:"a9e1a7f6",5542:"729f57ad",5551:"da60bc8f",5643:"30334fcd",5720:"30256b0d",5851:"8660bbc8",5906:"e7c796a6",6126:"e0a8f778",6230:"2bafca50",6455:"4e664dc4",6547:"1c42a294",6552:"6948bca1",6849:"57b59cd4",6860:"dbb131dd",7107:"d76e6194",7251:"9d6fd8ea",7271:"6a90d500",7277:"7d0180ef",7285:"b92f705c",7380:"640bc8a0",7414:"393be207",7566:"972382ea",7587:"3ec2c3f7",7600:"2461ffa2",7706:"ce3fa444",7886:"5818c28e",7918:"17896441",7920:"1a4e3797",7937:"9a9c044b",8005:"600a9360",8015:"0e9953cd",8342:"eb3b0997",8402:"3c835dee",8561:"07f0ce13",8597:"f4a6e698",8718:"31e90f3c",8784:"35a5de3c",8835:"36ea7a08",8844:"b46ab14b",8853:"c296437a",8888:"ee5d850a",8915:"f9cc156b",9243:"40974919",9317:"f5f07875",9514:"1be78505",9594:"507542a3",9596:"88eaec5a",9617:"d83b78fc",9623:"904d61ef",9822:"fe0957ee"}[e]||e)+"."+{53:"3dc9ae8c",112:"358a028d",229:"382b9496",340:"9cc85523",396:"3b16af85",515:"d6fdf9a0",599:"79231f80",674:"78305603",713:"08ec91a0",907:"c8d4c244",975:"f74fc572",1083:"dc758238",1273:"c177fe37",1444:"defa8f0b",1533:"566ee560",1964:"c964b7f9",2331:"071c2780",2429:"7d9140aa",2942:"7e9562fc",3085:"a119d87d",3206:"4525a49f",3237:"7d21e57e",3628:"1d62b77b",3672:"8fdb3d0d",3775:"c0c9431f",3821:"4457daf7",3909:"20009b37",3945:"fd5212eb",3996:"b79f756c",4003:"2ffa3362",4014:"e794fd15",4096:"c85e22b7",4244:"47fd04f3",4281:"8ed56248",4343:"4a84d535",4357:"a9a42ea8",4471:"bf33ef73",4490:"d10e768c",4519:"572b18fc",4586:"9b1a7e0c",4628:"9c631359",4729:"2a013c27",4796:"87918a03",4973:"ecf501a2",4992:"6c3753ae",5097:"a786479b",5324:"b0734069",5394:"95d44d15",5542:"a2663480",5551:"18262bd8",5643:"b5a32572",5720:"be106e3e",5851:"72e68519",5906:"c9b2ac21",6126:"c43c04dc",6230:"7f7fb7ca",6455:"426e997b",6547:"6bff09cc",6552:"88386997",6780:"ba84af4e",6849:"ea31184a",6860:"1017aaa0",6945:"d18f3d89",7107:"54d240ef",7129:"b548d352",7251:"9ebcbca9",7271:"cd42f906",7277:"ae252d73",7285:"e12d5b38",7380:"bb2d05f6",7414:"20dae7da",7566:"391f2ca7",7587:"6f37a44b",7600:"dd59a17d",7706:"d6f25186",7886:"047c7600",7918:"336fd947",7920:"8d0252eb",7937:"9da8e8a6",8005:"70a9ed59",8015:"040c3b57",8342:"0b80b096",8402:"63cab2ea",8484:"e1361c9f",8505:"84cb98eb",8561:"9edb9dd5",8597:"891ffbff",8718:"a0004b49",8784:"cc424d0a",8835:"a9696b29",8844:"0b23475f",8853:"7dc8f3c7",8888:"4771d3bc",8915:"8adaa7a3",9243:"0f389e0e",9317:"9cce08be",9514:"8604cd1a",9594:"9f7d101f",9596:"0ba04755",9617:"71850fcd",9623:"107093cb",9822:"b3151092"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="docs-v-2:",r.l=(e,a,c,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==d+c){t=l;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+c),t.src=e),f[e]=[a];var u=(a,c)=>{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17896441:"7918",40974919:"9243",67158350:"674","935f2afb":"53",afef705c:"112","25f17725":"229","070b53d1":"340","0ae8b3d4":"396","53bb5fc4":"515","3c585fdb":"599",c1424005:"907",bd23e567:"1083","69a4ab96":"1444","6edc47f3":"1533","5e15fec9":"1964","19682bb8":"2331",d5417e33:"2429",eb23a929:"2942","1f391b9e":"3085",f8409a7e:"3206","1df93b7f":"3237",fa1a3aa0:"3628",cf6ffe2f:"3672","496bf018":"3775","21b4b958":"3821",cd90435d:"3909",a309f86e:"3945","9791fd42":"3996","6432bc55":"4003","5e50ba72":"4014",c76f729d:"4096","4cc2c078":"4244","1c734f75":"4281","18cf5ace":"4343","262418cd":"4490","2c412ea7":"4519",dc3fdd24:"4586","1ce51947":"4628","0c21af39":"4729","471df853":"4796",dc737160:"4992",a584ba2a:"5097",a9e1a7f6:"5324","729f57ad":"5542",da60bc8f:"5551","30334fcd":"5643","30256b0d":"5720","8660bbc8":"5851",e7c796a6:"5906",e0a8f778:"6126","2bafca50":"6230","4e664dc4":"6455","1c42a294":"6547","6948bca1":"6552","57b59cd4":"6849",dbb131dd:"6860",d76e6194:"7107","9d6fd8ea":"7251","6a90d500":"7271","7d0180ef":"7277",b92f705c:"7285","640bc8a0":"7380","393be207":"7414","972382ea":"7566","3ec2c3f7":"7587","2461ffa2":"7600",ce3fa444:"7706","5818c28e":"7886","1a4e3797":"7920","9a9c044b":"7937","600a9360":"8005","0e9953cd":"8015",eb3b0997:"8342","3c835dee":"8402","07f0ce13":"8561",f4a6e698:"8597","31e90f3c":"8718","35a5de3c":"8784","36ea7a08":"8835",b46ab14b:"8844",c296437a:"8853",ee5d850a:"8888",f9cc156b:"8915",f5f07875:"9317","1be78505":"9514","507542a3":"9594","88eaec5a":"9596",d83b78fc:"9617","904d61ef":"9623",fe0957ee:"9822"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},c=self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})();
\ No newline at end of file
+(()=>{"use strict";var e,a,c,f,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],d=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,f,d]},r.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return r.d(a,{a:a}),a},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,f){if(1&f&&(e=this(e)),8&f)return e;if("object"==typeof e&&e){if(4&f&&e.__esModule)return e;if(16&f&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};a=a||[null,c({}),c([]),c(c)];for(var t=2&f&&e;"object"==typeof t&&!~a.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((a=>b[a]=()=>e[a]));return b.default=()=>e,r.d(d,b),d},r.d=(e,a)=>{for(var c in a)r.o(a,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:a[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((a,c)=>(r.f[c](e,a),a)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",112:"afef705c",229:"25f17725",340:"070b53d1",396:"0ae8b3d4",515:"53bb5fc4",599:"3c585fdb",674:"67158350",907:"c1424005",1083:"bd23e567",1444:"69a4ab96",1533:"6edc47f3",1964:"5e15fec9",2331:"19682bb8",2429:"d5417e33",2942:"eb23a929",3085:"1f391b9e",3206:"f8409a7e",3237:"1df93b7f",3628:"fa1a3aa0",3672:"cf6ffe2f",3775:"496bf018",3821:"21b4b958",3909:"cd90435d",3945:"a309f86e",3996:"9791fd42",4003:"6432bc55",4014:"5e50ba72",4096:"c76f729d",4244:"4cc2c078",4281:"1c734f75",4343:"18cf5ace",4490:"262418cd",4519:"2c412ea7",4586:"dc3fdd24",4628:"1ce51947",4729:"0c21af39",4796:"471df853",4992:"dc737160",5097:"a584ba2a",5324:"a9e1a7f6",5542:"729f57ad",5551:"da60bc8f",5643:"30334fcd",5720:"30256b0d",5851:"8660bbc8",5906:"e7c796a6",6126:"e0a8f778",6230:"2bafca50",6455:"4e664dc4",6547:"1c42a294",6552:"6948bca1",6849:"57b59cd4",6860:"dbb131dd",7107:"d76e6194",7251:"9d6fd8ea",7271:"6a90d500",7277:"7d0180ef",7285:"b92f705c",7380:"640bc8a0",7414:"393be207",7566:"972382ea",7587:"3ec2c3f7",7600:"2461ffa2",7706:"ce3fa444",7886:"5818c28e",7918:"17896441",7920:"1a4e3797",7937:"9a9c044b",8005:"600a9360",8015:"0e9953cd",8342:"eb3b0997",8402:"3c835dee",8561:"07f0ce13",8597:"f4a6e698",8718:"31e90f3c",8784:"35a5de3c",8835:"36ea7a08",8844:"b46ab14b",8853:"c296437a",8888:"ee5d850a",8915:"f9cc156b",9243:"40974919",9317:"f5f07875",9514:"1be78505",9594:"507542a3",9596:"88eaec5a",9617:"d83b78fc",9623:"904d61ef",9822:"fe0957ee"}[e]||e)+"."+{53:"3dc9ae8c",112:"358a028d",229:"382b9496",340:"9cc85523",396:"3b16af85",515:"d6fdf9a0",599:"79231f80",674:"78305603",713:"08ec91a0",907:"c8d4c244",975:"f74fc572",1083:"dc758238",1273:"c177fe37",1444:"defa8f0b",1533:"566ee560",1964:"c964b7f9",2331:"071c2780",2429:"7d9140aa",2942:"7e9562fc",3085:"a119d87d",3206:"4525a49f",3237:"7d21e57e",3628:"1d62b77b",3672:"8fdb3d0d",3775:"c0c9431f",3821:"4457daf7",3909:"20009b37",3945:"fd5212eb",3996:"b79f756c",4003:"2ffa3362",4014:"e794fd15",4096:"c85e22b7",4244:"47fd04f3",4281:"8ed56248",4343:"4a84d535",4357:"a9a42ea8",4471:"bf33ef73",4490:"d10e768c",4519:"572b18fc",4586:"9b1a7e0c",4628:"9c631359",4729:"2a013c27",4796:"87918a03",4973:"ecf501a2",4992:"6c3753ae",5097:"a786479b",5324:"b0734069",5394:"95d44d15",5542:"a2663480",5551:"18262bd8",5643:"b5a32572",5720:"be106e3e",5851:"72e68519",5906:"c9b2ac21",6126:"c43c04dc",6230:"7f7fb7ca",6455:"426e997b",6547:"6bff09cc",6552:"88386997",6780:"ba84af4e",6849:"ea31184a",6860:"1017aaa0",6945:"d18f3d89",7107:"54d240ef",7129:"b548d352",7251:"9ebcbca9",7271:"cd42f906",7277:"ae252d73",7285:"e12d5b38",7380:"bb2d05f6",7414:"20dae7da",7566:"391f2ca7",7587:"6f37a44b",7600:"dd59a17d",7706:"d6f25186",7886:"047c7600",7918:"336fd947",7920:"8d0252eb",7937:"9da8e8a6",8005:"70a9ed59",8015:"040c3b57",8342:"0b80b096",8402:"63cab2ea",8484:"e1361c9f",8505:"84cb98eb",8561:"9edb9dd5",8597:"891ffbff",8718:"a0004b49",8784:"cc424d0a",8835:"a9696b29",8844:"0b23475f",8853:"7dc8f3c7",8888:"4771d3bc",8915:"8adaa7a3",9243:"0f389e0e",9317:"9cce08be",9514:"8604cd1a",9594:"9f7d101f",9596:"0ba04755",9617:"71850fcd",9623:"107093cb",9822:"70836a31"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),f={},d="docs-v-2:",r.l=(e,a,c,b)=>{if(f[e])f[e].push(a);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==d+c){t=l;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+c),t.src=e),f[e]=[a];var u=(a,c)=>{t.onerror=t.onload=null,clearTimeout(s);var d=f[e];if(delete f[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),a)return a(c)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=u.bind(null,t.onerror),t.onload=u.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),r.p="/",r.gca=function(e){return e={17896441:"7918",40974919:"9243",67158350:"674","935f2afb":"53",afef705c:"112","25f17725":"229","070b53d1":"340","0ae8b3d4":"396","53bb5fc4":"515","3c585fdb":"599",c1424005:"907",bd23e567:"1083","69a4ab96":"1444","6edc47f3":"1533","5e15fec9":"1964","19682bb8":"2331",d5417e33:"2429",eb23a929:"2942","1f391b9e":"3085",f8409a7e:"3206","1df93b7f":"3237",fa1a3aa0:"3628",cf6ffe2f:"3672","496bf018":"3775","21b4b958":"3821",cd90435d:"3909",a309f86e:"3945","9791fd42":"3996","6432bc55":"4003","5e50ba72":"4014",c76f729d:"4096","4cc2c078":"4244","1c734f75":"4281","18cf5ace":"4343","262418cd":"4490","2c412ea7":"4519",dc3fdd24:"4586","1ce51947":"4628","0c21af39":"4729","471df853":"4796",dc737160:"4992",a584ba2a:"5097",a9e1a7f6:"5324","729f57ad":"5542",da60bc8f:"5551","30334fcd":"5643","30256b0d":"5720","8660bbc8":"5851",e7c796a6:"5906",e0a8f778:"6126","2bafca50":"6230","4e664dc4":"6455","1c42a294":"6547","6948bca1":"6552","57b59cd4":"6849",dbb131dd:"6860",d76e6194:"7107","9d6fd8ea":"7251","6a90d500":"7271","7d0180ef":"7277",b92f705c:"7285","640bc8a0":"7380","393be207":"7414","972382ea":"7566","3ec2c3f7":"7587","2461ffa2":"7600",ce3fa444:"7706","5818c28e":"7886","1a4e3797":"7920","9a9c044b":"7937","600a9360":"8005","0e9953cd":"8015",eb3b0997:"8342","3c835dee":"8402","07f0ce13":"8561",f4a6e698:"8597","31e90f3c":"8718","35a5de3c":"8784","36ea7a08":"8835",b46ab14b:"8844",c296437a:"8853",ee5d850a:"8888",f9cc156b:"8915",f5f07875:"9317","1be78505":"9514","507542a3":"9594","88eaec5a":"9596",d83b78fc:"9617","904d61ef":"9623",fe0957ee:"9822"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(a,c)=>{var f=r.o(e,a)?e[a]:void 0;if(0!==f)if(f)c.push(f[2]);else if(/^(1303|532)$/.test(a))e[a]=0;else{var d=new Promise(((c,d)=>f=e[a]=[c,d]));c.push(f[2]=d);var b=r.p+r.u(a),t=new Error;r.l(b,(c=>{if(r.o(e,a)&&(0!==(f=e[a])&&(e[a]=void 0),f)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+a+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,f[1](t)}}),"chunk-"+a,a)}},r.O.j=a=>0===e[a];var a=(a,c)=>{var f,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((a=>0!==e[a]))){for(f in t)r.o(t,f)&&(r.m[f]=t[f]);if(o)var i=o(r)}for(a&&a(c);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},c=self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[];c.forEach(a.bind(null,0)),c.push=a.bind(null,c.push.bind(c))})()})();
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
index 5b7ecd6..055321c 100644
--- a/community/index.html
+++ b/community/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/index.html b/docs/api/index.html
index 4d452ab..92686a2 100644
--- a/docs/api/index.html
+++ b/docs/api/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -38,7 +38,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/contributing-page/index.html b/docs/contributing/contributing-page/index.html
index fed57b3..25c928d 100644
--- a/docs/contributing/contributing-page/index.html
+++ b/docs/contributing/contributing-page/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/conventions-and-typing/index.html b/docs/contributing/conventions-and-typing/index.html
index e86dd26..dc68c75 100644
--- a/docs/contributing/conventions-and-typing/index.html
+++ b/docs/contributing/conventions-and-typing/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -39,7 +39,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/creating-viz-plugins/index.html b/docs/contributing/creating-viz-plugins/index.html
index 31d5d2c..b5ac2db 100644
--- a/docs/contributing/creating-viz-plugins/index.html
+++ b/docs/contributing/creating-viz-plugins/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -51,7 +51,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/hooks-and-linting/index.html b/docs/contributing/hooks-and-linting/index.html
index 19f4343..7371399 100644
--- a/docs/contributing/hooks-and-linting/index.html
+++ b/docs/contributing/hooks-and-linting/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/local-backend/index.html b/docs/contributing/local-backend/index.html
index 54bc7e4..69c45b7 100644
--- a/docs/contributing/local-backend/index.html
+++ b/docs/contributing/local-backend/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -38,7 +38,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/pull-request-guidelines/index.html b/docs/contributing/pull-request-guidelines/index.html
index 69971aa..f1da7bb 100644
--- a/docs/contributing/pull-request-guidelines/index.html
+++ b/docs/contributing/pull-request-guidelines/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/style-guide/index.html b/docs/contributing/style-guide/index.html
index f12483d..4c3ee39 100644
--- a/docs/contributing/style-guide/index.html
+++ b/docs/contributing/style-guide/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -38,7 +38,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/testing-locally/index.html b/docs/contributing/testing-locally/index.html
index 52dbfb6..60eb112 100644
--- a/docs/contributing/testing-locally/index.html
+++ b/docs/contributing/testing-locally/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/translations/index.html b/docs/contributing/translations/index.html
index 2e5abd1..c890cc9 100644
--- a/docs/contributing/translations/index.html
+++ b/docs/contributing/translations/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -66,7 +66,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/types-of-contributions/index.html b/docs/contributing/types-of-contributions/index.html
index 1f7a31e..8ba558e 100644
--- a/docs/contributing/types-of-contributions/index.html
+++ b/docs/contributing/types-of-contributions/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -46,7 +46,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html b/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html
index 0fc36a8..b070321 100644
--- a/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html
+++ b/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -79,7 +79,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/creating-charts-dashboards/exploring-data/index.html b/docs/creating-charts-dashboards/exploring-data/index.html
index c12ddeb..9f112c2 100644
--- a/docs/creating-charts-dashboards/exploring-data/index.html
+++ b/docs/creating-charts-dashboards/exploring-data/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -140,7 +140,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/ascend/index.html b/docs/databases/ascend/index.html
index f071c03..66dfe44 100644
--- a/docs/databases/ascend/index.html
+++ b/docs/databases/ascend/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/athena/index.html b/docs/databases/athena/index.html
index cc79a2e..461e43b 100644
--- a/docs/databases/athena/index.html
+++ b/docs/databases/athena/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/bigquery/index.html b/docs/databases/bigquery/index.html
index 23b43eb..1acbbb3 100644
--- a/docs/databases/bigquery/index.html
+++ b/docs/databases/bigquery/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -41,7 +41,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/clickhouse/index.html b/docs/databases/clickhouse/index.html
index 5ee355e..83cc573 100644
--- a/docs/databases/clickhouse/index.html
+++ b/docs/databases/clickhouse/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/cockroachdb/index.html b/docs/databases/cockroachdb/index.html
index 3c3630f..ba77505 100644
--- a/docs/databases/cockroachdb/index.html
+++ b/docs/databases/cockroachdb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/cratedb/index.html b/docs/databases/cratedb/index.html
index 84a545b..0f883d3 100644
--- a/docs/databases/cratedb/index.html
+++ b/docs/databases/cratedb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -39,7 +39,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/databricks/index.html b/docs/databases/databricks/index.html
index 904fde9..02b9bd9 100644
--- a/docs/databases/databricks/index.html
+++ b/docs/databases/databricks/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/db-connection-ui/index.html b/docs/databases/db-connection-ui/index.html
index 03e94f5..feff675 100644
--- a/docs/databases/db-connection-ui/index.html
+++ b/docs/databases/db-connection-ui/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/docker-add-drivers/index.html b/docs/databases/docker-add-drivers/index.html
index eee1667..814fb38 100644
--- a/docs/databases/docker-add-drivers/index.html
+++ b/docs/databases/docker-add-drivers/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -50,7 +50,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/dremio/index.html b/docs/databases/dremio/index.html
index 60b1c2c..701acd2 100644
--- a/docs/databases/dremio/index.html
+++ b/docs/databases/dremio/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/drill/index.html b/docs/databases/drill/index.html
index 717c95e..d2f5622 100644
--- a/docs/databases/drill/index.html
+++ b/docs/databases/drill/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/druid/index.html b/docs/databases/druid/index.html
index fab7f92..d936bf5 100644
--- a/docs/databases/druid/index.html
+++ b/docs/databases/druid/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -51,7 +51,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/dynamodb/index.html b/docs/databases/dynamodb/index.html
index e869773..dd2b9ec 100644
--- a/docs/databases/dynamodb/index.html
+++ b/docs/databases/dynamodb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/elasticsearch/index.html b/docs/databases/elasticsearch/index.html
index f0044fe..2d4c3f8 100644
--- a/docs/databases/elasticsearch/index.html
+++ b/docs/databases/elasticsearch/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/exasol/index.html b/docs/databases/exasol/index.html
index e1f5840..f560d28 100644
--- a/docs/databases/exasol/index.html
+++ b/docs/databases/exasol/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/extra-settings/index.html b/docs/databases/extra-settings/index.html
index a27b3ca..26d7098 100644
--- a/docs/databases/extra-settings/index.html
+++ b/docs/databases/extra-settings/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -45,7 +45,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/firebird/index.html b/docs/databases/firebird/index.html
index 85ed2fa..fed6b47 100644
--- a/docs/databases/firebird/index.html
+++ b/docs/databases/firebird/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/firebolt/index.html b/docs/databases/firebolt/index.html
index 10505c6..ae3c6d2 100644
--- a/docs/databases/firebolt/index.html
+++ b/docs/databases/firebolt/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/google-sheets/index.html b/docs/databases/google-sheets/index.html
index 96976e0..d1350e1 100644
--- a/docs/databases/google-sheets/index.html
+++ b/docs/databases/google-sheets/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -39,7 +39,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/hana/index.html b/docs/databases/hana/index.html
index 22c06ab..087a1c8 100644
--- a/docs/databases/hana/index.html
+++ b/docs/databases/hana/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/hive/index.html b/docs/databases/hive/index.html
index 3dc5402..af94730 100644
--- a/docs/databases/hive/index.html
+++ b/docs/databases/hive/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/hologres/index.html b/docs/databases/hologres/index.html
index 6fdfc57..6bff000 100644
--- a/docs/databases/hologres/index.html
+++ b/docs/databases/hologres/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/ibm-db2/index.html b/docs/databases/ibm-db2/index.html
index 17915e7..8e1d48f 100644
--- a/docs/databases/ibm-db2/index.html
+++ b/docs/databases/ibm-db2/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/impala/index.html b/docs/databases/impala/index.html
index cc7fc5e..fe243be 100644
--- a/docs/databases/impala/index.html
+++ b/docs/databases/impala/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/installing-database-drivers/index.html b/docs/databases/installing-database-drivers/index.html
index 6fdd48a..9d161a6 100644
--- a/docs/databases/installing-database-drivers/index.html
+++ b/docs/databases/installing-database-drivers/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/kusto/index.html b/docs/databases/kusto/index.html
index 1c099dd..457e0cb 100644
--- a/docs/databases/kusto/index.html
+++ b/docs/databases/kusto/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/kylin/index.html b/docs/databases/kylin/index.html
index 85fa40e..579f5f0 100644
--- a/docs/databases/kylin/index.html
+++ b/docs/databases/kylin/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/mysql/index.html b/docs/databases/mysql/index.html
index 4c1cb55..91ae54c 100644
--- a/docs/databases/mysql/index.html
+++ b/docs/databases/mysql/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/netezza/index.html b/docs/databases/netezza/index.html
index c471d91..c078e87 100644
--- a/docs/databases/netezza/index.html
+++ b/docs/databases/netezza/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/ocient/index.html b/docs/databases/ocient/index.html
index 42bdfc7..24e5ed2 100644
--- a/docs/databases/ocient/index.html
+++ b/docs/databases/ocient/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/oracle/index.html b/docs/databases/oracle/index.html
index 619f357..a1a34bf 100644
--- a/docs/databases/oracle/index.html
+++ b/docs/databases/oracle/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/pinot/index.html b/docs/databases/pinot/index.html
index bab3a50..e4fddac 100644
--- a/docs/databases/pinot/index.html
+++ b/docs/databases/pinot/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/postgres/index.html b/docs/databases/postgres/index.html
index 5e5d84d..66dbf31 100644
--- a/docs/databases/postgres/index.html
+++ b/docs/databases/postgres/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -40,7 +40,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/presto/index.html b/docs/databases/presto/index.html
index 25a77df..d46e159 100644
--- a/docs/databases/presto/index.html
+++ b/docs/databases/presto/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/redshift/index.html b/docs/databases/redshift/index.html
index cd590ba..e8764ec 100644
--- a/docs/databases/redshift/index.html
+++ b/docs/databases/redshift/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/risingwave/index.html b/docs/databases/risingwave/index.html
index 35b1c96..af055d4 100644
--- a/docs/databases/risingwave/index.html
+++ b/docs/databases/risingwave/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/rockset/index.html b/docs/databases/rockset/index.html
index 7ba943e..5f75f19 100644
--- a/docs/databases/rockset/index.html
+++ b/docs/databases/rockset/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/snowflake/index.html b/docs/databases/snowflake/index.html
index c4741d1..22b5d24 100644
--- a/docs/databases/snowflake/index.html
+++ b/docs/databases/snowflake/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/solr/index.html b/docs/databases/solr/index.html
index 7ef5e0f..d3b8d87 100644
--- a/docs/databases/solr/index.html
+++ b/docs/databases/solr/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/spark-sql/index.html b/docs/databases/spark-sql/index.html
index e6277e2..874a65a 100644
--- a/docs/databases/spark-sql/index.html
+++ b/docs/databases/spark-sql/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/sql-server/index.html b/docs/databases/sql-server/index.html
index dcba432..1b1d857 100644
--- a/docs/databases/sql-server/index.html
+++ b/docs/databases/sql-server/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/teradata/index.html b/docs/databases/teradata/index.html
index 191a37b..3d8a12d 100644
--- a/docs/databases/teradata/index.html
+++ b/docs/databases/teradata/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/timescaledb/index.html b/docs/databases/timescaledb/index.html
index 9ee7197..b9ecf57 100644
--- a/docs/databases/timescaledb/index.html
+++ b/docs/databases/timescaledb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -36,7 +36,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/trino/index.html b/docs/databases/trino/index.html
index fd76a0c..689aeff 100644
--- a/docs/databases/trino/index.html
+++ b/docs/databases/trino/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/vertica/index.html b/docs/databases/vertica/index.html
index 18ac6d1..9da6fe5 100644
--- a/docs/databases/vertica/index.html
+++ b/docs/databases/vertica/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/yugabytedb/index.html b/docs/databases/yugabytedb/index.html
index 1ec690e..e096161 100644
--- a/docs/databases/yugabytedb/index.html
+++ b/docs/databases/yugabytedb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/frequently-asked-questions/index.html b/docs/frequently-asked-questions/index.html
index 720993c..c7cc2d2 100644
--- a/docs/frequently-asked-questions/index.html
+++ b/docs/frequently-asked-questions/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -118,7 +118,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/alerts-reports/index.html b/docs/installation/alerts-reports/index.html
index ee8fe45..d1c5292 100644
--- a/docs/installation/alerts-reports/index.html
+++ b/docs/installation/alerts-reports/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -62,7 +62,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/async-queries-celery/index.html b/docs/installation/async-queries-celery/index.html
index ce9cc82..4c86dbf 100644
--- a/docs/installation/async-queries-celery/index.html
+++ b/docs/installation/async-queries-celery/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -51,7 +51,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/cache/index.html b/docs/installation/cache/index.html
index 36d8073..a975a27 100644
--- a/docs/installation/cache/index.html
+++ b/docs/installation/cache/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -54,7 +54,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/configuring-superset/index.html b/docs/installation/configuring-superset/index.html
index 6dc0935..cb7b596 100644
--- a/docs/installation/configuring-superset/index.html
+++ b/docs/installation/configuring-superset/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -74,7 +74,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/event-logging/index.html b/docs/installation/event-logging/index.html
index 459a34a..f446b0a 100644
--- a/docs/installation/event-logging/index.html
+++ b/docs/installation/event-logging/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -41,7 +41,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/installing-superset-from-scratch/index.html b/docs/installation/installing-superset-from-scratch/index.html
index 82bcc40..3ba4d62 100644
--- a/docs/installation/installing-superset-from-scratch/index.html
+++ b/docs/installation/installing-superset-from-scratch/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -46,7 +46,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/installing-superset-using-docker-compose/index.html b/docs/installation/installing-superset-using-docker-compose/index.html
index db425f9..bd01c51 100644
--- a/docs/installation/installing-superset-using-docker-compose/index.html
+++ b/docs/installation/installing-superset-using-docker-compose/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -58,7 +58,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/networking-settings/index.html b/docs/installation/networking-settings/index.html
index 9b08397..de6c6a0 100644
--- a/docs/installation/networking-settings/index.html
+++ b/docs/installation/networking-settings/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/running-on-kubernetes/index.html b/docs/installation/running-on-kubernetes/index.html
index 9d9087d..8e97c5c 100644
--- a/docs/installation/running-on-kubernetes/index.html
+++ b/docs/installation/running-on-kubernetes/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -28,7 +28,7 @@
 Default secret key for kubernetes deployment is <code>thisISaSECRET_1234</code></p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">configOverrides</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">my_override</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    PREVIOUS_SECRET_KEY = &#x27;YOUR_PREVIOUS_SECRET_KEY&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SECRET_KEY = &#x27;YOUR_OWN_RANDOM_GENERATED_SECRET_KEY&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">init</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">command</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> /bin/sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">c</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      . {{ .Values.configMountPath }}/superset_bootstrap.sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      superset re-encrypt-secrets</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      . {{ .Values.configMountPath }}/superset_init.sh</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="dependencies">Dependencies<a href="#dependencies" class="hash-link" aria-label="Direct link to Dependencies" title="Direct link to Dependencies">​</a></h4><p>Install additional packages and do any other bootstrap configuration in the bootstrap script.
 For production clusters it&#x27;s recommended to build own image with this step done in CI.</p><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_S0QG"><p>Superset requires a Python DB-API database driver and a SQLAlchemy
 dialect to be installed for each datastore you want to connect to.</p><p>See <a href="/docs/databases/installing-database-drivers">Install Database Drivers</a> for more information</p></div></div><p>The following example installs the Big Query and Elasticsearch database drivers so that you can
-connect to those datasources in your Superset installation:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">bootstrapScript</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">  #!/bin/bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">  pip install psycopg2==2.9.1 \</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    redis==3.2.1 \</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    sqlalchemy-bigquery==1.5.0 \</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    elasticsearch-dbapi==0.2.5 &amp;&amp;\</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">  if [ ! -f ~/bootstrap ]; then echo &quot;Running Superset with uid {{ .Values.runAsUser }}&quot; &gt; ~/bootstrap; fi</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="superset_configpy">superset_config.py<a href="#superset_configpy" class="hash-link" aria-label="Direct link to superset_config.py" title="Direct link to superset_config.py">​</a></h4><p>The default <code>superset_config.py</code> is fairly minimal and you will very likely need to extend it. This is done by specifying one or more key/value entries in <code>configOverrides</code>, e.g.:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">configOverrides</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">my_override</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    # This will make sure the redirect_uri is properly computed, even with SSL offloading</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    ENABLE_PROXY_FIX = True</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    FEATURE_FLAGS = {</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;DYNAMIC_PLUGINS&quot;: True</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    }</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Those will be evaluated as Helm templates and therefore will be able to reference other <code>values.yaml</code> variables e.g. <code>{{ .Values.ingress.hosts[0] }}</code> will resolve to your ingress external domain.</p><p>The entire <code>superset_config.py</code> will be installed as a secret, so it is safe to pass sensitive parameters directly... however it might be more readable to use secret env variables for that.</p><p>Full python files can be provided by running <code>helm upgrade --install --values my-values.yaml --set-file configOverrides.oauth=set_oauth.py</code></p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="environment-variables">Environment Variables<a href="#environment-variables" class="hash-link" aria-label="Direct link to Environment Variables" title="Direct link to Environment Variables">​</a></h4><p>Those can be passed as key/values either with <code>extraEnv</code> or <code>extraSecretEnv</code> if they&#x27;re sensitive. They can then be referenced from <code>superset_config.py</code> using e.g. <code>os.environ.get(&quot;VAR&quot;)</code>.</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">extraEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_HOST</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> smtp.gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_USER</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> user@gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_PORT</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;587&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_MAIL_FROM</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> user@gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">extraSecretEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_PASSWORD</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> xxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">configOverrides</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">smtp</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    import ast</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_HOST = os.getenv(&quot;SMTP_HOST&quot;,&quot;localhost&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_STARTTLS = ast.literal_eval(os.getenv(&quot;SMTP_STARTTLS&quot;, &quot;True&quot;))</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_SSL = ast.literal_eval(os.getenv(&quot;SMTP_SSL&quot;, &quot;False&quot;))</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_USER = os.getenv(&quot;SMTP_USER&quot;,&quot;superset&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_PORT = os.getenv(&quot;SMTP_PORT&quot;,25)</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_PASSWORD = os.getenv(&quot;SMTP_PASSWORD&quot;,&quot;superset&quot;)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="system-packages">System packages<a href="#system-packages" class="hash-link" aria-label="Direct link to System packages" title="Direct link to System packages">​</a></h4><p>If new system packages are required, they can be installed before application startup by overriding the container&#x27;s <code>command</code>, e.g.:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">supersetWorker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">command</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> /bin/sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">c</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt update</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt install -y somepackage</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt autoremove -yqq --purge</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt clean</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic"># Run celery worker</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      . </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> .Values.configMountPath </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">/superset_bootstrap.sh; celery </span><span class="token punctuation" style="color:#393A34">-</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">app=superset.tasks.celery_app</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">app worker</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="data-sources">Data sources<a href="#data-sources" class="hash-link" aria-label="Direct link to Data sources" title="Direct link to Data sources">​</a></h4><p>Data source definitions can be automatically declared by providing key/value yaml definitions in <code>extraConfigs</code>:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">extraConfigs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">import_datasources.yaml</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    databases:</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    - allow_file_upload: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      allow_ctas: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      allow_cvas: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      database_name: example-db</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      extra: &quot;{\r\n    \&quot;metadata_params\&quot;: {},\r\n    \&quot;engine_params\&quot;: {},\r\n    \&quot;\</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        metadata_cache_timeout\&quot;: {},\r\n    \&quot;schemas_allowed_for_file_upload\&quot;: []\r\n\</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        }&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      sqlalchemy_uri: example://example-db.local</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      tables: []</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Those will also be mounted as secrets and can include sensitive parameters.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-examples">Configuration Examples<a href="#configuration-examples" class="hash-link" aria-label="Direct link to Configuration Examples" title="Direct link to Configuration Examples">​</a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="setting-up-oauth">Setting up OAuth<a href="#setting-up-oauth" class="hash-link" aria-label="Direct link to Setting up OAuth" title="Direct link to Setting up OAuth">​</a></h4><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_S0QG"><p>OAuth setup requires that the <a href="https://authlib.org/" target="_blank" rel="noopener noreferrer">authlib</a> Python library is installed. This can
+connect to those datasources in your Superset installation:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">bootstrapScript</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">  #!/bin/bash</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">  pip install psycopg2==2.9.6 \</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    sqlalchemy-bigquery==1.5.0 \</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    elasticsearch-dbapi==0.2.5 &amp;&amp;\</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">  if [ ! -f ~/bootstrap ]; then echo &quot;Running Superset with uid {{ .Values.runAsUser }}&quot; &gt; ~/bootstrap; fi</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="superset_configpy">superset_config.py<a href="#superset_configpy" class="hash-link" aria-label="Direct link to superset_config.py" title="Direct link to superset_config.py">​</a></h4><p>The default <code>superset_config.py</code> is fairly minimal and you will very likely need to extend it. This is done by specifying one or more key/value entries in <code>configOverrides</code>, e.g.:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">configOverrides</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">my_override</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    # This will make sure the redirect_uri is properly computed, even with SSL offloading</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    ENABLE_PROXY_FIX = True</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    FEATURE_FLAGS = {</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;DYNAMIC_PLUGINS&quot;: True</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    }</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Those will be evaluated as Helm templates and therefore will be able to reference other <code>values.yaml</code> variables e.g. <code>{{ .Values.ingress.hosts[0] }}</code> will resolve to your ingress external domain.</p><p>The entire <code>superset_config.py</code> will be installed as a secret, so it is safe to pass sensitive parameters directly... however it might be more readable to use secret env variables for that.</p><p>Full python files can be provided by running <code>helm upgrade --install --values my-values.yaml --set-file configOverrides.oauth=set_oauth.py</code></p><h4 class="anchor anchorWithStickyNavbar_LWe7" id="environment-variables">Environment Variables<a href="#environment-variables" class="hash-link" aria-label="Direct link to Environment Variables" title="Direct link to Environment Variables">​</a></h4><p>Those can be passed as key/values either with <code>extraEnv</code> or <code>extraSecretEnv</code> if they&#x27;re sensitive. They can then be referenced from <code>superset_config.py</code> using e.g. <code>os.environ.get(&quot;VAR&quot;)</code>.</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">extraEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_HOST</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> smtp.gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_USER</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> user@gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_PORT</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;587&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_MAIL_FROM</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> user@gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">extraSecretEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_PASSWORD</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> xxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">configOverrides</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">smtp</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    import ast</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_HOST = os.getenv(&quot;SMTP_HOST&quot;,&quot;localhost&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_STARTTLS = ast.literal_eval(os.getenv(&quot;SMTP_STARTTLS&quot;, &quot;True&quot;))</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_SSL = ast.literal_eval(os.getenv(&quot;SMTP_SSL&quot;, &quot;False&quot;))</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_USER = os.getenv(&quot;SMTP_USER&quot;,&quot;superset&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_PORT = os.getenv(&quot;SMTP_PORT&quot;,25)</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    SMTP_PASSWORD = os.getenv(&quot;SMTP_PASSWORD&quot;,&quot;superset&quot;)</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="system-packages">System packages<a href="#system-packages" class="hash-link" aria-label="Direct link to System packages" title="Direct link to System packages">​</a></h4><p>If new system packages are required, they can be installed before application startup by overriding the container&#x27;s <code>command</code>, e.g.:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">supersetWorker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">command</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> /bin/sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">c</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt update</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt install -y somepackage</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt autoremove -yqq --purge</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt clean</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic"># Run celery worker</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      . </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> .Values.configMountPath </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">/superset_bootstrap.sh; celery </span><span class="token punctuation" style="color:#393A34">-</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">app=superset.tasks.celery_app</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">app worker</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="data-sources">Data sources<a href="#data-sources" class="hash-link" aria-label="Direct link to Data sources" title="Direct link to Data sources">​</a></h4><p>Data source definitions can be automatically declared by providing key/value yaml definitions in <code>extraConfigs</code>:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">extraConfigs</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">import_datasources.yaml</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    databases:</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    - allow_file_upload: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      allow_ctas: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      allow_cvas: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      database_name: example-db</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      extra: &quot;{\r\n    \&quot;metadata_params\&quot;: {},\r\n    \&quot;engine_params\&quot;: {},\r\n    \&quot;\</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        metadata_cache_timeout\&quot;: {},\r\n    \&quot;schemas_allowed_for_file_upload\&quot;: []\r\n\</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        }&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      sqlalchemy_uri: example://example-db.local</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      tables: []</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><p>Those will also be mounted as secrets and can include sensitive parameters.</p><h3 class="anchor anchorWithStickyNavbar_LWe7" id="configuration-examples">Configuration Examples<a href="#configuration-examples" class="hash-link" aria-label="Direct link to Configuration Examples" title="Direct link to Configuration Examples">​</a></h3><h4 class="anchor anchorWithStickyNavbar_LWe7" id="setting-up-oauth">Setting up OAuth<a href="#setting-up-oauth" class="hash-link" aria-label="Direct link to Setting up OAuth" title="Direct link to Setting up OAuth">​</a></h4><div class="theme-admonition theme-admonition-note alert alert--secondary admonition_LlT9"><div class="admonitionHeading_tbUL"><span class="admonitionIcon_kALy"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_S0QG"><p>OAuth setup requires that the <a href="https://authlib.org/" target="_blank" rel="noopener noreferrer">authlib</a> Python library is installed. This can
 be done using <code>pip</code> by updating the <code>bootstrapScript</code>. See the <a href="#dependencies">Dependencies</a> section
 for more information.</p></div></div><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">extraEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">AUTH_DOMAIN</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> example.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">extraSecretEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">GOOGLE_KEY</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> xxxxxxxxxxxx</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">GOOGLE_SECRET</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> xxxxxxxxxxxxxxxxxxxxxxxx</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">configOverrides</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">enable_oauth</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    # This will make sure the redirect_uri is properly computed, even with SSL offloading</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    ENABLE_PROXY_FIX = True</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    from flask_appbuilder.security.manager import AUTH_OAUTH</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    AUTH_TYPE = AUTH_OAUTH</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    OAUTH_PROVIDERS = </span><span class="token punctuation" style="color:#393A34">[</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token key atrule" style="color:#00a4db">&quot;name&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;google&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token key atrule" style="color:#00a4db">&quot;icon&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;fa-google&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token key atrule" style="color:#00a4db">&quot;token_key&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;access_token&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token key atrule" style="color:#00a4db">&quot;remote_app&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;client_id&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> os.getenv(&quot;GOOGLE_KEY&quot;)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;client_secret&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> os.getenv(&quot;GOOGLE_SECRET&quot;)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;api_base_url&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;https://www.googleapis.com/oauth2/v2/&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;client_kwargs&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token key atrule" style="color:#00a4db">&quot;scope&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;email profile&quot;</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;request_token_url&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> None</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;access_token_url&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;https://accounts.google.com/o/oauth2/token&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;authorize_url&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;https://accounts.google.com/o/oauth2/auth&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token key atrule" style="color:#00a4db">&quot;authorize_params&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token key atrule" style="color:#00a4db">&quot;hd&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> os.getenv(&quot;AUTH_DOMAIN&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> &quot;&quot;)</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">]</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic"># Map Authlib roles to superset roles</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    AUTH_ROLE_ADMIN = &#x27;Admin&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    AUTH_ROLE_PUBLIC = &#x27;Public&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic"># Will allow user self registration, allowing to create Flask users from Authorized User</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    AUTH_USER_REGISTRATION = True</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token comment" style="color:#999988;font-style:italic"># The default user self registration role</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    AUTH_USER_REGISTRATION_ROLE = &quot;Admin&quot;</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h4 class="anchor anchorWithStickyNavbar_LWe7" id="enable-alerts-and-reports">Enable Alerts and Reports<a href="#enable-alerts-and-reports" class="hash-link" aria-label="Direct link to Enable Alerts and Reports" title="Direct link to Enable Alerts and Reports">​</a></h4><p>For this, as per the <a href="/docs/installation/email-reports">Alerts and Reports doc</a>, you will need to:</p><h5 class="anchor anchorWithStickyNavbar_LWe7" id="install-a-supported-webdriver-in-the-celery-worker">Install a supported webdriver in the Celery worker<a href="#install-a-supported-webdriver-in-the-celery-worker" class="hash-link" aria-label="Direct link to Install a supported webdriver in the Celery worker" title="Direct link to Install a supported webdriver in the Celery worker">​</a></h5><p>This is done either by using a custom image that has the webdriver pre-installed, or installing at startup time by overriding the <code>command</code>. Here&#x27;s a working example for <code>chromedriver</code>:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">supersetWorker</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">command</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> /bin/sh</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">c</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      # Install chrome webdriver</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      # See https://github.com/apache/superset/blob/4fa3b6c7185629b87c27fc2c0e5435d458f7b73d/docs/src/pages/docs/installation/email_reports.mdx</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt update</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      wget https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      unzip chromedriver_linux64.zip</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      chmod +x chromedriver</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      mv chromedriver /usr/bin</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt autoremove -yqq --purge</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      apt clean</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">      rm -f google-chrome-stable_current_amd64.deb chromedriver_linux64.zip</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token comment" style="color:#999988;font-style:italic"># Run</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      . </span><span class="token punctuation" style="color:#393A34">{</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> .Values.configMountPath </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">/superset_bootstrap.sh; celery </span><span class="token punctuation" style="color:#393A34">-</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">app=superset.tasks.celery_app</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">app worker</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h5 class="anchor anchorWithStickyNavbar_LWe7" id="run-the-celery-beat">Run the Celery beat<a href="#run-the-celery-beat" class="hash-link" aria-label="Direct link to Run the Celery beat" title="Direct link to Run the Celery beat">​</a></h5><p>This pod will trigger the scheduled tasks configured in the alerts and reports UI section:</p><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">supersetCeleryBeat</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">enabled</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">true</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div><h5 class="anchor anchorWithStickyNavbar_LWe7" id="configure-the-appropriate-celery-jobs-and-smtpslack-settings">Configure the appropriate Celery jobs and SMTP/Slack settings<a href="#configure-the-appropriate-celery-jobs-and-smtpslack-settings" class="hash-link" aria-label="Direct link to Configure the appropriate Celery jobs and SMTP/Slack settings" title="Direct link to Configure the appropriate Celery jobs and SMTP/Slack settings">​</a></h5><div class="language-yaml codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-yaml codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token key atrule" style="color:#00a4db">extraEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_HOST</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> smtp.gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_USER</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> user@gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_PORT</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;587&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_MAIL_FROM</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> user@gmail.com</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">extraSecretEnv</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SLACK_API_TOKEN</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> xoxb</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">xxxx</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">yyyy</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">SMTP_PASSWORD</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> xxxx</span><span class="token punctuation" style="color:#393A34">-</span><span class="token plain">yyyy</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token key atrule" style="color:#00a4db">configOverrides</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">feature_flags</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    import ast</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    FEATURE_FLAGS = </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token key atrule" style="color:#00a4db">&quot;ALERT_REPORTS&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">True</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SMTP_HOST = os.getenv(&quot;SMTP_HOST&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">&quot;localhost&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SMTP_STARTTLS = ast.literal_eval(os.getenv(&quot;SMTP_STARTTLS&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> &quot;True&quot;))</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SMTP_SSL = ast.literal_eval(os.getenv(&quot;SMTP_SSL&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> &quot;False&quot;))</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SMTP_USER = os.getenv(&quot;SMTP_USER&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">&quot;superset&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SMTP_PORT = os.getenv(&quot;SMTP_PORT&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">25)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SMTP_PASSWORD = os.getenv(&quot;SMTP_PASSWORD&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">&quot;superset&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SMTP_MAIL_FROM = os.getenv(&quot;SMTP_MAIL_FROM&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">&quot;superset@superset.com&quot;)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    SLACK_API_TOKEN = os.getenv(&quot;SLACK_API_TOKEN&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain">None)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">celery_conf</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    from celery.schedules import crontab</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token key atrule" style="color:#00a4db">class CeleryConfig(object)</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      broker_url = f&quot;redis</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">//</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">env(&#x27;REDIS_HOST&#x27;)</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">env(&#x27;REDIS_PORT&#x27;)</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">/0&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      imports = (&#x27;superset.sql_lab&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;superset.tasks&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;superset.tasks.thumbnails&quot;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> )</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      result_backend = f&quot;redis</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain">//</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">env(&#x27;REDIS_HOST&#x27;)</span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">:</span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain">env(&#x27;REDIS_PORT&#x27;)</span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain">/0&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      task_annotations = </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">&#x27;sql_lab.get_sql_results&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;rate_limit&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;100/s&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">&#x27;email_reports.send&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;rate_limit&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;1/s&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;time_limit&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">600</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;soft_time_limit&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">600</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;ignore_result&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean important" style="color:#36acaa">True</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      beat_schedule = </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">&#x27;reports.scheduler&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;task&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;reports.scheduler&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;schedule&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> crontab(minute=&#x27;</span><span class="token important">*&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> hour=&#x27;</span><span class="token important">*&#x27;)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">&#x27;reports.prune_log&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;task&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;reports.prune_log&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;schedule&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> crontab(minute=0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> hour=0)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token key atrule" style="color:#00a4db">&#x27;cache-warmup-hourly&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;task&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;cache-warmup&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;schedule&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> crontab(minute=&#x27;</span><span class="token important">*/30&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> hour=&#x27;</span><span class="token important">*&#x27;)</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token key atrule" style="color:#00a4db">&#x27;kwargs&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  </span><span class="token key atrule" style="color:#00a4db">&#x27;strategy_name&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;top_n_dashboards&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  </span><span class="token key atrule" style="color:#00a4db">&#x27;top_n&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                  </span><span class="token key atrule" style="color:#00a4db">&#x27;since&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;7 days ago&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">              </span><span class="token punctuation" style="color:#393A34">}</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">          </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    CELERY_CONFIG = CeleryConfig</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token key atrule" style="color:#00a4db">reports</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">|</span><span class="token scalar string" style="color:#e3116c"></span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    EMAIL_PAGE_RENDER_WAIT = 60</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    WEBDRIVER_BASEURL = &quot;http://{{ template &quot;superset.fullname&quot; . }}:{{ .Values.service.port }}/&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    WEBDRIVER_BASEURL_USER_FRIENDLY = &quot;https://www.example.com/&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    WEBDRIVER_TYPE= &quot;chrome&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    WEBDRIVER_OPTION_ARGS = [</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--force-device-scale-factor=2.0&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--high-dpi-support=2.0&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--headless&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--disable-gpu&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--disable-dev-shm-usage&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        # This is required because our process runs as root (in order to install pip packages)</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--no-sandbox&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--disable-setuid-sandbox&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">        &quot;--disable-extensions&quot;,</span><br></span><span class="token-line" style="color:#393A34"><span class="token scalar string" style="color:#e3116c">    ]</span><br></span></code></pre><div class="buttonGroup__atx"><button type="button" aria-label="Copy code to clipboard" title="Copy" class="clean-btn"><span class="copyButtonIcons_eSgA" aria-hidden="true"><svg class="copyButtonIcon_y97N" viewBox="0 0 24 24"><path d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg><svg class="copyButtonSuccessIcon_LjdS" viewBox="0 0 24 24"><path d="M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"></path></svg></span></button></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class="col"><a href="https://github.com/apache/superset/tree/master/docs/docs/installation/running-on-kubernetes.mdx" target="_blank" rel="noreferrer noopener" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_vwxv"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><a class="pagination-nav__link pagination-nav__link--prev" href="/docs/installation/sql-templating"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">SQL Templating</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docs/installation/setup-ssh-tunneling"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Setup SSH Tunneling</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#running-on-kubernetes" class="table-of-contents__link toc-highlight">Running on Kubernetes</a><ul><li><a href="#prerequisites" class="table-of-contents__link toc-highlight">Prerequisites</a></li><li><a href="#running" class="table-of-contents__link toc-highlight">Running</a></li><li><a href="#important-settings" class="table-of-contents__link toc-highlight">Important settings</a></li><li><a href="#configuration-examples" class="table-of-contents__link toc-highlight">Configuration Examples</a></li></ul></li></ul></div></div></div></div></main></div></div><footer class="footer footer--dark"><div class="container container-fluid"><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2023,
         The <a href="https://www.apache.org/" target="_blank" rel="noreferrer">Apache Software Foundation</a>,
@@ -42,7 +42,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/setup-ssh-tunneling/index.html b/docs/installation/setup-ssh-tunneling/index.html
index 1773312..eb0cbad 100644
--- a/docs/installation/setup-ssh-tunneling/index.html
+++ b/docs/installation/setup-ssh-tunneling/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/sql-templating/index.html b/docs/installation/sql-templating/index.html
index 3f92864..5ddbce7 100644
--- a/docs/installation/sql-templating/index.html
+++ b/docs/installation/sql-templating/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -70,7 +70,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/upgrading-superset/index.html b/docs/installation/upgrading-superset/index.html
index bb256f2..118518a 100644
--- a/docs/installation/upgrading-superset/index.html
+++ b/docs/installation/upgrading-superset/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -37,7 +37,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/intro/index.html b/docs/intro/index.html
index fd194cd..d7c1d14 100644
--- a/docs/intro/index.html
+++ b/docs/intro/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -47,7 +47,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/miscellaneous/chart-params/index.html b/docs/miscellaneous/chart-params/index.html
index 5a8cf72..e629ab5 100644
--- a/docs/miscellaneous/chart-params/index.html
+++ b/docs/miscellaneous/chart-params/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/miscellaneous/country-map-tools/index.html b/docs/miscellaneous/country-map-tools/index.html
index c71a287..dc6d4aa 100644
--- a/docs/miscellaneous/country-map-tools/index.html
+++ b/docs/miscellaneous/country-map-tools/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -41,7 +41,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/miscellaneous/importing-exporting-datasources/index.html b/docs/miscellaneous/importing-exporting-datasources/index.html
index 51930d0..685d64d 100644
--- a/docs/miscellaneous/importing-exporting-datasources/index.html
+++ b/docs/miscellaneous/importing-exporting-datasources/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -47,7 +47,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/miscellaneous/issue-codes/index.html b/docs/miscellaneous/issue-codes/index.html
index ab5a6f9..4562c87 100644
--- a/docs/miscellaneous/issue-codes/index.html
+++ b/docs/miscellaneous/issue-codes/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -64,7 +64,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/miscellaneous/native-filter-migration/index.html b/docs/miscellaneous/native-filter-migration/index.html
index f1b8237..76536af 100644
--- a/docs/miscellaneous/native-filter-migration/index.html
+++ b/docs/miscellaneous/native-filter-migration/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -54,7 +54,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/security/index.html b/docs/security/index.html
index 5fae063..bf02a05 100644
--- a/docs/security/index.html
+++ b/docs/security/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -117,7 +117,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index 162b394..b1c5411 100644
--- a/index.html
+++ b/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -51,7 +51,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/markdown-page/index.html b/markdown-page/index.html
index e657b8e..ec9a9ed 100644
--- a/markdown-page/index.html
+++ b/markdown-page/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
index 06b0aef..9e2f9a1 100644
--- a/search/index.html
+++ b/search/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.574a8f44.css">
-<link rel="preload" href="/assets/js/runtime~main.ea64386b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.67670889.js" as="script">
 <link rel="preload" href="/assets/js/main.633857fa.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -35,7 +35,7 @@
         <a href="https://apache.org/events/current-event" target="_blank" rel="noreferrer">Events</a>&nbsp;|&nbsp;
         <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
         </small></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.ea64386b.js"></script>
+<script src="/assets/js/runtime~main.67670889.js"></script>
 <script src="/assets/js/main.633857fa.js"></script>
 </body>
 </html>
\ No newline at end of file