deploying docs: docs(alerts & reports): add, prune, reorganize (#20872) (apache/superset@3e07de7f39a1e6ee9d0db43435ce4a7285003a79)
diff --git a/404.html b/404.html
index 1b8196e..66677aa 100644
--- a/404.html
+++ b/404.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Page Not Found | Superset</title><meta data-rh="true" property="og:title" content="Page Not Found | Superset"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/404.html"><link data-rh="true" rel="alternate" href="https://superset.apache.org/404.html" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/404.html" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/6948bca1.6f4ae5be.js b/assets/js/6948bca1.6f4ae5be.js
deleted file mode 100644
index aeb6a41..0000000
--- a/assets/js/6948bca1.6f4ae5be.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[6552],{6882:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return u},default:function(){return m},frontMatter:function(){return s},metadata:function(){return l},toc:function(){return c}});var r=n(83117),o=n(80102),i=(n(67294),n(3905)),a=["components"],s={title:"Types of Contributions",hide_title:!0,sidebar_position:2,version:1},u=void 0,l={unversionedId:"contributing/types-of-contributions",id:"contributing/types-of-contributions",title:"Types of Contributions",description:"Types of Contributions",source:"@site/docs/contributing/types-of-contributions.mdx",sourceDirName:"contributing",slug:"/contributing/types-of-contributions",permalink:"/docs/contributing/types-of-contributions",editUrl:"https://github.com/apache/superset/tree/master/docs/docs/contributing/types-of-contributions.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Types of Contributions",hide_title:!0,sidebar_position:2,version:1},sidebar:"tutorialSidebar",previous:{title:"Contributing to Superset",permalink:"/docs/contributing/contributing-page"},next:{title:"Pull Request Guidelines",permalink:"/docs/contributing/pull-request-guidelines"}},p={},c=[{value:"Types of Contributions",id:"types-of-contributions",level:2},{value:"Report Bug",id:"report-bug",level:3},{value:"Submit Ideas or Feature Requests",id:"submit-ideas-or-feature-requests",level:3},{value:"Fix Bugs",id:"fix-bugs",level:3},{value:"Implement Features",id:"implement-features",level:3},{value:"Improve Documentation",id:"improve-documentation",level:3},{value:"Add Translations",id:"add-translations",level:3},{value:"Ask Questions",id:"ask-questions",level:3}],d={toc:c};function m(e){var t=e.components,n=(0,o.Z)(e,a);return(0,i.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"types-of-contributions"},"Types of Contributions"),(0,i.kt)("h3",{id:"report-bug"},"Report Bug"),(0,i.kt)("p",null,"The best way to report a bug is to file an issue on GitHub. Please include:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Your operating system name and version."),(0,i.kt)("li",{parentName:"ul"},"Superset version."),(0,i.kt)("li",{parentName:"ul"},"Detailed steps to reproduce the bug."),(0,i.kt)("li",{parentName:"ul"},"Any details about your local setup that might be helpful in troubleshooting.")),(0,i.kt)("p",null,"When posting Python stack traces, please quote them using\n",(0,i.kt)("a",{parentName:"p",href:"https://help.github.com/articles/creating-and-highlighting-code-blocks/"},"Markdown blocks"),"."),(0,i.kt)("h3",{id:"submit-ideas-or-feature-requests"},"Submit Ideas or Feature Requests"),(0,i.kt)("p",null,"The best way is to file an issue on GitHub:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Explain in detail how it would work."),(0,i.kt)("li",{parentName:"ul"},"Keep the scope as narrow as possible, to make it easier to implement."),(0,i.kt)("li",{parentName:"ul"},"Remember that this is a volunteer-driven project, and that contributions are welcome :)")),(0,i.kt)("p",null,"For large features or major changes to codebase, please create ",(0,i.kt)("strong",{parentName:"p"},"Superset Improvement Proposal (SIP)"),". See template from ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/issues/5602"},"SIP-0")),(0,i.kt)("h3",{id:"fix-bugs"},"Fix Bugs"),(0,i.kt)("p",null,"Look through the GitHub issues. Issues tagged with ",(0,i.kt)("inlineCode",{parentName:"p"},"#bug")," are\nopen to whoever wants to implement them."),(0,i.kt)("h3",{id:"implement-features"},"Implement Features"),(0,i.kt)("p",null,"Look through the GitHub issues. Issues tagged with\n",(0,i.kt)("inlineCode",{parentName:"p"},"#feature")," is open to whoever wants to implement it."),(0,i.kt)("h3",{id:"improve-documentation"},"Improve Documentation"),(0,i.kt)("p",null,"Superset could always use better documentation,\nwhether as part of the official Superset docs,\nin docstrings, ",(0,i.kt)("inlineCode",{parentName:"p"},"docs/*.rst")," or even on the web as blog posts or\narticles. See ",(0,i.kt)("a",{parentName:"p",href:"#documentation"},"Documentation")," for more details."),(0,i.kt)("h3",{id:"add-translations"},"Add Translations"),(0,i.kt)("p",null,"If you are proficient in a non-English language, you can help translate\ntext strings from Superset's UI. You can jump in to the existing\nlanguage dictionaries at\n",(0,i.kt)("inlineCode",{parentName:"p"},"superset/translations/<language_code>/LC_MESSAGES/messages.po"),", or\neven create a dictionary for a new language altogether.\nSee ",(0,i.kt)("a",{parentName:"p",href:"#translating"},"Translating")," for more details."),(0,i.kt)("h3",{id:"ask-questions"},"Ask Questions"),(0,i.kt)("p",null,"There is a dedicated ",(0,i.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/tagged/apache-superset"},(0,i.kt)("inlineCode",{parentName:"a"},"apache-superset")," tag")," on ",(0,i.kt)("a",{parentName:"p",href:"https://stackoverflow.com/"},"StackOverflow"),". Please use it when asking questions."))}m.isMDXComponent=!0},3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=o,f=d["".concat(u,".").concat(m)]||d[m]||c[m]||i;return n?r.createElement(f,a(a({ref:t},p),{},{components:n})):r.createElement(f,a({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var l=2;l<i;l++)a[l]=n[l];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"}}]);
\ No newline at end of file
diff --git a/assets/js/6948bca1.e6cb5da3.js b/assets/js/6948bca1.e6cb5da3.js
new file mode 100644
index 0000000..db49439
--- /dev/null
+++ b/assets/js/6948bca1.e6cb5da3.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[6552],{6882:function(e,t,n){n.r(t),n.d(t,{assets:function(){return p},contentTitle:function(){return u},default:function(){return m},frontMatter:function(){return s},metadata:function(){return l},toc:function(){return c}});var r=n(83117),o=n(80102),i=(n(67294),n(3905)),a=["components"],s={title:"Types of Contributions",hide_title:!0,sidebar_position:2,version:1},u=void 0,l={unversionedId:"contributing/types-of-contributions",id:"contributing/types-of-contributions",title:"Types of Contributions",description:"Types of Contributions",source:"@site/docs/contributing/types-of-contributions.mdx",sourceDirName:"contributing",slug:"/contributing/types-of-contributions",permalink:"/docs/contributing/types-of-contributions",editUrl:"https://github.com/apache/superset/tree/master/docs/docs/contributing/types-of-contributions.mdx",tags:[],version:"current",sidebarPosition:2,frontMatter:{title:"Types of Contributions",hide_title:!0,sidebar_position:2,version:1},sidebar:"tutorialSidebar",previous:{title:"Contributing to Superset",permalink:"/docs/contributing/contributing-page"},next:{title:"Pull Request Guidelines",permalink:"/docs/contributing/pull-request-guidelines"}},p={},c=[{value:"Types of Contributions",id:"types-of-contributions",level:2},{value:"Report Bug",id:"report-bug",level:3},{value:"Submit Ideas or Feature Requests",id:"submit-ideas-or-feature-requests",level:3},{value:"Fix Bugs",id:"fix-bugs",level:3},{value:"Implement Features",id:"implement-features",level:3},{value:"Improve Documentation",id:"improve-documentation",level:3},{value:"Add Translations",id:"add-translations",level:3},{value:"Ask Questions",id:"ask-questions",level:3}],d={toc:c};function m(e){var t=e.components,n=(0,o.Z)(e,a);return(0,i.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"types-of-contributions"},"Types of Contributions"),(0,i.kt)("h3",{id:"report-bug"},"Report Bug"),(0,i.kt)("p",null,"The best way to report a bug is to file an issue on GitHub. Please include:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Your operating system name and version."),(0,i.kt)("li",{parentName:"ul"},"Superset version."),(0,i.kt)("li",{parentName:"ul"},"Detailed steps to reproduce the bug."),(0,i.kt)("li",{parentName:"ul"},"Any details about your local setup that might be helpful in troubleshooting.")),(0,i.kt)("p",null,"When posting Python stack traces, please quote them using\n",(0,i.kt)("a",{parentName:"p",href:"https://help.github.com/articles/creating-and-highlighting-code-blocks/"},"Markdown blocks"),"."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Please note that feature requests opened as Github Issues will be moved to Discussions.")),(0,i.kt)("h3",{id:"submit-ideas-or-feature-requests"},"Submit Ideas or Feature Requests"),(0,i.kt)("p",null,"The best way is to start an ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/discussions/categories/ideas"},'"Ideas" Discussion thread')," on GitHub:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Explain in detail how it would work."),(0,i.kt)("li",{parentName:"ul"},"Keep the scope as narrow as possible, to make it easier to implement."),(0,i.kt)("li",{parentName:"ul"},"Remember that this is a volunteer-driven project, and that your contributions are as welcome as anyone's :)")),(0,i.kt)("p",null,"To propose large features or major changes to codebase, and help usher in those changes, please create a ",(0,i.kt)("strong",{parentName:"p"},"Superset Improvement Proposal (SIP)"),". See template from ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/issues/5602"},"SIP-0")),(0,i.kt)("h3",{id:"fix-bugs"},"Fix Bugs"),(0,i.kt)("p",null,"Look through the GitHub issues. Issues tagged with ",(0,i.kt)("inlineCode",{parentName:"p"},"#bug")," are\nopen to whoever wants to implement them."),(0,i.kt)("h3",{id:"implement-features"},"Implement Features"),(0,i.kt)("p",null,"Look through the GitHub issues. Issues tagged with\n",(0,i.kt)("inlineCode",{parentName:"p"},"#feature")," is open to whoever wants to implement it."),(0,i.kt)("h3",{id:"improve-documentation"},"Improve Documentation"),(0,i.kt)("p",null,"Superset could always use better documentation,\nwhether as part of the official Superset docs,\nin docstrings, ",(0,i.kt)("inlineCode",{parentName:"p"},"docs/*.rst")," or even on the web as blog posts or\narticles. See ",(0,i.kt)("a",{parentName:"p",href:"#documentation"},"Documentation")," for more details."),(0,i.kt)("h3",{id:"add-translations"},"Add Translations"),(0,i.kt)("p",null,"If you are proficient in a non-English language, you can help translate\ntext strings from Superset's UI. You can jump in to the existing\nlanguage dictionaries at\n",(0,i.kt)("inlineCode",{parentName:"p"},"superset/translations/<language_code>/LC_MESSAGES/messages.po"),", or\neven create a dictionary for a new language altogether.\nSee ",(0,i.kt)("a",{parentName:"p",href:"#translating"},"Translating")," for more details."),(0,i.kt)("h3",{id:"ask-questions"},"Ask Questions"),(0,i.kt)("p",null,"There is a dedicated ",(0,i.kt)("a",{parentName:"p",href:"https://stackoverflow.com/questions/tagged/apache-superset"},(0,i.kt)("inlineCode",{parentName:"a"},"apache-superset")," tag")," on ",(0,i.kt)("a",{parentName:"p",href:"https://stackoverflow.com/"},"StackOverflow"),". Please use it when asking questions."))}m.isMDXComponent=!0},3905:function(e,t,n){n.d(t,{Zo:function(){return p},kt:function(){return m}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),l=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,u=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),d=l(n),m=o,f=d["".concat(u,".").concat(m)]||d[m]||c[m]||i;return n?r.createElement(f,a(a({ref:t},p),{},{components:n})):r.createElement(f,a({ref:t},p))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var u in t)hasOwnProperty.call(t,u)&&(s[u]=t[u]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var l=2;l<i;l++)a[l]=n[l];return r.createElement.apply(null,a)}return r.createElement.apply(null,n)}d.displayName="MDXCreateElement"}}]);
\ No newline at end of file
diff --git a/assets/js/f9cc156b.1f1f0ff9.js b/assets/js/f9cc156b.1f1f0ff9.js
deleted file mode 100644
index 945821e..0000000
--- a/assets/js/f9cc156b.1f1f0ff9.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[8915],{6974:function(e,t,n){n.r(t),n.d(t,{assets:function(){return u},contentTitle:function(){return s},default:function(){return m},frontMatter:function(){return l},metadata:function(){return p},toc:function(){return d}});var r=n(83117),a=n(80102),o=(n(67294),n(3905)),i=["components"],l={title:"Alerts and Reports",hide_title:!0,sidebar_position:9,version:2},s=void 0,p={unversionedId:"installation/alerts-reports",id:"installation/alerts-reports",title:"Alerts and Reports",description:"Alerts and Reports",source:"@site/docs/installation/alerts-reports.mdx",sourceDirName:"installation",slug:"/installation/alerts-reports",permalink:"/docs/installation/alerts-reports",editUrl:"https://github.com/apache/superset/tree/master/docs/docs/installation/alerts-reports.mdx",tags:[],version:"current",sidebarPosition:9,frontMatter:{title:"Alerts and Reports",hide_title:!0,sidebar_position:9,version:2},sidebar:"tutorialSidebar",previous:{title:"Async Queries via Celery",permalink:"/docs/installation/async-queries-celery"},next:{title:"SQL Templating",permalink:"/docs/installation/sql-templating"}},u={},d=[{value:"Alerts and Reports",id:"alerts-and-reports",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Commons",id:"commons",level:4},{value:"In your <code>superset_config.py</code>",id:"in-your-superset_configpy",level:5},{value:"In your <code>Dockerfile</code>",id:"in-your-dockerfile",level:5},{value:"Slack integration",id:"slack-integration",level:4},{value:"Kubernetes specific",id:"kubernetes-specific",level:4},{value:"Docker-compose specific",id:"docker-compose-specific",level:4},{value:"You must have in your<code>docker-compose.yaml</code>",id:"you-must-have-in-yourdocker-composeyaml",level:5},{value:"Detailed config",id:"detailed-config",level:3},{value:"Custom Dockerfile",id:"custom-dockerfile",level:3},{value:"Using Firefox",id:"using-firefox",level:4},{value:"Using Chrome",id:"using-chrome",level:4},{value:"Summary of steps to turn on alerts and reporting:",id:"summary-of-steps-to-turn-on-alerts-and-reporting",level:3},{value:"Docker compose",id:"docker-compose",level:3},{value:"Redis message broker",id:"redis-message-broker",level:4},{value:"Replacing SQLite with Postgres",id:"replacing-sqlite-with-postgres",level:4},{value:"Celery worker",id:"celery-worker",level:4},{value:"Celery beat",id:"celery-beat",level:4},{value:"Full <code>docker-compose.yaml</code> configuration",id:"full-docker-composeyaml-configuration",level:4},{value:"Summary",id:"summary",level:3},{value:"Scheduling and Emailing Reports",id:"scheduling-and-emailing-reports",level:2},{value:"Email Reports",id:"email-reports",level:3},{value:"Schedule Reports",id:"schedule-reports",level:3}],c={toc:d};function m(e){var t=e.components,n=(0,a.Z)(e,i);return(0,o.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"alerts-and-reports"},"Alerts and Reports"),(0,o.kt)("p",null,"(version 1.0.1 and above)"),(0,o.kt)("p",null,"Users can configure automated alerts and reports to send dashboards or charts to an email recipient or Slack channel."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Alerts are sent when a SQL condition is reached"),(0,o.kt)("li",{parentName:"ul"},"Reports are sent on a schedule")),(0,o.kt)("p",null,"Alerts and reports are disabled by default. To turn them on, you need to do some setup, described here."),(0,o.kt)("h3",{id:"requirements"},"Requirements"),(0,o.kt)("h4",{id:"commons"},"Commons"),(0,o.kt)("h5",{id:"in-your-superset_configpy"},"In your ",(0,o.kt)("inlineCode",{parentName:"h5"},"superset_config.py")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},'"ALERT_REPORTS"')," ",(0,o.kt)("a",{parentName:"li",href:"https://superset.apache.org/docs/installation/configuring-superset#feature-flags"},"feature flag")," must be turned to True."),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"CELERYBEAT_SCHEDULE")," in CeleryConfig must contain schedule for ",(0,o.kt)("inlineCode",{parentName:"li"},"reports.scheduler"),"."),(0,o.kt)("li",{parentName:"ul"},"At least one of those must be configured, depending on what you want to use:",(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},"emails: ",(0,o.kt)("inlineCode",{parentName:"li"},"SMTP_*")," settings"),(0,o.kt)("li",{parentName:"ul"},"Slack messages: ",(0,o.kt)("inlineCode",{parentName:"li"},"SLACK_API_TOKEN"))))),(0,o.kt)("h5",{id:"in-your-dockerfile"},"In your ",(0,o.kt)("inlineCode",{parentName:"h5"},"Dockerfile")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must install a headless browser, for taking screenshots of the charts and dashboards. Only Firefox and Chrome are currently supported.",(0,o.kt)("blockquote",{parentName:"li"},(0,o.kt)("p",{parentName:"blockquote"},"If you choose Chrome, you must also change the value of ",(0,o.kt)("inlineCode",{parentName:"p"},"WEBDRIVER_TYPE")," to ",(0,o.kt)("inlineCode",{parentName:"p"},'"chrome"')," in your ",(0,o.kt)("inlineCode",{parentName:"p"},"superset_config.py"),".")))),(0,o.kt)("p",null,"Note : All the components required (headless browser, redis, postgres db, celery worker and celery beat) are present in the docker image if you are following ",(0,o.kt)("a",{parentName:"p",href:"https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/"},"Installing Superset Locally"),".\nAll you need to do is add the required config (See ",(0,o.kt)("inlineCode",{parentName:"p"},"Detailed Config"),"). Set ",(0,o.kt)("inlineCode",{parentName:"p"},"ALERT_REPORTS_NOTIFICATION_DRY_RUN")," to ",(0,o.kt)("inlineCode",{parentName:"p"},"False")," in ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/blob/master/docker/pythonpath_dev/superset_config.py"},"superset config")," to disable dry-run mode and start receiving email/slack notifications."),(0,o.kt)("h4",{id:"slack-integration"},"Slack integration"),(0,o.kt)("p",null,"To send alerts and reports to Slack channels, you need to create a new Slack Application on your workspace."),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Connect to your Slack workspace, then head to ",(0,o.kt)("a",{parentName:"li",href:"https://api.slack.com/apps"},"https://api.slack.com/apps"),"."),(0,o.kt)("li",{parentName:"ol"},"Create a new app."),(0,o.kt)("li",{parentName:"ol"},'Go to "OAuth & Permissions" section, and give the following scopes to your app:',(0,o.kt)("ul",{parentName:"li"},(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"incoming-webhook")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"files:write")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"chat:write")))),(0,o.kt)("li",{parentName:"ol"},'At the top of the "OAuth and Permissions" section, click "install to workspace".'),(0,o.kt)("li",{parentName:"ol"},"Select a default channel for your app and continue.\n(You can post to any channel by inviting your Superset app into that channel)."),(0,o.kt)("li",{parentName:"ol"},'The app should now be installed in your workspace, and a "Bot User OAuth Access Token" should have been created. Copy that token in the ',(0,o.kt)("inlineCode",{parentName:"li"},"SLACK_API_TOKEN")," variable of your ",(0,o.kt)("inlineCode",{parentName:"li"},"superset_config.py"),"."),(0,o.kt)("li",{parentName:"ol"},"Restart the service (or run ",(0,o.kt)("inlineCode",{parentName:"li"},"superset init"),") to pull in the new configuration.")),(0,o.kt)("p",null,"Note: when you configure an alert or a report, the Slack channel list take channel names without the leading '#' e.g. use ",(0,o.kt)("inlineCode",{parentName:"p"},"alerts")," instead of ",(0,o.kt)("inlineCode",{parentName:"p"},"#alerts"),"."),(0,o.kt)("h4",{id:"kubernetes-specific"},"Kubernetes specific"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"You must have a ",(0,o.kt)("inlineCode",{parentName:"li"},"celery beat")," pod running. If you're using the chart included in the GitHub repository under ",(0,o.kt)("a",{parentName:"li",href:"https://github.com/apache/superset/tree/master/helm/superset"},"helm/superset"),", you need to put ",(0,o.kt)("inlineCode",{parentName:"li"},"supersetCeleryBeat.enabled = true")," in your values override."),(0,o.kt)("li",{parentName:"ul"},"You can see the dedicated docs about ",(0,o.kt)("a",{parentName:"li",href:"/docs/installation/running-on-kubernetes"},"Kubernetes installation")," for more generic details.")),(0,o.kt)("h4",{id:"docker-compose-specific"},"Docker-compose specific"),(0,o.kt)("h5",{id:"you-must-have-in-yourdocker-composeyaml"},"You must have in your",(0,o.kt)("inlineCode",{parentName:"h5"},"docker-compose.yaml")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"a redis message broker"),(0,o.kt)("li",{parentName:"ul"},"PostgreSQL DB instead of SQLlite"),(0,o.kt)("li",{parentName:"ul"},"one or more ",(0,o.kt)("inlineCode",{parentName:"li"},"celery worker")),(0,o.kt)("li",{parentName:"ul"},"a single ",(0,o.kt)("inlineCode",{parentName:"li"},"celery beat"))),(0,o.kt)("h3",{id:"detailed-config"},"Detailed config"),(0,o.kt)("p",null,"The following configurations need to be added to the ",(0,o.kt)("inlineCode",{parentName:"p"},"superset_config.py")," file. This file is loaded when the image runs, and any configurations in it will override the default configurations found in the ",(0,o.kt)("inlineCode",{parentName:"p"},"config.py"),"."),(0,o.kt)("p",null,"You can find documentation about each field in the default ",(0,o.kt)("inlineCode",{parentName:"p"},"config.py")," in the GitHub repository under ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/blob/master/superset/config.py"},"superset/config.py"),"."),(0,o.kt)("p",null,"You need to replace default values with your custom Redis, Slack and/or SMTP config."),(0,o.kt)("p",null,"In the ",(0,o.kt)("inlineCode",{parentName:"p"},"CeleryConfig"),", only the ",(0,o.kt)("inlineCode",{parentName:"p"},"CELERYBEAT_SCHEDULE")," is relative to this feature, the rest of the ",(0,o.kt)("inlineCode",{parentName:"p"},"CeleryConfig")," can be changed for your needs."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},"from celery.schedules import crontab\n\nFEATURE_FLAGS = {\n    \"ALERT_REPORTS\": True\n}\n\nREDIS_HOST = \"redis-superset\"\nREDIS_PORT = \"6379\"\n\nclass CeleryConfig:\n    broker_url = 'redis://%s:%s/0' % (REDIS_HOST, REDIS_PORT)\n    imports = ('superset.sql_lab', \"superset.tasks\", \"superset.tasks.thumbnails\", )\n    result_backend = 'redis://%s:%s/0' % (REDIS_HOST, REDIS_PORT)\n    worker_prefetch_multiplier = 10\n    task_acks_late = True\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    }\nCELERY_CONFIG = CeleryConfig\n\nSCREENSHOT_LOCATE_WAIT = 100\nSCREENSHOT_LOAD_WAIT = 600\n\n# Slack configuration\nSLACK_API_TOKEN = \"xoxb-\"\n\n# Email configuration\nSMTP_HOST = \"smtp.sendgrid.net\" #change to your host\nSMTP_STARTTLS = True\nSMTP_SSL_SERVER_AUTH = True # If your using an SMTP server with a valid certificate\nSMTP_SSL = False\nSMTP_USER = \"your_user\"\nSMTP_PORT = 2525 # your port eg. 587\nSMTP_PASSWORD = \"your_password\"\nSMTP_MAIL_FROM = \"noreply@youremail.com\"\n\n# WebDriver configuration\n# If you use Firefox, you can stick with default values\n# If you use Chrome, then add the following WEBDRIVER_TYPE and WEBDRIVER_OPTION_ARGS\nWEBDRIVER_TYPE = \"chrome\"\nWEBDRIVER_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    \"--no-sandbox\",\n    \"--disable-setuid-sandbox\",\n    \"--disable-extensions\",\n]\n\n# This is for internal use, you can keep http\nWEBDRIVER_BASEURL=\"http://superset:8088\"\n# This is the link sent to the recipient, change to your domain eg. https://superset.mydomain.com\nWEBDRIVER_BASEURL_USER_FRIENDLY=\"http://localhost:8088\"\n")),(0,o.kt)("h3",{id:"custom-dockerfile"},"Custom Dockerfile"),(0,o.kt)("p",null,"A webdriver (and headless browser) is needed to capture screenshots of the charts and dashboards which are then sent to the recipient. As the base superset image does not have a webdriver installed, we need to extend it and install the webdriver."),(0,o.kt)("h4",{id:"using-firefox"},"Using Firefox"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-docker"},"FROM apache/superset:1.0.1\n\nUSER root\n\nRUN apt-get update && \\\n    apt-get install --no-install-recommends -y firefox-esr\n\nENV GECKODRIVER_VERSION=0.29.0\nRUN wget -q https://github.com/mozilla/geckodriver/releases/download/v${GECKODRIVER_VERSION}/geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz && \\\n    tar -x geckodriver -zf geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz -O > /usr/bin/geckodriver && \\\n    chmod 755 /usr/bin/geckodriver && \\\n    rm geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz\n\nRUN pip install --no-cache gevent psycopg2 redis\n\nUSER superset\n")),(0,o.kt)("h4",{id:"using-chrome"},"Using Chrome"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-docker"},"FROM apache/superset:1.0.1\n\nUSER root\n\nRUN apt-get update && \\\n    wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \\\n    apt-get install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb && \\\n    rm -f google-chrome-stable_current_amd64.deb\n\nRUN export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE_102) && \\\n    wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip && \\\n    unzip chromedriver_linux64.zip -d /usr/bin && \\\n    chmod 755 /usr/bin/chromedriver && \\\n    rm -f chromedriver_linux64.zip\n\nRUN pip install --no-cache gevent psycopg2 redis\n\nUSER superset\n")),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},"Don't forget to set ",(0,o.kt)("inlineCode",{parentName:"p"},"WEBDRIVER_TYPE")," and ",(0,o.kt)("inlineCode",{parentName:"p"},"WEBDRIVER_OPTION_ARGS")," in your config if you use Chrome.")),(0,o.kt)("h3",{id:"summary-of-steps-to-turn-on-alerts-and-reporting"},"Summary of steps to turn on alerts and reporting:"),(0,o.kt)("p",null,"Using the templates below,"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Create a new directory and create the Dockerfile"),(0,o.kt)("li",{parentName:"ol"},"Build the extended image using the Dockerfile"),(0,o.kt)("li",{parentName:"ol"},"Create the ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.yaml")," file in the same directory"),(0,o.kt)("li",{parentName:"ol"},"Create a new subdirectory called ",(0,o.kt)("inlineCode",{parentName:"li"},"config")),(0,o.kt)("li",{parentName:"ol"},"Create the ",(0,o.kt)("inlineCode",{parentName:"li"},"superset_config.py")," file in the ",(0,o.kt)("inlineCode",{parentName:"li"},"config")," subdirectory"),(0,o.kt)("li",{parentName:"ol"},"Run the image using ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose up")," in the same directory as the ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose.py")," file"),(0,o.kt)("li",{parentName:"ol"},"In a new terminal window, upgrade the DB by running ",(0,o.kt)("inlineCode",{parentName:"li"},"docker exec -it superset-1.0.1-extended superset db upgrade")),(0,o.kt)("li",{parentName:"ol"},"Then run ",(0,o.kt)("inlineCode",{parentName:"li"},"docker exec -it superset-1.0.1-extended superset init")),(0,o.kt)("li",{parentName:"ol"},"Then setup your admin user if need be, ",(0,o.kt)("inlineCode",{parentName:"li"},"docker exec -it superset-1.0.1-extended superset fab create-admin")),(0,o.kt)("li",{parentName:"ol"},"Finally, restart the running instance - ",(0,o.kt)("inlineCode",{parentName:"li"},"CTRL-C"),", then ",(0,o.kt)("inlineCode",{parentName:"li"},"docker-compose up"))),(0,o.kt)("p",null,"(note: v 1.0.1 is current at time of writing, you can change the version number to the latest version if a newer version is available)"),(0,o.kt)("h3",{id:"docker-compose"},"Docker compose"),(0,o.kt)("p",null,"The docker compose file lists the services that will be used when running the image. The specific services needed for alerts and reporting are outlined below."),(0,o.kt)("h4",{id:"redis-message-broker"},"Redis message broker"),(0,o.kt)("p",null,"To ferry requests between the celery worker and the Superset instance, we use a message broker. This template uses Redis."),(0,o.kt)("h4",{id:"replacing-sqlite-with-postgres"},"Replacing SQLite with Postgres"),(0,o.kt)("p",null,"While it might be possible to use SQLite for alerts and reporting, it is highly recommended using a more production ready DB for Superset in general. Our template uses Postgres."),(0,o.kt)("h4",{id:"celery-worker"},"Celery worker"),(0,o.kt)("p",null,"The worker will process the tasks that need to be performed when an alert or report is fired."),(0,o.kt)("h4",{id:"celery-beat"},"Celery beat"),(0,o.kt)("p",null,"The beat is the scheduler that tells the worker when to perform its tasks. This schedule is defined when you create the alert or report."),(0,o.kt)("h4",{id:"full-docker-composeyaml-configuration"},"Full ",(0,o.kt)("inlineCode",{parentName:"h4"},"docker-compose.yaml")," configuration"),(0,o.kt)("p",null,"The Redis, Postgres, Celery worker and Celery beat services are defined in the template:"),(0,o.kt)("p",null,"Config for ",(0,o.kt)("inlineCode",{parentName:"p"},"docker-compose.yaml"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-docker"},'version: \'3.6\'\nservices:\n  redis:\n    image: redis:6.0.9-buster\n    restart: on-failure\n    volumes:\n      - redis:/data\n  postgres:\n    image: postgres\n    restart: on-failure\n    environment:\n      POSTGRES_DB: superset\n      POSTGRES_PASSWORD: superset\n      POSTGRES_USER: superset\n    volumes:\n      - db:/var/lib/postgresql/data\n  worker:\n    image: superset-1.0.1-extended\n    restart: on-failure\n    healthcheck:\n      disable: true\n    depends_on:\n      - superset\n      - postgres\n      - redis\n    command: "celery --app=superset.tasks.celery_app:app worker --pool=gevent --concurrency=500"\n    volumes:\n      - ./config/:/app/pythonpath/\n  beat:\n    image: superset-1.0.1-extended\n    restart: on-failure\n    healthcheck:\n      disable: true\n    depends_on:\n      - superset\n      - postgres\n      - redis\n    command: "celery --app=superset.tasks.celery_app:app beat --pidfile /tmp/celerybeat.pid --schedule /tmp/celerybeat-schedule"\n    volumes:\n      - ./config/:/app/pythonpath/\n  superset:\n    image: superset-1.0.1-extended\n    restart: on-failure\n    environment:\n      - SUPERSET_PORT=8088\n    ports:\n      - "8088:8088"\n    depends_on:\n      - postgres\n      - redis\n    command: gunicorn --bind  0.0.0.0:8088 --access-logfile - --error-logfile - --workers 5 --worker-class gthread --threads 4 --timeout 200 --limit-request-line 4094 --limit-request-field_size 8190 superset.app:create_app()\n    volumes:\n      - ./config/:/app/pythonpath/\nvolumes:\n  db:\n    external: true\n  redis:\n    external: false\n')),(0,o.kt)("h3",{id:"summary"},"Summary"),(0,o.kt)("p",null,"With the extended image created by using the ",(0,o.kt)("inlineCode",{parentName:"p"},"Dockerfile"),", and then running that image using ",(0,o.kt)("inlineCode",{parentName:"p"},"docker-compose.yaml"),", plus the required configurations in the ",(0,o.kt)("inlineCode",{parentName:"p"},"superset_config.py")," you should now have alerts and reporting working correctly."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The above templates also work in a Docker swarm environment, you would just need to add ",(0,o.kt)("inlineCode",{parentName:"li"},"Deploy:")," to the Superset, Redis and Postgres services along with your specific configs for your swarm")),(0,o.kt)("h1",{id:"old-reports-feature"},"Old Reports feature"),(0,o.kt)("h2",{id:"scheduling-and-emailing-reports"},"Scheduling and Emailing Reports"),(0,o.kt)("p",null,"(version 0.38 and below)"),(0,o.kt)("h3",{id:"email-reports"},"Email Reports"),(0,o.kt)("p",null,"Email reports allow users to schedule email reports for:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"chart and dashboard visualization (attachment or inline)"),(0,o.kt)("li",{parentName:"ul"},"chart data (CSV attachment on inline table)")),(0,o.kt)("p",null,"Enable email reports in your ",(0,o.kt)("inlineCode",{parentName:"p"},"superset_config.py")," file:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},"ENABLE_SCHEDULED_EMAIL_REPORTS = True\n")),(0,o.kt)("p",null,"This flag enables some permissions that are stored in your database, so you'll want to run ",(0,o.kt)("inlineCode",{parentName:"p"},"superset init")," again if you are running this in a dev environment.\nNow you will find two new items in the navigation bar that allow you to schedule email reports:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Manage > Dashboard Emails")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("strong",{parentName:"li"},"Manage > Chart Email Schedules"))),(0,o.kt)("p",null,"Schedules are defined in ",(0,o.kt)("a",{parentName:"p",href:"https://crontab.guru/"},"crontab format")," and each schedule can have a list\nof recipients (all of them can receive a single mail, or separate mails). For audit purposes, all\noutgoing mails can have a mandatory BCC."),(0,o.kt)("p",null,"In order get picked up you need to configure a celery worker and a celery beat (see section above\n\u201cCelery Tasks\u201d). Your celery configuration also needs an entry ",(0,o.kt)("inlineCode",{parentName:"p"},"email_reports.schedule_hourly")," for\n",(0,o.kt)("inlineCode",{parentName:"p"},"CELERYBEAT_SCHEDULE"),"."),(0,o.kt)("p",null,"To send emails you need to configure SMTP settings in your ",(0,o.kt)("inlineCode",{parentName:"p"},"superset_config.py")," configuration file."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},'EMAIL_NOTIFICATIONS = True\n\nSMTP_HOST = "email-smtp.eu-west-1.amazonaws.com"\nSMTP_STARTTLS = True\nSMTP_SSL = False\nSMTP_USER = "smtp_username"\nSMTP_PORT = 25\nSMTP_PASSWORD = os.environ.get("SMTP_PASSWORD")\nSMTP_MAIL_FROM = "insights@komoot.com"\n')),(0,o.kt)("p",null,"To render dashboards you need to install a local browser on your Superset instance:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/mozilla/geckodriver"},"geckodriver")," for Firefox"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"http://chromedriver.chromium.org/"},"chromedriver")," for Chrome")),(0,o.kt)("p",null,"You'll need to adjust the ",(0,o.kt)("inlineCode",{parentName:"p"},"WEBDRIVER_TYPE")," accordingly in your configuration. You also need\nto specify on behalf of which username to render the dashboards. In general dashboards and charts\nare not accessible to unauthorized requests, that is why the worker needs to take over credentials\nof an existing user to take a snapshot."),(0,o.kt)("p",null,"By default, Alerts and Reports are executed as the user that the ",(0,o.kt)("inlineCode",{parentName:"p"},"THUMBNAIL_SELENIUM_USER")," config\nparameter is set to. To change this user, just change the config as follows:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},"THUMBNAIL_SELENIUM_USER = 'username_with_permission_to_access_dashboards'\n")),(0,o.kt)("p",null,"In addition, it's also possible to execute the reports as the report owners/creators. This is typically\nneeded if there isn't a central service account that has access to all objects or databases (e.g.\nwhen using user impersonation on database connections). For this there's the config flag\n",(0,o.kt)("inlineCode",{parentName:"p"},"ALERTS_REPORTS_EXECUTE_AS")," which makes it possible to customize how alerts and reports are executed.\nTo first try to execute as the creator in the owners list (if present), then fall\nback to the creator, then the last modifier in the owners list (if present), then the\nlast modifier, then an owner (giving priority to the last modifier and then the\ncreator if either is contained within the list of owners, otherwise the first owner\nwill be used) and finally ",(0,o.kt)("inlineCode",{parentName:"p"},"THUMBNAIL_SELENIUM_USER"),", set as follows:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},"from superset.reports.types import ReportScheduleExecutor\n\nALERT_REPORTS_EXECUTE_AS = [\n    ReportScheduleExecutor.CREATOR_OWNER,\n    ReportScheduleExecutor.CREATOR,\n    ReportScheduleExecutor.MODIFIER_OWNER,\n    ReportScheduleExecutor.MODIFIER,\n    ReportScheduleExecutor.OWNER,\n    ReportScheduleExecutor.SELENIUM,\n]\n")),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Important notes")),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Be mindful of the concurrency setting for celery (using ",(0,o.kt)("inlineCode",{parentName:"li"},"-c 4"),"). Selenium/webdriver instances can\nconsume a lot of CPU / memory on your servers."),(0,o.kt)("li",{parentName:"ul"},"In some cases, if you notice a lot of leaked geckodriver processes, try running your celery\nprocesses with ",(0,o.kt)("inlineCode",{parentName:"li"},"celery worker --pool=prefork --max-tasks-per-child=128 ...")),(0,o.kt)("li",{parentName:"ul"},"It is recommended to run separate workers for the ",(0,o.kt)("inlineCode",{parentName:"li"},"sql_lab")," and ",(0,o.kt)("inlineCode",{parentName:"li"},"email_reports")," tasks. This can be\ndone using the ",(0,o.kt)("inlineCode",{parentName:"li"},"queue")," field in ",(0,o.kt)("inlineCode",{parentName:"li"},"task_annotations"),"."),(0,o.kt)("li",{parentName:"ul"},"Adjust ",(0,o.kt)("inlineCode",{parentName:"li"},"WEBDRIVER_BASEURL")," in your configuration file if celery workers can\u2019t access Superset via\nits default value of ",(0,o.kt)("inlineCode",{parentName:"li"},"http://0.0.0.0:8080/"),".")),(0,o.kt)("h3",{id:"schedule-reports"},"Schedule Reports"),(0,o.kt)("p",null,"You can optionally allow your users to schedule queries directly in SQL Lab. This is done by adding\nextra metadata to saved queries, which are then picked up by an external scheduled (like\n",(0,o.kt)("a",{parentName:"p",href:"https://airflow.apache.org/"},"Apache Airflow"),")."),(0,o.kt)("p",null,"To allow scheduled queries, add the following to ",(0,o.kt)("inlineCode",{parentName:"p"},"SCHEDULED_QUERIES")," in your configuration file:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-python"},"SCHEDULED_QUERIES = {\n    # This information is collected when the user clicks \"Schedule query\",\n    # and saved into the `extra` field of saved queries.\n    # See: https://github.com/mozilla-services/react-jsonschema-form\n    'JSONSCHEMA': {\n        'title': 'Schedule',\n        'description': (\n            'In order to schedule a query, you need to specify when it '\n            'should start running, when it should stop running, and how '\n            'often it should run. You can also optionally specify '\n            'dependencies that should be met before the query is '\n            'executed. Please read the documentation for best practices '\n            'and more information on how to specify dependencies.'\n        ),\n        'type': 'object',\n        'properties': {\n            'output_table': {\n                'type': 'string',\n                'title': 'Output table name',\n            },\n            'start_date': {\n                'type': 'string',\n                'title': 'Start date',\n                # date-time is parsed using the chrono library, see\n                # https://www.npmjs.com/package/chrono-node#usage\n                'format': 'date-time',\n                'default': 'tomorrow at 9am',\n            },\n            'end_date': {\n                'type': 'string',\n                'title': 'End date',\n                # date-time is parsed using the chrono library, see\n                # https://www.npmjs.com/package/chrono-node#usage\n                'format': 'date-time',\n                'default': '9am in 30 days',\n            },\n            'schedule_interval': {\n                'type': 'string',\n                'title': 'Schedule interval',\n            },\n            'dependencies': {\n                'type': 'array',\n                'title': 'Dependencies',\n                'items': {\n                    'type': 'string',\n                },\n            },\n        },\n    },\n    'UISCHEMA': {\n        'schedule_interval': {\n            'ui:placeholder': '@daily, @weekly, etc.',\n        },\n        'dependencies': {\n            'ui:help': (\n                'Check the documentation for the correct format when '\n                'defining dependencies.'\n            ),\n        },\n    },\n    'VALIDATION': [\n        # ensure that start_date <= end_date\n        {\n            'name': 'less_equal',\n            'arguments': ['start_date', 'end_date'],\n            'message': 'End date cannot be before start date',\n            # this is where the error message is shown\n            'container': 'end_date',\n        },\n    ],\n    # link to the scheduler; this example links to an Airflow pipeline\n    # that uses the query id and the output table as its name\n    'linkback': (\n        'https://airflow.example.com/admin/airflow/tree?'\n        'dag_id=query_${id}_${extra_json.schedule_info.output_table}'\n    ),\n}\n")),(0,o.kt)("p",null,"This configuration is based on\n",(0,o.kt)("a",{parentName:"p",href:"https://github.com/mozilla-services/react-jsonschema-form"},"react-jsonschema-form")," and will add a\nmenu item called \u201cSchedule\u201d to SQL Lab. When the menu item is clicked, a modal will show up where\nthe user can add the metadata required for scheduling the query."),(0,o.kt)("p",null,"This information can then be retrieved from the endpoint ",(0,o.kt)("inlineCode",{parentName:"p"},"/savedqueryviewapi/api/read")," and used to\nschedule the queries that have ",(0,o.kt)("inlineCode",{parentName:"p"},"scheduled_queries")," in their JSON metadata. For schedulers other than\nAirflow, additional fields can be easily added to the configuration file above."))}m.isMDXComponent=!0},3905:function(e,t,n){n.d(t,{Zo:function(){return u},kt:function(){return m}});var r=n(67294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?o(Object(n),!0).forEach((function(t){a(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=a,h=c["".concat(s,".").concat(m)]||c[m]||d[m]||o;return n?r.createElement(h,i(i({ref:t},u),{},{components:n})):r.createElement(h,i({ref:t},u))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var p=2;p<o;p++)i[p]=n[p];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}c.displayName="MDXCreateElement"}}]);
\ No newline at end of file
diff --git a/assets/js/f9cc156b.fdc73245.js b/assets/js/f9cc156b.fdc73245.js
new file mode 100644
index 0000000..3f8ba58
--- /dev/null
+++ b/assets/js/f9cc156b.fdc73245.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[8915],{6974:function(e,t,n){n.r(t),n.d(t,{assets:function(){return d},contentTitle:function(){return l},default:function(){return h},frontMatter:function(){return s},metadata:function(){return u},toc:function(){return p}});var r=n(83117),o=n(80102),a=(n(67294),n(3905)),i=["components"],s={title:"Alerts and Reports",hide_title:!0,sidebar_position:9,version:2},l=void 0,u={unversionedId:"installation/alerts-reports",id:"installation/alerts-reports",title:"Alerts and Reports",description:"Alerts and Reports",source:"@site/docs/installation/alerts-reports.mdx",sourceDirName:"installation",slug:"/installation/alerts-reports",permalink:"/docs/installation/alerts-reports",editUrl:"https://github.com/apache/superset/tree/master/docs/docs/installation/alerts-reports.mdx",tags:[],version:"current",sidebarPosition:9,frontMatter:{title:"Alerts and Reports",hide_title:!0,sidebar_position:9,version:2},sidebar:"tutorialSidebar",previous:{title:"Async Queries via Celery",permalink:"/docs/installation/async-queries-celery"},next:{title:"SQL Templating",permalink:"/docs/installation/sql-templating"}},d={},p=[{value:"Alerts and Reports",id:"alerts-and-reports",level:2},{value:"Requirements",id:"requirements",level:3},{value:"Commons",id:"commons",level:4},{value:"In your <code>superset_config.py</code> or <code>superset_config_docker.py</code>",id:"in-your-superset_configpy-or-superset_config_dockerpy",level:5},{value:"Disable dry-run mode",id:"disable-dry-run-mode",level:6},{value:"In your <code>Dockerfile</code>",id:"in-your-dockerfile",level:5},{value:"Slack integration",id:"slack-integration",level:4},{value:"Kubernetes-specific",id:"kubernetes-specific",level:4},{value:"Docker-compose specific",id:"docker-compose-specific",level:4},{value:"You must have in your <code>docker-compose.yml</code>",id:"you-must-have-in-your-docker-composeyml",level:5},{value:"Detailed config",id:"detailed-config",level:3},{value:"Custom Dockerfile",id:"custom-dockerfile",level:3},{value:"Using Firefox",id:"using-firefox",level:4},{value:"Using Chrome",id:"using-chrome",level:4},{value:"Schedule Reports",id:"schedule-reports",level:3}],c={toc:p};function h(e){var t=e.components,n=(0,o.Z)(e,i);return(0,a.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h2",{id:"alerts-and-reports"},"Alerts and Reports"),(0,a.kt)("p",null,(0,a.kt)("em",{parentName:"p"},"This covers versions 1.0.1 to current.")),(0,a.kt)("p",null,"Users can configure automated alerts and reports to send dashboards or charts to an email recipient or Slack channel."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Alerts are sent when a SQL condition is reached"),(0,a.kt)("li",{parentName:"ul"},"Reports are sent on a schedule")),(0,a.kt)("p",null,"Alerts and reports are disabled by default. To turn them on, you need to do some setup, described here."),(0,a.kt)("h3",{id:"requirements"},"Requirements"),(0,a.kt)("h4",{id:"commons"},"Commons"),(0,a.kt)("h5",{id:"in-your-superset_configpy-or-superset_config_dockerpy"},"In your ",(0,a.kt)("inlineCode",{parentName:"h5"},"superset_config.py")," or ",(0,a.kt)("inlineCode",{parentName:"h5"},"superset_config_docker.py")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},'"ALERT_REPORTS"')," ",(0,a.kt)("a",{parentName:"li",href:"https://superset.apache.org/docs/installation/configuring-superset#feature-flags"},"feature flag")," must be turned to True."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"beat_schedule")," in CeleryConfig must contain schedule for ",(0,a.kt)("inlineCode",{parentName:"li"},"reports.scheduler"),"."),(0,a.kt)("li",{parentName:"ul"},"At least one of those must be configured, depending on what you want to use:",(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},"emails: ",(0,a.kt)("inlineCode",{parentName:"li"},"SMTP_*")," settings"),(0,a.kt)("li",{parentName:"ul"},"Slack messages: ",(0,a.kt)("inlineCode",{parentName:"li"},"SLACK_API_TOKEN"))))),(0,a.kt)("h6",{id:"disable-dry-run-mode"},"Disable dry-run mode"),(0,a.kt)("p",null,"Screenshots will be taken but no messages actually sent as long as ",(0,a.kt)("inlineCode",{parentName:"p"},"ALERT_REPORTS_NOTIFICATION_DRY_RUN = True"),", its default value in ",(0,a.kt)("inlineCode",{parentName:"p"},"config.py"),".  To disable dry-run mode and start receiving email/Slack notifications, set ",(0,a.kt)("inlineCode",{parentName:"p"},"ALERT_REPORTS_NOTIFICATION_DRY_RUN")," to ",(0,a.kt)("inlineCode",{parentName:"p"},"False")," in ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/blob/master/docker/pythonpath_dev/superset_config.py"},"superset config"),"."),(0,a.kt)("h5",{id:"in-your-dockerfile"},"In your ",(0,a.kt)("inlineCode",{parentName:"h5"},"Dockerfile")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"You must install a headless browser, for taking screenshots of the charts and dashboards. Only Firefox and Chrome are currently supported.",(0,a.kt)("blockquote",{parentName:"li"},(0,a.kt)("p",{parentName:"blockquote"},"If you choose Chrome, you must also change the value of ",(0,a.kt)("inlineCode",{parentName:"p"},"WEBDRIVER_TYPE")," to ",(0,a.kt)("inlineCode",{parentName:"p"},'"chrome"')," in your ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py"),".")))),(0,a.kt)("p",null,"Note: All the components required (Firefox headless browser, Redis, Postgres db, celery worker and celery beat) are present in the ",(0,a.kt)("em",{parentName:"p"},"dev")," docker image if you are following ",(0,a.kt)("a",{parentName:"p",href:"https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/"},"Installing Superset Locally"),".\nAll you need to do is add the required config variables described in this guide (See ",(0,a.kt)("inlineCode",{parentName:"p"},"Detailed Config"),")."),(0,a.kt)("p",null,"If you are running a non-dev docker image, e.g., a stable release like ",(0,a.kt)("inlineCode",{parentName:"p"},"apache/superset:2.0.1"),", that image does not include a headless browser.  Only the ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_worker"),' container needs this headless browser to browse to the target chart or dashboard.\nYou can either install and configure the headless browser - see "Custom Dockerfile" section below - or when deploying via ',(0,a.kt)("inlineCode",{parentName:"p"},"docker-compose"),", modify your ",(0,a.kt)("inlineCode",{parentName:"p"},"docker-compose.yml")," file to use a dev image for the worker container and a stable release image for the ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_app")," container."),(0,a.kt)("h4",{id:"slack-integration"},"Slack integration"),(0,a.kt)("p",null,"To send alerts and reports to Slack channels, you need to create a new Slack Application on your workspace."),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},"Connect to your Slack workspace, then head to ",(0,a.kt)("a",{parentName:"li",href:"https://api.slack.com/apps"},"https://api.slack.com/apps"),"."),(0,a.kt)("li",{parentName:"ol"},"Create a new app."),(0,a.kt)("li",{parentName:"ol"},'Go to "OAuth & Permissions" section, and give the following scopes to your app:',(0,a.kt)("ul",{parentName:"li"},(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"incoming-webhook")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"files:write")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("inlineCode",{parentName:"li"},"chat:write")))),(0,a.kt)("li",{parentName:"ol"},'At the top of the "OAuth and Permissions" section, click "install to workspace".'),(0,a.kt)("li",{parentName:"ol"},"Select a default channel for your app and continue.\n(You can post to any channel by inviting your Superset app into that channel)."),(0,a.kt)("li",{parentName:"ol"},'The app should now be installed in your workspace, and a "Bot User OAuth Access Token" should have been created. Copy that token in the ',(0,a.kt)("inlineCode",{parentName:"li"},"SLACK_API_TOKEN")," variable of your ",(0,a.kt)("inlineCode",{parentName:"li"},"superset_config.py"),"."),(0,a.kt)("li",{parentName:"ol"},"Restart the service (or run ",(0,a.kt)("inlineCode",{parentName:"li"},"superset init"),") to pull in the new configuration.")),(0,a.kt)("p",null,"Note: when you configure an alert or a report, the Slack channel list takes channel names without the leading '#' e.g. use ",(0,a.kt)("inlineCode",{parentName:"p"},"alerts")," instead of ",(0,a.kt)("inlineCode",{parentName:"p"},"#alerts"),"."),(0,a.kt)("h4",{id:"kubernetes-specific"},"Kubernetes-specific"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"You must have a ",(0,a.kt)("inlineCode",{parentName:"li"},"celery beat")," pod running. If you're using the chart included in the GitHub repository under ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/apache/superset/tree/master/helm/superset"},"helm/superset"),", you need to put ",(0,a.kt)("inlineCode",{parentName:"li"},"supersetCeleryBeat.enabled = true")," in your values override."),(0,a.kt)("li",{parentName:"ul"},"You can see the dedicated docs about ",(0,a.kt)("a",{parentName:"li",href:"/docs/installation/running-on-kubernetes"},"Kubernetes installation")," for more generic details.")),(0,a.kt)("h4",{id:"docker-compose-specific"},"Docker-compose specific"),(0,a.kt)("h5",{id:"you-must-have-in-your-docker-composeyml"},"You must have in your ",(0,a.kt)("inlineCode",{parentName:"h5"},"docker-compose.yml")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"A Redis message broker"),(0,a.kt)("li",{parentName:"ul"},"PostgreSQL DB instead of SQLlite"),(0,a.kt)("li",{parentName:"ul"},"One or more ",(0,a.kt)("inlineCode",{parentName:"li"},"celery worker")),(0,a.kt)("li",{parentName:"ul"},"A single ",(0,a.kt)("inlineCode",{parentName:"li"},"celery beat"))),(0,a.kt)("p",null,"This process also works in a Docker swarm environment, you would just need to add ",(0,a.kt)("inlineCode",{parentName:"p"},"Deploy:")," to the Superset, Redis and Postgres services along with your specific configs for your swarm."),(0,a.kt)("h3",{id:"detailed-config"},"Detailed config"),(0,a.kt)("p",null,"The following configurations need to be added to the ",(0,a.kt)("inlineCode",{parentName:"p"},"superset_config.py")," file. This file is loaded when the image runs, and any configurations in it will override the default configurations found in the ",(0,a.kt)("inlineCode",{parentName:"p"},"config.py"),"."),(0,a.kt)("p",null,"You can find documentation about each field in the default ",(0,a.kt)("inlineCode",{parentName:"p"},"config.py")," in the GitHub repository under ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/apache/superset/blob/master/superset/config.py"},"superset/config.py"),"."),(0,a.kt)("p",null,"You need to replace default values with your custom Redis, Slack and/or SMTP config."),(0,a.kt)("p",null,"Superset uses Celery beat and Celery worker(s) to send alerts and reports."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"The beat is the scheduler that tells the worker when to perform its tasks. This schedule is defined when you create the alert or report."),(0,a.kt)("li",{parentName:"ul"},"The worker will process the  tasks that need to be performed when an alert or report is fired.")),(0,a.kt)("p",null,"In the ",(0,a.kt)("inlineCode",{parentName:"p"},"CeleryConfig"),", only the ",(0,a.kt)("inlineCode",{parentName:"p"},"beat_schedule")," is relevant to this feature, the rest of the ",(0,a.kt)("inlineCode",{parentName:"p"},"CeleryConfig")," can be changed for your needs."),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},'from celery.schedules import crontab\n\nFEATURE_FLAGS = {\n    "ALERT_REPORTS": True\n}\n\nREDIS_HOST = "redis-superset"\nREDIS_PORT = "6379"\n\nclass CeleryConfig:\n    broker_url = \'redis://%s:%s/0\' % (REDIS_HOST, REDIS_PORT)\n    imports = (\'superset.sql_lab\', "superset.tasks", "superset.tasks.thumbnails", )\n    result_backend = \'redis://%s:%s/0\' % (REDIS_HOST, REDIS_PORT)\n    worker_prefetch_multiplier = 10\n    task_acks_late = True\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    }\nCELERY_CONFIG = CeleryConfig\n\nSCREENSHOT_LOCATE_WAIT = 100\nSCREENSHOT_LOAD_WAIT = 600\n\n# Slack configuration\nSLACK_API_TOKEN = "xoxb-"\n\n# Email configuration\nSMTP_HOST = "smtp.sendgrid.net" # change to your host\nSMTP_PORT = 2525 # your port, e.g. 587\nSMTP_STARTTLS = True\nSMTP_SSL_SERVER_AUTH = True # If your using an SMTP server with a valid certificate\nSMTP_SSL = False\nSMTP_USER = "your_user" # use the empty string "" if using an unauthenticated SMTP server\nSMTP_PASSWORD = "your_password" # use the empty string "" if using an unauthenticated SMTP server\nSMTP_MAIL_FROM = "noreply@youremail.com"\nEMAIL_REPORTS_SUBJECT_PREFIX = "[Superset] " # optional - overwrites default value in config.py of "[Report] "\n\n# WebDriver configuration\n# If you use Firefox, you can stick with default values\n# If you use Chrome, then add the following WEBDRIVER_TYPE and WEBDRIVER_OPTION_ARGS\nWEBDRIVER_TYPE = "chrome"\nWEBDRIVER_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    "--no-sandbox",\n    "--disable-setuid-sandbox",\n    "--disable-extensions",\n]\n\n# This is for internal use, you can keep http\nWEBDRIVER_BASEURL = "http://superset:8088"\n# This is the link sent to the recipient. Change to your domain, e.g. https://superset.mydomain.com\nWEBDRIVER_BASEURL_USER_FRIENDLY = "http://localhost:8088"\n')),(0,a.kt)("p",null,"You also need\nto specify on behalf of which username to render the dashboards. In general dashboards and charts\nare not accessible to unauthorized requests, that is why the worker needs to take over credentials\nof an existing user to take a snapshot."),(0,a.kt)("p",null,"By default, Alerts and Reports are executed as the user that the ",(0,a.kt)("inlineCode",{parentName:"p"},"THUMBNAIL_SELENIUM_USER")," config\nparameter is set to. To change this user, just change the config as follows:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"THUMBNAIL_SELENIUM_USER = 'username_with_permission_to_access_dashboards'\n")),(0,a.kt)("p",null,"In addition, it's also possible to execute the reports as the report owners/creators. This is typically\nneeded if there isn't a central service account that has access to all objects or databases (e.g.\nwhen using user impersonation on database connections). For this there's the config flag\n",(0,a.kt)("inlineCode",{parentName:"p"},"ALERTS_REPORTS_EXECUTE_AS")," which makes it possible to customize how alerts and reports are executed.\nTo first try to execute as the creator in the owners list (if present), then fall\nback to the creator, then the last modifier in the owners list (if present), then the\nlast modifier, then an owner (giving priority to the last modifier and then the\ncreator if either is contained within the list of owners, otherwise the first owner\nwill be used) and finally ",(0,a.kt)("inlineCode",{parentName:"p"},"THUMBNAIL_SELENIUM_USER"),", set as follows:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"from superset.reports.types import ReportScheduleExecutor\n\nALERT_REPORTS_EXECUTE_AS = [\n    ReportScheduleExecutor.CREATOR_OWNER,\n    ReportScheduleExecutor.CREATOR,\n    ReportScheduleExecutor.MODIFIER_OWNER,\n    ReportScheduleExecutor.MODIFIER,\n    ReportScheduleExecutor.OWNER,\n    ReportScheduleExecutor.SELENIUM,\n]\n")),(0,a.kt)("p",null,(0,a.kt)("strong",{parentName:"p"},"Important notes")),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Be mindful of the concurrency setting for celery (using ",(0,a.kt)("inlineCode",{parentName:"li"},"-c 4"),"). Selenium/webdriver instances can\nconsume a lot of CPU / memory on your servers."),(0,a.kt)("li",{parentName:"ul"},"In some cases, if you notice a lot of leaked geckodriver processes, try running your celery\nprocesses with ",(0,a.kt)("inlineCode",{parentName:"li"},"celery worker --pool=prefork --max-tasks-per-child=128 ...")),(0,a.kt)("li",{parentName:"ul"},"It is recommended to run separate workers for the ",(0,a.kt)("inlineCode",{parentName:"li"},"sql_lab")," and ",(0,a.kt)("inlineCode",{parentName:"li"},"email_reports")," tasks. This can be\ndone using the ",(0,a.kt)("inlineCode",{parentName:"li"},"queue")," field in ",(0,a.kt)("inlineCode",{parentName:"li"},"task_annotations"),"."),(0,a.kt)("li",{parentName:"ul"},"Adjust ",(0,a.kt)("inlineCode",{parentName:"li"},"WEBDRIVER_BASEURL")," in your configuration file if celery workers can\u2019t access Superset via\nits default value of ",(0,a.kt)("inlineCode",{parentName:"li"},"http://0.0.0.0:8080/"),".")),(0,a.kt)("h3",{id:"custom-dockerfile"},"Custom Dockerfile"),(0,a.kt)("p",null,"If you're running the dev version of a released Superset image, like ",(0,a.kt)("inlineCode",{parentName:"p"},"apache/superset:2.0.1-dev"),", you should be set with the above."),(0,a.kt)("p",null,"But if you're building your own image, or starting with a non-dev version, a webdriver (and headless browser) is needed to capture screenshots of the charts and dashboards which are then sent to the recipient.\nHere's how you can modify your Dockerfile to take the screenshots either with Firefox or Chrome."),(0,a.kt)("h4",{id:"using-firefox"},"Using Firefox"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-docker"},"FROM apache/superset:2.0.1\n\nUSER root\n\nRUN apt-get update && \\\n    apt-get install --no-install-recommends -y firefox-esr\n\nENV GECKODRIVER_VERSION=0.29.0\nRUN wget -q https://github.com/mozilla/geckodriver/releases/download/v${GECKODRIVER_VERSION}/geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz && \\\n    tar -x geckodriver -zf geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz -O > /usr/bin/geckodriver && \\\n    chmod 755 /usr/bin/geckodriver && \\\n    rm geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz\n\nRUN pip install --no-cache gevent psycopg2 redis\n\nUSER superset\n")),(0,a.kt)("h4",{id:"using-chrome"},"Using Chrome"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-docker"},"FROM apache/superset:2.0.1\n\nUSER root\n\nRUN apt-get update && \\\n    wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb && \\\n    apt-get install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb && \\\n    rm -f google-chrome-stable_current_amd64.deb\n\nRUN export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE_102) && \\\n    wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip && \\\n    unzip chromedriver_linux64.zip -d /usr/bin && \\\n    chmod 755 /usr/bin/chromedriver && \\\n    rm -f chromedriver_linux64.zip\n\nRUN pip install --no-cache gevent psycopg2 redis\n\nUSER superset\n")),(0,a.kt)("p",null,"Don't forget to set ",(0,a.kt)("inlineCode",{parentName:"p"},"WEBDRIVER_TYPE")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"WEBDRIVER_OPTION_ARGS")," in your config if you use Chrome."),(0,a.kt)("h3",{id:"schedule-reports"},"Schedule Reports"),(0,a.kt)("p",null,"You can optionally allow your users to schedule queries directly in SQL Lab. This is done by adding\nextra metadata to saved queries, which are then picked up by an external scheduled (like\n",(0,a.kt)("a",{parentName:"p",href:"https://airflow.apache.org/"},"Apache Airflow"),")."),(0,a.kt)("p",null,"To allow scheduled queries, add the following to ",(0,a.kt)("inlineCode",{parentName:"p"},"SCHEDULED_QUERIES")," in your configuration file:"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-python"},"SCHEDULED_QUERIES = {\n    # This information is collected when the user clicks \"Schedule query\",\n    # and saved into the `extra` field of saved queries.\n    # See: https://github.com/mozilla-services/react-jsonschema-form\n    'JSONSCHEMA': {\n        'title': 'Schedule',\n        'description': (\n            'In order to schedule a query, you need to specify when it '\n            'should start running, when it should stop running, and how '\n            'often it should run. You can also optionally specify '\n            'dependencies that should be met before the query is '\n            'executed. Please read the documentation for best practices '\n            'and more information on how to specify dependencies.'\n        ),\n        'type': 'object',\n        'properties': {\n            'output_table': {\n                'type': 'string',\n                'title': 'Output table name',\n            },\n            'start_date': {\n                'type': 'string',\n                'title': 'Start date',\n                # date-time is parsed using the chrono library, see\n                # https://www.npmjs.com/package/chrono-node#usage\n                'format': 'date-time',\n                'default': 'tomorrow at 9am',\n            },\n            'end_date': {\n                'type': 'string',\n                'title': 'End date',\n                # date-time is parsed using the chrono library, see\n                # https://www.npmjs.com/package/chrono-node#usage\n                'format': 'date-time',\n                'default': '9am in 30 days',\n            },\n            'schedule_interval': {\n                'type': 'string',\n                'title': 'Schedule interval',\n            },\n            'dependencies': {\n                'type': 'array',\n                'title': 'Dependencies',\n                'items': {\n                    'type': 'string',\n                },\n            },\n        },\n    },\n    'UISCHEMA': {\n        'schedule_interval': {\n            'ui:placeholder': '@daily, @weekly, etc.',\n        },\n        'dependencies': {\n            'ui:help': (\n                'Check the documentation for the correct format when '\n                'defining dependencies.'\n            ),\n        },\n    },\n    'VALIDATION': [\n        # ensure that start_date <= end_date\n        {\n            'name': 'less_equal',\n            'arguments': ['start_date', 'end_date'],\n            'message': 'End date cannot be before start date',\n            # this is where the error message is shown\n            'container': 'end_date',\n        },\n    ],\n    # link to the scheduler; this example links to an Airflow pipeline\n    # that uses the query id and the output table as its name\n    'linkback': (\n        'https://airflow.example.com/admin/airflow/tree?'\n        'dag_id=query_${id}_${extra_json.schedule_info.output_table}'\n    ),\n}\n")),(0,a.kt)("p",null,"This configuration is based on\n",(0,a.kt)("a",{parentName:"p",href:"https://github.com/mozilla-services/react-jsonschema-form"},"react-jsonschema-form")," and will add a\nmenu item called \u201cSchedule\u201d to SQL Lab. When the menu item is clicked, a modal will show up where\nthe user can add the metadata required for scheduling the query."),(0,a.kt)("p",null,"This information can then be retrieved from the endpoint ",(0,a.kt)("inlineCode",{parentName:"p"},"/savedqueryviewapi/api/read")," and used to\nschedule the queries that have ",(0,a.kt)("inlineCode",{parentName:"p"},"scheduled_queries")," in their JSON metadata. For schedulers other than\nAirflow, additional fields can be easily added to the configuration file above."))}h.isMDXComponent=!0},3905:function(e,t,n){n.d(t,{Zo:function(){return d},kt:function(){return h}});var r=n(67294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){o(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function s(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),c=u(n),h=o,m=c["".concat(l,".").concat(h)]||c[h]||p[h]||a;return n?r.createElement(m,i(i({ref:t},d),{},{components:n})):r.createElement(m,i({ref:t},d))}));function h(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=c;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:o,i[1]=s;for(var u=2;u<a;u++)i[u]=n[u];return r.createElement.apply(null,i)}return r.createElement.apply(null,n)}c.displayName="MDXCreateElement"}}]);
\ No newline at end of file
diff --git a/assets/js/runtime~main.e1373280.js b/assets/js/runtime~main.bdbf37f7.js
similarity index 96%
rename from assets/js/runtime~main.e1373280.js
rename to assets/js/runtime~main.bdbf37f7.js
index 409f381..49937a2 100644
--- a/assets/js/runtime~main.e1373280.js
+++ b/assets/js/runtime~main.bdbf37f7.js
@@ -1 +1 @@
-!function(){"use strict";var e,f,a,c,t,d={},n={};function b(e){var f=n[e];if(void 0!==f)return f.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return d[e].call(a.exports,a,a.exports,b),a.loaded=!0,a.exports}b.m=d,b.c=n,e=[],b.O=function(f,a,c,t){if(!a){var d=1/0;for(u=0;u<e.length;u++){a=e[u][0],c=e[u][1],t=e[u][2];for(var n=!0,r=0;r<a.length;r++)(!1&t||d>=t)&&Object.keys(b.O).every((function(e){return b.O[e](a[r])}))?a.splice(r--,1):(n=!1,t<d&&(d=t));if(n){e.splice(u--,1);var o=c();void 0!==o&&(f=o)}}return f}t=t||0;for(var u=e.length;u>0&&e[u-1][2]>t;u--)e[u]=e[u-1];e[u]=[a,c,t]},b.n=function(e){var f=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(f,{a:f}),f},a=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},b.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var t=Object.create(null);b.r(t);var d={};f=f||[null,a({}),a([]),a(a)];for(var n=2&c&&e;"object"==typeof n&&!~f.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach((function(f){d[f]=function(){return e[f]}}));return d.default=function(){return e},b.d(t,d),t},b.d=function(e,f){for(var a in f)b.o(f,a)&&!b.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},b.f={},b.e=function(e){return Promise.all(Object.keys(b.f).reduce((function(f,a){return b.f[a](e,f),f}),[]))},b.u=function(e){return"assets/js/"+({53:"935f2afb",112:"afef705c",229:"25f17725",340:"070b53d1",396:"0ae8b3d4",515:"53bb5fc4",599:"3c585fdb",674:"67158350",907:"c1424005",1083:"bd23e567",1444:"69a4ab96",1477:"b2f554cd",2331:"19682bb8",2429:"d5417e33",3085:"1f391b9e",3206:"f8409a7e",3237:"1df93b7f",3608:"9e4087bc",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",8718:"31e90f3c",8835:"36ea7a08",8844:"b46ab14b",8853:"c296437a",8888:"ee5d850a",8915:"f9cc156b",9243:"40974919",9317:"f5f07875",9514:"1be78505",9594:"507542a3",9617:"d83b78fc",9623:"904d61ef",9822:"fe0957ee"}[e]||e)+"."+{53:"0047dfb4",112:"ca480de4",229:"813c9539",340:"b78accf5",396:"13c31795",515:"7ee0d3ac",599:"afe24577",674:"157b2368",907:"87003d4e",1083:"a30b2d95",1273:"0d9a6711",1444:"3c2a9726",1477:"17b36627",2004:"3b372910",2331:"00292a0b",2395:"fafa09a3",2429:"3d077261",2755:"a0901066",3085:"3241fb6f",3206:"60398429",3237:"be8035d7",3262:"2c45d8fe",3608:"316e9807",3628:"167ee17f",3672:"7650f2f5",3775:"44a16fb7",3821:"eaf47e1a",3909:"c8b06ead",3945:"aad6675b",3996:"52b84ffd",4003:"4f71fe97",4014:"53d7a61a",4096:"18b630a4",4244:"53f83f7a",4281:"3c9c7140",4343:"4ea74047",4471:"2709ee9c",4490:"61dd6187",4519:"f699c29a",4586:"e74a36e8",4628:"77136d12",4729:"11436a08",4796:"de931c9a",4805:"e1578960",4992:"7cfe04a9",5097:"4042dd65",5324:"288f12c7",5394:"8c8e2666",5542:"f9b71be3",5551:"b0c50f4e",5643:"1ac5bf37",5720:"f5425970",5851:"94a647a3",5906:"9eb8b6ff",6126:"dd70b37f",6230:"e6d93edc",6455:"6dfff27f",6547:"472fc00a",6552:"6f4ae5be",6815:"b4991db3",6849:"1d75c99e",6860:"a7c0a88b",6945:"ebbab438",7107:"bf3e4791",7251:"3ad5cebe",7271:"4218bdda",7277:"e606b7f8",7285:"8613795f",7380:"07d0d143",7414:"1e080ae6",7566:"df4eb496",7587:"1567a89c",7600:"6ea79d48",7706:"cd955ce0",7886:"4d5a915a",7918:"29ee1a04",7920:"5c183ffc",7937:"2e242da3",8005:"ad123d70",8015:"74b6d889",8342:"9fb49f24",8402:"d2545dd6",8484:"441f0650",8505:"b0e49054",8561:"fdb4818b",8718:"a699a7e7",8835:"26607e2b",8844:"b4215eaf",8853:"ecf2abe7",8888:"a8b66515",8915:"1f1f0ff9",9243:"6c5db1a9",9317:"5799bd50",9514:"7346756b",9594:"2bbf5202",9617:"5cdd35c1",9623:"d0efdec2",9822:"f30b19a8"}[e]+".js"},b.miniCssF=function(e){},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=function(e,f){return Object.prototype.hasOwnProperty.call(e,f)},c={},t="docs-v-2:",b.l=function(e,f,a,d){if(c[e])c[e].push(f);else{var n,r;if(void 0!==a)for(var o=document.getElementsByTagName("script"),u=0;u<o.length;u++){var i=o[u];if(i.getAttribute("src")==e||i.getAttribute("data-webpack")==t+a){n=i;break}}n||(r=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,b.nc&&n.setAttribute("nonce",b.nc),n.setAttribute("data-webpack",t+a),n.src=e),c[e]=[f];var l=function(f,a){n.onerror=n.onload=null,clearTimeout(s);var t=c[e];if(delete c[e],n.parentNode&&n.parentNode.removeChild(n),t&&t.forEach((function(e){return e(a)})),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),r&&document.head.appendChild(n)}},b.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},b.p="/",b.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",b2f554cd:"1477","19682bb8":"2331",d5417e33:"2429","1f391b9e":"3085",f8409a7e:"3206","1df93b7f":"3237","9e4087bc":"3608",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","31e90f3c":"8718","36ea7a08":"8835",b46ab14b:"8844",c296437a:"8853",ee5d850a:"8888",f9cc156b:"8915",f5f07875:"9317","1be78505":"9514","507542a3":"9594",d83b78fc:"9617","904d61ef":"9623",fe0957ee:"9822"}[e]||e,b.p+b.u(e)},function(){var e={1303:0,532:0};b.f.j=function(f,a){var c=b.o(e,f)?e[f]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var t=new Promise((function(a,t){c=e[f]=[a,t]}));a.push(c[2]=t);var d=b.p+b.u(f),n=new Error;b.l(d,(function(a){if(b.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var t=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;n.message="Loading chunk "+f+" failed.\n("+t+": "+d+")",n.name="ChunkLoadError",n.type=t,n.request=d,c[1](n)}}),"chunk-"+f,f)}},b.O.j=function(f){return 0===e[f]};var f=function(f,a){var c,t,d=a[0],n=a[1],r=a[2],o=0;if(d.some((function(f){return 0!==e[f]}))){for(c in n)b.o(n,c)&&(b.m[c]=n[c]);if(r)var u=r(b)}for(f&&f(a);o<d.length;o++)t=d[o],b.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return b.O(u)},a=self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[];a.forEach(f.bind(null,0)),a.push=f.bind(null,a.push.bind(a))}()}();
\ No newline at end of file
+!function(){"use strict";var e,f,a,c,t,d={},n={};function b(e){var f=n[e];if(void 0!==f)return f.exports;var a=n[e]={id:e,loaded:!1,exports:{}};return d[e].call(a.exports,a,a.exports,b),a.loaded=!0,a.exports}b.m=d,b.c=n,e=[],b.O=function(f,a,c,t){if(!a){var d=1/0;for(u=0;u<e.length;u++){a=e[u][0],c=e[u][1],t=e[u][2];for(var n=!0,r=0;r<a.length;r++)(!1&t||d>=t)&&Object.keys(b.O).every((function(e){return b.O[e](a[r])}))?a.splice(r--,1):(n=!1,t<d&&(d=t));if(n){e.splice(u--,1);var o=c();void 0!==o&&(f=o)}}return f}t=t||0;for(var u=e.length;u>0&&e[u-1][2]>t;u--)e[u]=e[u-1];e[u]=[a,c,t]},b.n=function(e){var f=e&&e.__esModule?function(){return e.default}:function(){return e};return b.d(f,{a:f}),f},a=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},b.t=function(e,c){if(1&c&&(e=this(e)),8&c)return e;if("object"==typeof e&&e){if(4&c&&e.__esModule)return e;if(16&c&&"function"==typeof e.then)return e}var t=Object.create(null);b.r(t);var d={};f=f||[null,a({}),a([]),a(a)];for(var n=2&c&&e;"object"==typeof n&&!~f.indexOf(n);n=a(n))Object.getOwnPropertyNames(n).forEach((function(f){d[f]=function(){return e[f]}}));return d.default=function(){return e},b.d(t,d),t},b.d=function(e,f){for(var a in f)b.o(f,a)&&!b.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:f[a]})},b.f={},b.e=function(e){return Promise.all(Object.keys(b.f).reduce((function(f,a){return b.f[a](e,f),f}),[]))},b.u=function(e){return"assets/js/"+({53:"935f2afb",112:"afef705c",229:"25f17725",340:"070b53d1",396:"0ae8b3d4",515:"53bb5fc4",599:"3c585fdb",674:"67158350",907:"c1424005",1083:"bd23e567",1444:"69a4ab96",1477:"b2f554cd",2331:"19682bb8",2429:"d5417e33",3085:"1f391b9e",3206:"f8409a7e",3237:"1df93b7f",3608:"9e4087bc",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",8718:"31e90f3c",8835:"36ea7a08",8844:"b46ab14b",8853:"c296437a",8888:"ee5d850a",8915:"f9cc156b",9243:"40974919",9317:"f5f07875",9514:"1be78505",9594:"507542a3",9617:"d83b78fc",9623:"904d61ef",9822:"fe0957ee"}[e]||e)+"."+{53:"0047dfb4",112:"ca480de4",229:"813c9539",340:"b78accf5",396:"13c31795",515:"7ee0d3ac",599:"afe24577",674:"157b2368",907:"87003d4e",1083:"a30b2d95",1273:"0d9a6711",1444:"3c2a9726",1477:"17b36627",2004:"3b372910",2331:"00292a0b",2395:"fafa09a3",2429:"3d077261",2755:"a0901066",3085:"3241fb6f",3206:"60398429",3237:"be8035d7",3262:"2c45d8fe",3608:"316e9807",3628:"167ee17f",3672:"7650f2f5",3775:"44a16fb7",3821:"eaf47e1a",3909:"c8b06ead",3945:"aad6675b",3996:"52b84ffd",4003:"4f71fe97",4014:"53d7a61a",4096:"18b630a4",4244:"53f83f7a",4281:"3c9c7140",4343:"4ea74047",4471:"2709ee9c",4490:"61dd6187",4519:"f699c29a",4586:"e74a36e8",4628:"77136d12",4729:"11436a08",4796:"de931c9a",4805:"e1578960",4992:"7cfe04a9",5097:"4042dd65",5324:"288f12c7",5394:"8c8e2666",5542:"f9b71be3",5551:"b0c50f4e",5643:"1ac5bf37",5720:"f5425970",5851:"94a647a3",5906:"9eb8b6ff",6126:"dd70b37f",6230:"e6d93edc",6455:"6dfff27f",6547:"472fc00a",6552:"e6cb5da3",6815:"b4991db3",6849:"1d75c99e",6860:"a7c0a88b",6945:"ebbab438",7107:"bf3e4791",7251:"3ad5cebe",7271:"4218bdda",7277:"e606b7f8",7285:"8613795f",7380:"07d0d143",7414:"1e080ae6",7566:"df4eb496",7587:"1567a89c",7600:"6ea79d48",7706:"cd955ce0",7886:"4d5a915a",7918:"29ee1a04",7920:"5c183ffc",7937:"2e242da3",8005:"ad123d70",8015:"74b6d889",8342:"9fb49f24",8402:"d2545dd6",8484:"441f0650",8505:"b0e49054",8561:"fdb4818b",8718:"a699a7e7",8835:"26607e2b",8844:"b4215eaf",8853:"ecf2abe7",8888:"a8b66515",8915:"fdc73245",9243:"6c5db1a9",9317:"5799bd50",9514:"7346756b",9594:"2bbf5202",9617:"5cdd35c1",9623:"d0efdec2",9822:"f30b19a8"}[e]+".js"},b.miniCssF=function(e){},b.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),b.o=function(e,f){return Object.prototype.hasOwnProperty.call(e,f)},c={},t="docs-v-2:",b.l=function(e,f,a,d){if(c[e])c[e].push(f);else{var n,r;if(void 0!==a)for(var o=document.getElementsByTagName("script"),u=0;u<o.length;u++){var i=o[u];if(i.getAttribute("src")==e||i.getAttribute("data-webpack")==t+a){n=i;break}}n||(r=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,b.nc&&n.setAttribute("nonce",b.nc),n.setAttribute("data-webpack",t+a),n.src=e),c[e]=[f];var l=function(f,a){n.onerror=n.onload=null,clearTimeout(s);var t=c[e];if(delete c[e],n.parentNode&&n.parentNode.removeChild(n),t&&t.forEach((function(e){return e(a)})),f)return f(a)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=l.bind(null,n.onerror),n.onload=l.bind(null,n.onload),r&&document.head.appendChild(n)}},b.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},b.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},b.p="/",b.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",b2f554cd:"1477","19682bb8":"2331",d5417e33:"2429","1f391b9e":"3085",f8409a7e:"3206","1df93b7f":"3237","9e4087bc":"3608",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","31e90f3c":"8718","36ea7a08":"8835",b46ab14b:"8844",c296437a:"8853",ee5d850a:"8888",f9cc156b:"8915",f5f07875:"9317","1be78505":"9514","507542a3":"9594",d83b78fc:"9617","904d61ef":"9623",fe0957ee:"9822"}[e]||e,b.p+b.u(e)},function(){var e={1303:0,532:0};b.f.j=function(f,a){var c=b.o(e,f)?e[f]:void 0;if(0!==c)if(c)a.push(c[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var t=new Promise((function(a,t){c=e[f]=[a,t]}));a.push(c[2]=t);var d=b.p+b.u(f),n=new Error;b.l(d,(function(a){if(b.o(e,f)&&(0!==(c=e[f])&&(e[f]=void 0),c)){var t=a&&("load"===a.type?"missing":a.type),d=a&&a.target&&a.target.src;n.message="Loading chunk "+f+" failed.\n("+t+": "+d+")",n.name="ChunkLoadError",n.type=t,n.request=d,c[1](n)}}),"chunk-"+f,f)}},b.O.j=function(f){return 0===e[f]};var f=function(f,a){var c,t,d=a[0],n=a[1],r=a[2],o=0;if(d.some((function(f){return 0!==e[f]}))){for(c in n)b.o(n,c)&&(b.m[c]=n[c]);if(r)var u=r(b)}for(f&&f(a);o<d.length;o++)t=d[o],b.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return b.O(u)},a=self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[];a.forEach(f.bind(null,0)),a.push=f.bind(null,a.push.bind(a))}()}();
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 3e76794..691ec51 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Archive | Superset</title><meta data-rh="true" property="og:title" content="Archive | Superset"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Archive"><meta data-rh="true" property="og:description" content="Archive"><meta data-rh="true" property="og:url" content="https://superset.apache.org/blog/archive"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/blog/archive"><link data-rh="true" rel="alternate" href="https://superset.apache.org/blog/archive" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/blog/archive" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
index ccb0893..3b1a2af 100644
--- a/community/index.html
+++ b/community/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Community | Superset</title><meta data-rh="true" property="og:title" content="Community | Superset"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Community website for Apache Superset, a data visualization and data exploration platform"><meta data-rh="true" property="og:description" content="Community website for Apache Superset, a data visualization and data exploration platform"><meta data-rh="true" property="og:url" content="https://superset.apache.org/community"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/community"><link data-rh="true" rel="alternate" href="https://superset.apache.org/community" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/community" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/index.html b/docs/api/index.html
index 2802993..39e3276 100644
--- a/docs/api/index.html
+++ b/docs/api/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">API | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/api"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="API | Superset"><meta data-rh="true" name="description" content="global.Buffer = Buffer;"><meta data-rh="true" property="og:description" content="global.Buffer = Buffer;"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/api"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/api" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/api" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -33,7 +33,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 5832a0a..181a1d1 100644
--- a/docs/contributing/contributing-page/index.html
+++ b/docs/contributing/contributing-page/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Contributing to Superset | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/contributing-page"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Contributing to Superset | Superset"><meta data-rh="true" name="description" content="Contributing to Superset"><meta data-rh="true" property="og:description" content="Contributing to Superset"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/contributing-page"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/contributing-page" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/contributing-page" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 2a5a044..81a2b81 100644
--- a/docs/contributing/conventions-and-typing/index.html
+++ b/docs/contributing/conventions-and-typing/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Conventions and Typing | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/conventions-and-typing"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Conventions and Typing | Superset"><meta data-rh="true" name="description" content="Conventions"><meta data-rh="true" property="og:description" content="Conventions"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/conventions-and-typing"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/conventions-and-typing" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/conventions-and-typing" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -34,7 +34,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 eed5b55..223da47 100644
--- a/docs/contributing/creating-viz-plugins/index.html
+++ b/docs/contributing/creating-viz-plugins/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Creating Visualization Plugins | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/creating-viz-plugins"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Creating Visualization Plugins | Superset"><meta data-rh="true" name="description" content="Creating Visualization Plugins"><meta data-rh="true" property="og:description" content="Creating Visualization Plugins"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/creating-viz-plugins"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/creating-viz-plugins" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/creating-viz-plugins" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 fdf3946..d1b1c2d 100644
--- a/docs/contributing/hooks-and-linting/index.html
+++ b/docs/contributing/hooks-and-linting/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Pre-commit Hooks and Linting | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/hooks-and-linting"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Pre-commit Hooks and Linting | Superset"><meta data-rh="true" name="description" content="Git Hooks"><meta data-rh="true" property="og:description" content="Git Hooks"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/hooks-and-linting"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/hooks-and-linting" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/hooks-and-linting" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 eccc20f..edb5b73 100644
--- a/docs/contributing/local-backend/index.html
+++ b/docs/contributing/local-backend/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Running a Local Flask Backend | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/local-backend"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Running a Local Flask Backend | Superset"><meta data-rh="true" name="description" content="Flask server"><meta data-rh="true" property="og:description" content="Flask server"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/local-backend"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/local-backend" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/local-backend" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -33,7 +33,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 4abcc89..c642080 100644
--- a/docs/contributing/pull-request-guidelines/index.html
+++ b/docs/contributing/pull-request-guidelines/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Pull Request Guidelines | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/pull-request-guidelines"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Pull Request Guidelines | Superset"><meta data-rh="true" name="description" content="Pull Request Guidelines"><meta data-rh="true" property="og:description" content="Pull Request Guidelines"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/pull-request-guidelines"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/pull-request-guidelines" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/pull-request-guidelines" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 864fea6..0139a5b 100644
--- a/docs/contributing/style-guide/index.html
+++ b/docs/contributing/style-guide/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Style Guide | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/style-guide"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Style Guide | Superset"><meta data-rh="true" name="description" content="Design Guidelines"><meta data-rh="true" property="og:description" content="Design Guidelines"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/style-guide"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/style-guide" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/style-guide" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -33,7 +33,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 518c5f0..a03473b 100644
--- a/docs/contributing/testing-locally/index.html
+++ b/docs/contributing/testing-locally/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Testing | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/testing-locally"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Testing | Superset"><meta data-rh="true" name="description" content="Testing"><meta data-rh="true" property="og:description" content="Testing"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/testing-locally"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/testing-locally" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/testing-locally" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 87ec09d..b5d533d 100644
--- a/docs/contributing/translations/index.html
+++ b/docs/contributing/translations/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Translating | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/translations"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Translating | Superset"><meta data-rh="true" name="description" content="Translating"><meta data-rh="true" property="og:description" content="Translating"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/translations"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/translations" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/translations" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -61,7 +61,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 aa4c75e..f3c3e65 100644
--- a/docs/contributing/types-of-contributions/index.html
+++ b/docs/contributing/types-of-contributions/index.html
@@ -13,13 +13,13 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Types of Contributions | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/contributing/types-of-contributions"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Types of Contributions | Superset"><meta data-rh="true" name="description" content="Types of Contributions"><meta data-rh="true" property="og:description" content="Types of Contributions"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/contributing/types-of-contributions"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/types-of-contributions" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/contributing/types-of-contributions" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/superset-logo-horiz.svg" alt="Superset Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/superset-logo-horiz-dark.svg" alt="Superset Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" class="navbar__link">Documentation</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/intro">Getting Started</a></li><li><a class="dropdown__link" href="/docs/intro">Tutorial</a></li><li><a class="dropdown__link" href="/docs/frequently-asked-questions">FAQ</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/community">Resources</a></li><li><a href="https://github.com/apache/superset" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>GitHub<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="http://bit.ly/join-superset-slack" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Slack<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="https://lists.apache.org/list.html?dev@superset.apache.org" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Mailing List<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="https://stackoverflow.com/questions/tagged/superset+apache-superset" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Stack Overflow<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div></div><div class="navbar__items navbar__items--right"><a href="https://github.com/apache/superset" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link" class="github-logo-container"></a><div class="searchBox_qEbK"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docs-wrapper docs-doc-page"><div class="docPage_P2Lg"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><aside class="theme-doc-sidebar-container docSidebarContainer_rKC_"><div class="sidebar_CW9Y"><nav class="menu thin-scrollbar menu_SkdO"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/intro">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/installation/installing-superset-using-docker-compose">Installation and Configuration</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/databases/installing-database-drivers">Connecting to Databases</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/creating-charts-dashboards/creating-your-first-dashboard">Creating Charts and Dashboards</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/miscellaneous/country-map-tools">Miscellaneous</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/docs/contributing/contributing-page">Contributing</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/contributing-page">Contributing to Superset</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/contributing/types-of-contributions">Types of Contributions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/pull-request-guidelines">Pull Request Guidelines</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/style-guide">Style Guide</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/local-backend">Running a Local Flask Backend</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/hooks-and-linting">Pre-commit Hooks and Linting</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/conventions-and-typing">Conventions and Typing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/testing-locally">Testing</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/translations">Translating</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/contributing/creating-viz-plugins">Creating Visualization Plugins</a></li></ul></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/frequently-asked-questions">Frequently Asked Questions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/api">API</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/security">Security</a></li></ul></nav></div></aside><main class="docMainContainer_TCnq"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a class="breadcrumbs__link breadcrumbsItemLink_e5ie" href="/">🏠</a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link breadcrumbsItemLink_e5ie">Contributing</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><a class="breadcrumbs__link breadcrumbsItemLink_e5ie" href="/docs/contributing/types-of-contributions">Types of Contributions</a></li></ul></nav><div class="tocCollapsible_jdIR theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_Fzxq">On this page</button></div><div class="theme-doc-markdown markdown"><h2 class="anchor anchorWithStickyNavbar_mojV" id="types-of-contributions">Types of Contributions<a class="hash-link" href="#types-of-contributions" title="Direct link to heading">​</a></h2><h3 class="anchor anchorWithStickyNavbar_mojV" id="report-bug">Report Bug<a class="hash-link" href="#report-bug" title="Direct link to heading">​</a></h3><p>The best way to report a bug is to file an issue on GitHub. Please include:</p><ul><li>Your operating system name and version.</li><li>Superset version.</li><li>Detailed steps to reproduce the bug.</li><li>Any details about your local setup that might be helpful in troubleshooting.</li></ul><p>When posting Python stack traces, please quote them using
-<a href="https://help.github.com/articles/creating-and-highlighting-code-blocks/" target="_blank" rel="noopener noreferrer">Markdown blocks</a>.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="submit-ideas-or-feature-requests">Submit Ideas or Feature Requests<a class="hash-link" href="#submit-ideas-or-feature-requests" title="Direct link to heading">​</a></h3><p>The best way is to file an issue on GitHub:</p><ul><li>Explain in detail how it would work.</li><li>Keep the scope as narrow as possible, to make it easier to implement.</li><li>Remember that this is a volunteer-driven project, and that contributions are welcome :)</li></ul><p>For large features or major changes to codebase, please create <strong>Superset Improvement Proposal (SIP)</strong>. See template from <a href="https://github.com/apache/superset/issues/5602" target="_blank" rel="noopener noreferrer">SIP-0</a></p><h3 class="anchor anchorWithStickyNavbar_mojV" id="fix-bugs">Fix Bugs<a class="hash-link" href="#fix-bugs" title="Direct link to heading">​</a></h3><p>Look through the GitHub issues. Issues tagged with <code>#bug</code> are
+<a href="https://help.github.com/articles/creating-and-highlighting-code-blocks/" target="_blank" rel="noopener noreferrer">Markdown blocks</a>.</p><p><em>Please note that feature requests opened as Github Issues will be moved to Discussions.</em></p><h3 class="anchor anchorWithStickyNavbar_mojV" id="submit-ideas-or-feature-requests">Submit Ideas or Feature Requests<a class="hash-link" href="#submit-ideas-or-feature-requests" title="Direct link to heading">​</a></h3><p>The best way is to start an <a href="https://github.com/apache/superset/discussions/categories/ideas" target="_blank" rel="noopener noreferrer">&quot;Ideas&quot; Discussion thread</a> on GitHub:</p><ul><li>Explain in detail how it would work.</li><li>Keep the scope as narrow as possible, to make it easier to implement.</li><li>Remember that this is a volunteer-driven project, and that your contributions are as welcome as anyone&#x27;s :)</li></ul><p>To propose large features or major changes to codebase, and help usher in those changes, please create a <strong>Superset Improvement Proposal (SIP)</strong>. See template from <a href="https://github.com/apache/superset/issues/5602" target="_blank" rel="noopener noreferrer">SIP-0</a></p><h3 class="anchor anchorWithStickyNavbar_mojV" id="fix-bugs">Fix Bugs<a class="hash-link" href="#fix-bugs" title="Direct link to heading">​</a></h3><p>Look through the GitHub issues. Issues tagged with <code>#bug</code> are
 open to whoever wants to implement them.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="implement-features">Implement Features<a class="hash-link" href="#implement-features" title="Direct link to heading">​</a></h3><p>Look through the GitHub issues. Issues tagged with
 <code>#feature</code> is open to whoever wants to implement it.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="improve-documentation">Improve Documentation<a class="hash-link" href="#improve-documentation" title="Direct link to heading">​</a></h3><p>Superset could always use better documentation,
 whether as part of the official Superset docs,
@@ -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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 a895862..7113c4a 100644
--- a/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html
+++ b/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Creating Your First Dashboard | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/creating-charts-dashboards/creating-your-first-dashboard"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Creating Your First Dashboard | Superset"><meta data-rh="true" name="description" content="Creating Your First Dashboard"><meta data-rh="true" property="og:description" content="Creating Your First Dashboard"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/creating-charts-dashboards/creating-your-first-dashboard"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/creating-charts-dashboards/creating-your-first-dashboard" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/creating-charts-dashboards/creating-your-first-dashboard" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -76,7 +76,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 3bcef04..4426d18 100644
--- a/docs/creating-charts-dashboards/exploring-data/index.html
+++ b/docs/creating-charts-dashboards/exploring-data/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Exploring Data in Superset | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/creating-charts-dashboards/exploring-data"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Exploring Data in Superset | Superset"><meta data-rh="true" name="description" content="Exploring Data in Superset"><meta data-rh="true" property="og:description" content="Exploring Data in Superset"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/creating-charts-dashboards/exploring-data"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/creating-charts-dashboards/exploring-data" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/creating-charts-dashboards/exploring-data" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -135,7 +135,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 238d439..43a8eee 100644
--- a/docs/databases/ascend/index.html
+++ b/docs/databases/ascend/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Ascend.io | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/ascend"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Ascend.io | Superset"><meta data-rh="true" name="description" content="Ascend.io"><meta data-rh="true" property="og:description" content="Ascend.io"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/ascend"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/ascend" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/ascend" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 08c39a7..4c22e24 100644
--- a/docs/databases/athena/index.html
+++ b/docs/databases/athena/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Amazon Athena | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/athena"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Amazon Athena | Superset"><meta data-rh="true" name="description" content="AWS Athena"><meta data-rh="true" property="og:description" content="AWS Athena"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/athena"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/athena" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/athena" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 b03d5ef..e5e9e58 100644
--- a/docs/databases/bigquery/index.html
+++ b/docs/databases/bigquery/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Google BigQuery | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/bigquery"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Google BigQuery | Superset"><meta data-rh="true" name="description" content="Google BigQuery"><meta data-rh="true" property="og:description" content="Google BigQuery"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/bigquery"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/bigquery" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/bigquery" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 adac79d..603afa0 100644
--- a/docs/databases/clickhouse/index.html
+++ b/docs/databases/clickhouse/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">ClickHouse | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/clickhouse"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="ClickHouse | Superset"><meta data-rh="true" name="description" content="ClickHouse"><meta data-rh="true" property="og:description" content="ClickHouse"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/clickhouse"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/clickhouse" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/clickhouse" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 460a1da..7b784a4 100644
--- a/docs/databases/cockroachdb/index.html
+++ b/docs/databases/cockroachdb/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">CockroachDB | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/cockroachdb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="CockroachDB | Superset"><meta data-rh="true" name="description" content="CockroachDB"><meta data-rh="true" property="og:description" content="CockroachDB"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/cockroachdb"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/cockroachdb" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/cockroachdb" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 d4ab38c..d5cff76 100644
--- a/docs/databases/cratedb/index.html
+++ b/docs/databases/cratedb/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">CrateDB | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/cratedb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="CrateDB | Superset"><meta data-rh="true" name="description" content="CrateDB"><meta data-rh="true" property="og:description" content="CrateDB"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/cratedb"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/cratedb" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/cratedb" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -34,7 +34,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 fd167dc..b21ffa4 100644
--- a/docs/databases/databricks/index.html
+++ b/docs/databases/databricks/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Databricks | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/databricks"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Databricks | Superset"><meta data-rh="true" name="description" content="Databricks"><meta data-rh="true" property="og:description" content="Databricks"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/databricks"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/databricks" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/databricks" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 01fdad3..01014a4 100644
--- a/docs/databases/db-connection-ui/index.html
+++ b/docs/databases/db-connection-ui/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Using Database Connection UI | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/db-connection-ui"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Using Database Connection UI | Superset"><meta data-rh="true" name="description" content="Here is the documentation on how to leverage the new DB Connection UI. This will provide admins the ability to enhance the UX for users who want to connect to new databases."><meta data-rh="true" property="og:description" content="Here is the documentation on how to leverage the new DB Connection UI. This will provide admins the ability to enhance the UX for users who want to connect to new databases."><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/db-connection-ui"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/db-connection-ui" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/db-connection-ui" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 b177c28..1ead756 100644
--- a/docs/databases/docker-add-drivers/index.html
+++ b/docs/databases/docker-add-drivers/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Adding New Drivers in Docker | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/docker-add-drivers"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Adding New Drivers in Docker | Superset"><meta data-rh="true" name="description" content="Adding New Database Drivers in Docker"><meta data-rh="true" property="og:description" content="Adding New Database Drivers in Docker"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/docker-add-drivers"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/docker-add-drivers" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/docker-add-drivers" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 f51274a..ff86024 100644
--- a/docs/databases/dremio/index.html
+++ b/docs/databases/dremio/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Dremio | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/dremio"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Dremio | Superset"><meta data-rh="true" name="description" content="Dremio"><meta data-rh="true" property="og:description" content="Dremio"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/dremio"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/dremio" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/dremio" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 bd0fa2d..b1a9791 100644
--- a/docs/databases/drill/index.html
+++ b/docs/databases/drill/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Drill | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/drill"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Drill | Superset"><meta data-rh="true" name="description" content="Apache Drill"><meta data-rh="true" property="og:description" content="Apache Drill"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/drill"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/drill" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/drill" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 9915dc3..26d3813 100644
--- a/docs/databases/druid/index.html
+++ b/docs/databases/druid/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Druid | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/druid"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Druid | Superset"><meta data-rh="true" name="description" content="Apache Druid"><meta data-rh="true" property="og:description" content="Apache Druid"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/druid"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/druid" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/druid" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 086e104..45224bd 100644
--- a/docs/databases/dynamodb/index.html
+++ b/docs/databases/dynamodb/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Amazon DynamoDB | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/dynamodb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Amazon DynamoDB | Superset"><meta data-rh="true" name="description" content="AWS DynamoDB"><meta data-rh="true" property="og:description" content="AWS DynamoDB"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/dynamodb"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/dynamodb" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/dynamodb" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 42b4724..fafa3bc 100644
--- a/docs/databases/elasticsearch/index.html
+++ b/docs/databases/elasticsearch/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Elasticsearch | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/elasticsearch"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Elasticsearch | Superset"><meta data-rh="true" name="description" content="Elasticsearch"><meta data-rh="true" property="og:description" content="Elasticsearch"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/elasticsearch"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/elasticsearch" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/elasticsearch" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 cf24476..b414e63 100644
--- a/docs/databases/exasol/index.html
+++ b/docs/databases/exasol/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Exasol | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/exasol"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Exasol | Superset"><meta data-rh="true" name="description" content="Exasol"><meta data-rh="true" property="og:description" content="Exasol"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/exasol"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/exasol" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/exasol" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 dbe6736..b505e2f 100644
--- a/docs/databases/extra-settings/index.html
+++ b/docs/databases/extra-settings/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Extra Database Settings | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/extra-settings"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Extra Database Settings | Superset"><meta data-rh="true" name="description" content="Extra Database Settings"><meta data-rh="true" property="og:description" content="Extra Database Settings"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/extra-settings"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/extra-settings" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/extra-settings" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 dfc5407..c7c08ce 100644
--- a/docs/databases/firebird/index.html
+++ b/docs/databases/firebird/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Firebird | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/firebird"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Firebird | Superset"><meta data-rh="true" name="description" content="Firebird"><meta data-rh="true" property="og:description" content="Firebird"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/firebird"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/firebird" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/firebird" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 287f53c..e98c1ce 100644
--- a/docs/databases/firebolt/index.html
+++ b/docs/databases/firebolt/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Firebolt | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/firebolt"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Firebolt | Superset"><meta data-rh="true" name="description" content="Firebolt"><meta data-rh="true" property="og:description" content="Firebolt"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/firebolt"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/firebolt" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/firebolt" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 e6b7b8d..cfb5c92 100644
--- a/docs/databases/google-sheets/index.html
+++ b/docs/databases/google-sheets/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Google Sheets | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/google-sheets"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Google Sheets | Superset"><meta data-rh="true" name="description" content="Google Sheets"><meta data-rh="true" property="og:description" content="Google Sheets"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/google-sheets"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/google-sheets" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/google-sheets" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -34,7 +34,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 b0b2048..d3c5d83 100644
--- a/docs/databases/hana/index.html
+++ b/docs/databases/hana/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Hana | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/hana"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Hana | Superset"><meta data-rh="true" name="description" content="Hana"><meta data-rh="true" property="og:description" content="Hana"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/hana"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/hana" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/hana" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 d8f2370..aa7a8a9 100644
--- a/docs/databases/hive/index.html
+++ b/docs/databases/hive/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Hive | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/hive"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Hive | Superset"><meta data-rh="true" name="description" content="Apache Hive"><meta data-rh="true" property="og:description" content="Apache Hive"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/hive"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/hive" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/hive" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 9c688c9..5fdf956 100644
--- a/docs/databases/hologres/index.html
+++ b/docs/databases/hologres/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Hologres | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/hologres"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Hologres | Superset"><meta data-rh="true" name="description" content="Hologres"><meta data-rh="true" property="og:description" content="Hologres"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/hologres"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/hologres" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/hologres" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 bf83e94..a2fa62c 100644
--- a/docs/databases/ibm-db2/index.html
+++ b/docs/databases/ibm-db2/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">IBM DB2 | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/ibm-db2"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="IBM DB2 | Superset"><meta data-rh="true" name="description" content="IBM DB2"><meta data-rh="true" property="og:description" content="IBM DB2"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/ibm-db2"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/ibm-db2" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/ibm-db2" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 7e9f397..9433855 100644
--- a/docs/databases/impala/index.html
+++ b/docs/databases/impala/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Impala | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/impala"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Impala | Superset"><meta data-rh="true" name="description" content="Apache Impala"><meta data-rh="true" property="og:description" content="Apache Impala"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/impala"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/impala" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/impala" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 9325524..d36a168 100644
--- a/docs/databases/installing-database-drivers/index.html
+++ b/docs/databases/installing-database-drivers/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Installing Database Drivers | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/installing-database-drivers"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Installing Database Drivers | Superset"><meta data-rh="true" name="description" content="Install Database Drivers"><meta data-rh="true" property="og:description" content="Install Database Drivers"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/installing-database-drivers"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/installing-database-drivers" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/installing-database-drivers" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 9ad5e74..37cbfb9 100644
--- a/docs/databases/kusto/index.html
+++ b/docs/databases/kusto/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">kusto | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/kusto"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="kusto | Superset"><meta data-rh="true" name="description" content="Kusto"><meta data-rh="true" property="og:description" content="Kusto"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/kusto"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/kusto" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/kusto" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 52348cc..d6a5ef5 100644
--- a/docs/databases/kylin/index.html
+++ b/docs/databases/kylin/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Kylin | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/kylin"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Kylin | Superset"><meta data-rh="true" name="description" content="Apache Kylin"><meta data-rh="true" property="og:description" content="Apache Kylin"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/kylin"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/kylin" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/kylin" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 59fb564..bf6dbc6 100644
--- a/docs/databases/mysql/index.html
+++ b/docs/databases/mysql/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">MySQL | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/mysql"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="MySQL | Superset"><meta data-rh="true" name="description" content="MySQL"><meta data-rh="true" property="og:description" content="MySQL"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/mysql"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/mysql" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/mysql" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 5e75fff..5fd04a7 100644
--- a/docs/databases/netezza/index.html
+++ b/docs/databases/netezza/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">IBM Netezza Performance Server | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/netezza"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="IBM Netezza Performance Server | Superset"><meta data-rh="true" name="description" content="IBM Netezza Performance Server"><meta data-rh="true" property="og:description" content="IBM Netezza Performance Server"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/netezza"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/netezza" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/netezza" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 9fe197f..50434fe 100644
--- a/docs/databases/oracle/index.html
+++ b/docs/databases/oracle/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Oracle | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/oracle"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Oracle | Superset"><meta data-rh="true" name="description" content="Oracle"><meta data-rh="true" property="og:description" content="Oracle"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/oracle"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/oracle" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/oracle" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 c3ce7d4..5b48c64 100644
--- a/docs/databases/pinot/index.html
+++ b/docs/databases/pinot/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Pinot | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/pinot"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Pinot | Superset"><meta data-rh="true" name="description" content="Apache Pinot"><meta data-rh="true" property="og:description" content="Apache Pinot"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/pinot"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/pinot" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/pinot" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 aa31456..ae9a6a1 100644
--- a/docs/databases/postgres/index.html
+++ b/docs/databases/postgres/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Postgres | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/postgres"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Postgres | Superset"><meta data-rh="true" name="description" content="Postgres"><meta data-rh="true" property="og:description" content="Postgres"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/postgres"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/postgres" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/postgres" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 316825f..6993479 100644
--- a/docs/databases/presto/index.html
+++ b/docs/databases/presto/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Presto | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/presto"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Presto | Superset"><meta data-rh="true" name="description" content="Presto"><meta data-rh="true" property="og:description" content="Presto"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/presto"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/presto" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/presto" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 a250ab2..451d384 100644
--- a/docs/databases/redshift/index.html
+++ b/docs/databases/redshift/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Amazon Redshift | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/redshift"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Amazon Redshift | Superset"><meta data-rh="true" name="description" content="AWS Redshift"><meta data-rh="true" property="og:description" content="AWS Redshift"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/redshift"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/redshift" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/redshift" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 2694d62..93c06b5 100644
--- a/docs/databases/risingwave/index.html
+++ b/docs/databases/risingwave/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">RisingWave | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/risingwave"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="RisingWave | Superset"><meta data-rh="true" name="description" content="RisingWave"><meta data-rh="true" property="og:description" content="RisingWave"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/risingwave"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/risingwave" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/risingwave" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 39aa2a5..4bf0ffe 100644
--- a/docs/databases/rockset/index.html
+++ b/docs/databases/rockset/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Rockset | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/rockset"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Rockset | Superset"><meta data-rh="true" name="description" content="Rockset"><meta data-rh="true" property="og:description" content="Rockset"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/rockset"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/rockset" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/rockset" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 ac5c413..0d271c6 100644
--- a/docs/databases/snowflake/index.html
+++ b/docs/databases/snowflake/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Snowflake | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/snowflake"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Snowflake | Superset"><meta data-rh="true" name="description" content="Snowflake"><meta data-rh="true" property="og:description" content="Snowflake"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/snowflake"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/snowflake" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/snowflake" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 7195ea0..1bab45a 100644
--- a/docs/databases/solr/index.html
+++ b/docs/databases/solr/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Solr | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/solr"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Solr | Superset"><meta data-rh="true" name="description" content="Apache Solr"><meta data-rh="true" property="og:description" content="Apache Solr"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/solr"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/solr" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/solr" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 eeb777f..c3b2c9d 100644
--- a/docs/databases/spark-sql/index.html
+++ b/docs/databases/spark-sql/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Apache Spark SQL | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/spark-sql"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Apache Spark SQL | Superset"><meta data-rh="true" name="description" content="Apache Spark SQL"><meta data-rh="true" property="og:description" content="Apache Spark SQL"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/spark-sql"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/spark-sql" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/spark-sql" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 4f0cb72..2ff84e1 100644
--- a/docs/databases/sql-server/index.html
+++ b/docs/databases/sql-server/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Microsoft SQL Server | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/sql-server"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Microsoft SQL Server | Superset"><meta data-rh="true" name="description" content="SQL Server"><meta data-rh="true" property="og:description" content="SQL Server"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/sql-server"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/sql-server" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/sql-server" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 6b1d366..4b888cc 100644
--- a/docs/databases/teradata/index.html
+++ b/docs/databases/teradata/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Teradata | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/teradata"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Teradata | Superset"><meta data-rh="true" name="description" content="Teradata"><meta data-rh="true" property="og:description" content="Teradata"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/teradata"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/teradata" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/teradata" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 e9b384e..b5649d9 100644
--- a/docs/databases/timescaledb/index.html
+++ b/docs/databases/timescaledb/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">TimescaleDB | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/timescaledb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="TimescaleDB | Superset"><meta data-rh="true" name="description" content="TimescaleDB"><meta data-rh="true" property="og:description" content="TimescaleDB"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/timescaledb"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/timescaledb" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/timescaledb" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -31,7 +31,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 0df9afd..291f1cd 100644
--- a/docs/databases/trino/index.html
+++ b/docs/databases/trino/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Trino | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/trino"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Trino | Superset"><meta data-rh="true" name="description" content="Trino"><meta data-rh="true" property="og:description" content="Trino"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/trino"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/trino" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/trino" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 e010eb8..a04454e 100644
--- a/docs/databases/vertica/index.html
+++ b/docs/databases/vertica/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Vertica | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/vertica"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Vertica | Superset"><meta data-rh="true" name="description" content="Vertica"><meta data-rh="true" property="og:description" content="Vertica"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/vertica"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/vertica" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/vertica" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 8776f55..56429ea 100644
--- a/docs/databases/yugabytedb/index.html
+++ b/docs/databases/yugabytedb/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">YugabyteDB | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/databases/yugabytedb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="YugabyteDB | Superset"><meta data-rh="true" name="description" content="YugabyteDB"><meta data-rh="true" property="og:description" content="YugabyteDB"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/databases/yugabytedb"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/yugabytedb" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/databases/yugabytedb" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 42440a1..8dd3b8b 100644
--- a/docs/frequently-asked-questions/index.html
+++ b/docs/frequently-asked-questions/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Frequently Asked Questions | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/frequently-asked-questions"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Frequently Asked Questions | Superset"><meta data-rh="true" name="description" content="Frequently Asked Questions"><meta data-rh="true" property="og:description" content="Frequently Asked Questions"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/frequently-asked-questions"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/frequently-asked-questions" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/frequently-asked-questions" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -113,7 +113,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 969124a..7280ba6 100644
--- a/docs/installation/alerts-reports/index.html
+++ b/docs/installation/alerts-reports/index.html
@@ -13,19 +13,15 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Alerts and Reports | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/alerts-reports"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Alerts and Reports | Superset"><meta data-rh="true" name="description" content="Alerts and Reports"><meta data-rh="true" property="og:description" content="Alerts and Reports"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/alerts-reports"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/alerts-reports" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/alerts-reports" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/superset-logo-horiz.svg" alt="Superset Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/superset-logo-horiz-dark.svg" alt="Superset Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" class="navbar__link">Documentation</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/intro">Getting Started</a></li><li><a class="dropdown__link" href="/docs/intro">Tutorial</a></li><li><a class="dropdown__link" href="/docs/frequently-asked-questions">FAQ</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/community">Resources</a></li><li><a href="https://github.com/apache/superset" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>GitHub<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="http://bit.ly/join-superset-slack" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Slack<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="https://lists.apache.org/list.html?dev@superset.apache.org" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Mailing List<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="https://stackoverflow.com/questions/tagged/superset+apache-superset" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Stack Overflow<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div></div><div class="navbar__items navbar__items--right"><a href="https://github.com/apache/superset" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link" class="github-logo-container"></a><div class="searchBox_qEbK"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docs-wrapper docs-doc-page"><div class="docPage_P2Lg"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><aside class="theme-doc-sidebar-container docSidebarContainer_rKC_"><div class="sidebar_CW9Y"><nav class="menu thin-scrollbar menu_SkdO"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/intro">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/docs/installation/installing-superset-using-docker-compose">Installation and Configuration</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/installing-superset-using-docker-compose">Installing Locally Using Docker Compose</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/installing-superset-from-scratch">Installing From Scratch</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/configuring-superset">Configuring Superset</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/networking-settings">Additional Networking Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/cache">Caching</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/event-logging">Event Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/upgrading-superset">Upgrading Superset</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/async-queries-celery">Async Queries via Celery</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/installation/alerts-reports">Alerts and Reports</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/sql-templating">SQL Templating</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/running-on-kubernetes">Running on Kubernetes</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/databases/installing-database-drivers">Connecting to Databases</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/creating-charts-dashboards/creating-your-first-dashboard">Creating Charts and Dashboards</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/miscellaneous/country-map-tools">Miscellaneous</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/contributing/contributing-page">Contributing</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/frequently-asked-questions">Frequently Asked Questions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/api">API</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/security">Security</a></li></ul></nav></div></aside><main class="docMainContainer_TCnq"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a class="breadcrumbs__link breadcrumbsItemLink_e5ie" href="/">🏠</a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link breadcrumbsItemLink_e5ie">Installation and Configuration</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><a class="breadcrumbs__link breadcrumbsItemLink_e5ie" href="/docs/installation/alerts-reports">Alerts and Reports</a></li></ul></nav><div class="tocCollapsible_jdIR theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_Fzxq">On this page</button></div><div class="theme-doc-markdown markdown"><h2 class="anchor anchorWithStickyNavbar_mojV" id="alerts-and-reports">Alerts and Reports<a class="hash-link" href="#alerts-and-reports" title="Direct link to heading">​</a></h2><p>(version 1.0.1 and above)</p><p>Users can configure automated alerts and reports to send dashboards or charts to an email recipient or Slack channel.</p><ul><li>Alerts are sent when a SQL condition is reached</li><li>Reports are sent on a schedule</li></ul><p>Alerts and reports are disabled by default. To turn them on, you need to do some setup, described here.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="requirements">Requirements<a class="hash-link" href="#requirements" title="Direct link to heading">​</a></h3><h4 class="anchor anchorWithStickyNavbar_mojV" id="commons">Commons<a class="hash-link" href="#commons" title="Direct link to heading">​</a></h4><h5 class="anchor anchorWithStickyNavbar_mojV" id="in-your-superset_configpy">In your <code>superset_config.py</code><a class="hash-link" href="#in-your-superset_configpy" title="Direct link to heading">​</a></h5><ul><li><code>&quot;ALERT_REPORTS&quot;</code> <a href="https://superset.apache.org/docs/installation/configuring-superset#feature-flags" target="_blank" rel="noopener noreferrer">feature flag</a> must be turned to True.</li><li><code>CELERYBEAT_SCHEDULE</code> in CeleryConfig must contain schedule for <code>reports.scheduler</code>.</li><li>At least one of those must be configured, depending on what you want to use:<ul><li>emails: <code>SMTP_*</code> settings</li><li>Slack messages: <code>SLACK_API_TOKEN</code></li></ul></li></ul><h5 class="anchor anchorWithStickyNavbar_mojV" id="in-your-dockerfile">In your <code>Dockerfile</code><a class="hash-link" href="#in-your-dockerfile" title="Direct link to heading">​</a></h5><ul><li>You must install a headless browser, for taking screenshots of the charts and dashboards. Only Firefox and Chrome are currently supported.<blockquote><p>If you choose Chrome, you must also change the value of <code>WEBDRIVER_TYPE</code> to <code>&quot;chrome&quot;</code> in your <code>superset_config.py</code>.</p></blockquote></li></ul><p>Note : All the components required (headless browser, redis, postgres db, celery worker and celery beat) are present in the docker image if you are following <a href="https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/" target="_blank" rel="noopener noreferrer">Installing Superset Locally</a>.
-All you need to do is add the required config (See <code>Detailed Config</code>). Set <code>ALERT_REPORTS_NOTIFICATION_DRY_RUN</code> to <code>False</code> in <a href="https://github.com/apache/superset/blob/master/docker/pythonpath_dev/superset_config.py" target="_blank" rel="noopener noreferrer">superset config</a> to disable dry-run mode and start receiving email/slack notifications.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="slack-integration">Slack integration<a class="hash-link" href="#slack-integration" title="Direct link to heading">​</a></h4><p>To send alerts and reports to Slack channels, you need to create a new Slack Application on your workspace.</p><ol><li>Connect to your Slack workspace, then head to <a href="https://api.slack.com/apps" target="_blank" rel="noopener noreferrer">https://api.slack.com/apps</a>.</li><li>Create a new app.</li><li>Go to &quot;OAuth &amp; Permissions&quot; section, and give the following scopes to your app:<ul><li><code>incoming-webhook</code></li><li><code>files:write</code></li><li><code>chat:write</code></li></ul></li><li>At the top of the &quot;OAuth and Permissions&quot; section, click &quot;install to workspace&quot;.</li><li>Select a default channel for your app and continue.
-(You can post to any channel by inviting your Superset app into that channel).</li><li>The app should now be installed in your workspace, and a &quot;Bot User OAuth Access Token&quot; should have been created. Copy that token in the <code>SLACK_API_TOKEN</code> variable of your <code>superset_config.py</code>.</li><li>Restart the service (or run <code>superset init</code>) to pull in the new configuration.</li></ol><p>Note: when you configure an alert or a report, the Slack channel list take channel names without the leading &#x27;#&#x27; e.g. use <code>alerts</code> instead of <code>#alerts</code>.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="kubernetes-specific">Kubernetes specific<a class="hash-link" href="#kubernetes-specific" title="Direct link to heading">​</a></h4><ul><li>You must have a <code>celery beat</code> pod running. If you&#x27;re using the chart included in the GitHub repository under <a href="https://github.com/apache/superset/tree/master/helm/superset" target="_blank" rel="noopener noreferrer">helm/superset</a>, you need to put <code>supersetCeleryBeat.enabled = true</code> in your values override.</li><li>You can see the dedicated docs about <a href="/docs/installation/running-on-kubernetes">Kubernetes installation</a> for more generic details.</li></ul><h4 class="anchor anchorWithStickyNavbar_mojV" id="docker-compose-specific">Docker-compose specific<a class="hash-link" href="#docker-compose-specific" title="Direct link to heading">​</a></h4><h5 class="anchor anchorWithStickyNavbar_mojV" id="you-must-have-in-yourdocker-composeyaml">You must have in your<code>docker-compose.yaml</code><a class="hash-link" href="#you-must-have-in-yourdocker-composeyaml" title="Direct link to heading">​</a></h5><ul><li>a redis message broker</li><li>PostgreSQL DB instead of SQLlite</li><li>one or more <code>celery worker</code></li><li>a single <code>celery beat</code></li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="detailed-config">Detailed config<a class="hash-link" href="#detailed-config" title="Direct link to heading">​</a></h3><p>The following configurations need to be added to the <code>superset_config.py</code> file. This file is loaded when the image runs, and any configurations in it will override the default configurations found in the <code>config.py</code>.</p><p>You can find documentation about each field in the default <code>config.py</code> in the GitHub repository under <a href="https://github.com/apache/superset/blob/master/superset/config.py" target="_blank" rel="noopener noreferrer">superset/config.py</a>.</p><p>You need to replace default values with your custom Redis, Slack and/or SMTP config.</p><p>In the <code>CeleryConfig</code>, only the <code>CELERYBEAT_SCHEDULE</code> is relative to this feature, the rest of the <code>CeleryConfig</code> can be changed for your needs.</p><div class="codeBlockContainer_I0IT language-python theme-code-block"><div class="codeBlockContent_wNvx python"><pre tabindex="0" class="prism-code language-python codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> celery</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">schedules </span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> crontab</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 operator" 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 string" style="color:#e3116c">&quot;ALERT_REPORTS&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" 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">REDIS_HOST </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;redis-superset&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">REDIS_PORT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;6379&quot;</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 keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">CeleryConfig</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 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;redis://%s:%s/0&#x27;</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">%</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">REDIS_HOST</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> REDIS_PORT</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">    imports </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#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><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 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;redis://%s:%s/0&#x27;</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">%</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">REDIS_HOST</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> REDIS_PORT</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">    worker_prefetch_multiplier </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    task_acks_late </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    task_annotations </span><span class="token operator" 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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#x27;ignore_result&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" 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 operator" 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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#x27;schedule&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> crontab</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">minute</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&#x27;*&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> hour</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&#x27;*&#x27;</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 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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#x27;schedule&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> crontab</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">minute</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> hour</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">0</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 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">CELERY_CONFIG </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> CeleryConfig</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">SCREENSHOT_LOCATE_WAIT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">100</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SCREENSHOT_LOAD_WAIT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">600</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"># Slack configuration</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SLACK_API_TOKEN </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;xoxb-&quot;</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"># Email configuration</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_HOST </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;smtp.sendgrid.net&quot;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic">#change to your host</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_STARTTLS </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_SSL_SERVER_AUTH </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># If your using an SMTP server with a valid certificate</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_SSL </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">False</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_USER </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;your_user&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_PORT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2525</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># your port eg. 587</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_PASSWORD </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;your_password&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_MAIL_FROM </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;noreply@youremail.com&quot;</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"># WebDriver configuration</span><span class="token plain"></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"># If you use Firefox, you can stick with default values</span><span class="token plain"></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"># If you use Chrome, then add the following WEBDRIVER_TYPE and WEBDRIVER_OPTION_ARGS</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_TYPE </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;chrome&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_OPTION_ARGS </span><span class="token operator" 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 string" style="color:#e3116c">&quot;--force-device-scale-factor=2.0&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 string" style="color:#e3116c">&quot;--high-dpi-support=2.0&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 string" style="color:#e3116c">&quot;--headless&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 string" style="color:#e3116c">&quot;--disable-gpu&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 string" style="color:#e3116c">&quot;--disable-dev-shm-usage&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 string" style="color:#e3116c">&quot;--no-sandbox&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 string" style="color:#e3116c">&quot;--disable-setuid-sandbox&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 string" style="color:#e3116c">&quot;--disable-extensions&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 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"># This is for internal use, you can keep http</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_BASEURL</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&quot;http://superset:8088&quot;</span><span class="token plain"></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"># This is the link sent to the recipient, change to your domain eg. https://superset.mydomain.com</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_BASEURL_USER_FRIENDLY</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&quot;http://localhost:8088&quot;</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="custom-dockerfile">Custom Dockerfile<a class="hash-link" href="#custom-dockerfile" title="Direct link to heading">​</a></h3><p>A webdriver (and headless browser) is needed to capture screenshots of the charts and dashboards which are then sent to the recipient. As the base superset image does not have a webdriver installed, we need to extend it and install the webdriver.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="using-firefox">Using Firefox<a class="hash-link" href="#using-firefox" title="Direct link to heading">​</a></h4><div class="codeBlockContainer_I0IT language-docker theme-code-block"><div class="codeBlockContent_wNvx docker"><pre tabindex="0" class="prism-code language-docker codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">FROM apache/superset:1.0.1</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">USER root</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">RUN apt-get update &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    apt-get install --no-install-recommends -y firefox-esr</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">ENV GECKODRIVER_VERSION=0.29.0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN wget -q https://github.com/mozilla/geckodriver/releases/download/v${GECKODRIVER_VERSION}/geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    tar -x geckodriver -zf geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz -O &gt; /usr/bin/geckodriver &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    chmod 755 /usr/bin/geckodriver &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    rm geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz</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">RUN pip install --no-cache gevent psycopg2 redis</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">USER superset</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><h4 class="anchor anchorWithStickyNavbar_mojV" id="using-chrome">Using Chrome<a class="hash-link" href="#using-chrome" title="Direct link to heading">​</a></h4><div class="codeBlockContainer_I0IT language-docker theme-code-block"><div class="codeBlockContent_wNvx docker"><pre tabindex="0" class="prism-code language-docker codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">FROM apache/superset:1.0.1</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">USER root</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">RUN apt-get update &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    apt-get install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    rm -f google-chrome-stable_current_amd64.deb</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">RUN export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE_102) &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    unzip chromedriver_linux64.zip -d /usr/bin &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    chmod 755 /usr/bin/chromedriver &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    rm -f chromedriver_linux64.zip</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">RUN pip install --no-cache gevent psycopg2 redis</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">USER superset</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><blockquote><p>Don&#x27;t forget to set <code>WEBDRIVER_TYPE</code> and <code>WEBDRIVER_OPTION_ARGS</code> in your config if you use Chrome.</p></blockquote><h3 class="anchor anchorWithStickyNavbar_mojV" id="summary-of-steps-to-turn-on-alerts-and-reporting">Summary of steps to turn on alerts and reporting:<a class="hash-link" href="#summary-of-steps-to-turn-on-alerts-and-reporting" title="Direct link to heading">​</a></h3><p>Using the templates below,</p><ol><li>Create a new directory and create the Dockerfile</li><li>Build the extended image using the Dockerfile</li><li>Create the <code>docker-compose.yaml</code> file in the same directory</li><li>Create a new subdirectory called <code>config</code></li><li>Create the <code>superset_config.py</code> file in the <code>config</code> subdirectory</li><li>Run the image using <code>docker-compose up</code> in the same directory as the <code>docker-compose.py</code> file</li><li>In a new terminal window, upgrade the DB by running <code>docker exec -it superset-1.0.1-extended superset db upgrade</code></li><li>Then run <code>docker exec -it superset-1.0.1-extended superset init</code></li><li>Then setup your admin user if need be, <code>docker exec -it superset-1.0.1-extended superset fab create-admin</code></li><li>Finally, restart the running instance - <code>CTRL-C</code>, then <code>docker-compose up</code></li></ol><p>(note: v 1.0.1 is current at time of writing, you can change the version number to the latest version if a newer version is available)</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="docker-compose">Docker compose<a class="hash-link" href="#docker-compose" title="Direct link to heading">​</a></h3><p>The docker compose file lists the services that will be used when running the image. The specific services needed for alerts and reporting are outlined below.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="redis-message-broker">Redis message broker<a class="hash-link" href="#redis-message-broker" title="Direct link to heading">​</a></h4><p>To ferry requests between the celery worker and the Superset instance, we use a message broker. This template uses Redis.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="replacing-sqlite-with-postgres">Replacing SQLite with Postgres<a class="hash-link" href="#replacing-sqlite-with-postgres" title="Direct link to heading">​</a></h4><p>While it might be possible to use SQLite for alerts and reporting, it is highly recommended using a more production ready DB for Superset in general. Our template uses Postgres.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="celery-worker">Celery worker<a class="hash-link" href="#celery-worker" title="Direct link to heading">​</a></h4><p>The worker will process the tasks that need to be performed when an alert or report is fired.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="celery-beat">Celery beat<a class="hash-link" href="#celery-beat" title="Direct link to heading">​</a></h4><p>The beat is the scheduler that tells the worker when to perform its tasks. This schedule is defined when you create the alert or report.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="full-docker-composeyaml-configuration">Full <code>docker-compose.yaml</code> configuration<a class="hash-link" href="#full-docker-composeyaml-configuration" title="Direct link to heading">​</a></h4><p>The Redis, Postgres, Celery worker and Celery beat services are defined in the template:</p><p>Config for <code>docker-compose.yaml</code>:</p><div class="codeBlockContainer_I0IT language-docker theme-code-block"><div class="codeBlockContent_wNvx docker"><pre tabindex="0" class="prism-code language-docker codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">version: &#x27;3.6&#x27;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">services:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  redis:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    image: redis:6.0.9-buster</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    restart: on-failure</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    volumes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - redis:/data</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  postgres:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    image: postgres</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    restart: on-failure</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    environment:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      POSTGRES_DB: superset</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      POSTGRES_PASSWORD: superset</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      POSTGRES_USER: superset</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    volumes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - db:/var/lib/postgresql/data</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  worker:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    image: superset-1.0.1-extended</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    restart: on-failure</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    healthcheck:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      disable: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    depends_on:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - superset</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - postgres</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - redis</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    command: &quot;celery --app=superset.tasks.celery_app:app worker --pool=gevent --concurrency=500&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    volumes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - ./config/:/app/pythonpath/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  beat:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    image: superset-1.0.1-extended</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    restart: on-failure</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    healthcheck:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      disable: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    depends_on:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - superset</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - postgres</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - redis</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    command: &quot;celery --app=superset.tasks.celery_app:app beat --pidfile /tmp/celerybeat.pid --schedule /tmp/celerybeat-schedule&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    volumes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - ./config/:/app/pythonpath/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  superset:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    image: superset-1.0.1-extended</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    restart: on-failure</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    environment:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - SUPERSET_PORT=8088</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    ports:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - &quot;8088:8088&quot;</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    depends_on:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - postgres</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - redis</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    command: gunicorn --bind  0.0.0.0:8088 --access-logfile - --error-logfile - --workers 5 --worker-class gthread --threads 4 --timeout 200 --limit-request-line 4094 --limit-request-field_size 8190 superset.app:create_app()</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    volumes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">      - ./config/:/app/pythonpath/</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">volumes:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  db:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    external: true</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">  redis:</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    external: false</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><h3 class="anchor anchorWithStickyNavbar_mojV" id="summary">Summary<a class="hash-link" href="#summary" title="Direct link to heading">​</a></h3><p>With the extended image created by using the <code>Dockerfile</code>, and then running that image using <code>docker-compose.yaml</code>, plus the required configurations in the <code>superset_config.py</code> you should now have alerts and reporting working correctly.</p><ul><li>The above templates also work in a Docker swarm environment, you would just need to add <code>Deploy:</code> to the Superset, Redis and Postgres services along with your specific configs for your swarm</li></ul><h1>Old Reports feature</h1><h2 class="anchor anchorWithStickyNavbar_mojV" id="scheduling-and-emailing-reports">Scheduling and Emailing Reports<a class="hash-link" href="#scheduling-and-emailing-reports" title="Direct link to heading">​</a></h2><p>(version 0.38 and below)</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="email-reports">Email Reports<a class="hash-link" href="#email-reports" title="Direct link to heading">​</a></h3><p>Email reports allow users to schedule email reports for:</p><ul><li>chart and dashboard visualization (attachment or inline)</li><li>chart data (CSV attachment on inline table)</li></ul><p>Enable email reports in your <code>superset_config.py</code> file:</p><div class="codeBlockContainer_I0IT language-python theme-code-block"><div class="codeBlockContent_wNvx python"><pre tabindex="0" class="prism-code language-python codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">ENABLE_SCHEDULED_EMAIL_REPORTS </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><p>This flag enables some permissions that are stored in your database, so you&#x27;ll want to run <code>superset init</code> again if you are running this in a dev environment.
-Now you will find two new items in the navigation bar that allow you to schedule email reports:</p><ul><li><strong>Manage &gt; Dashboard Emails</strong></li><li><strong>Manage &gt; Chart Email Schedules</strong></li></ul><p>Schedules are defined in <a href="https://crontab.guru/" target="_blank" rel="noopener noreferrer">crontab format</a> and each schedule can have a list
-of recipients (all of them can receive a single mail, or separate mails). For audit purposes, all
-outgoing mails can have a mandatory BCC.</p><p>In order get picked up you need to configure a celery worker and a celery beat (see section above
-“Celery Tasks”). Your celery configuration also needs an entry <code>email_reports.schedule_hourly</code> for
-<code>CELERYBEAT_SCHEDULE</code>.</p><p>To send emails you need to configure SMTP settings in your <code>superset_config.py</code> configuration file.</p><div class="codeBlockContainer_I0IT language-python theme-code-block"><div class="codeBlockContent_wNvx python"><pre tabindex="0" class="prism-code language-python codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">EMAIL_NOTIFICATIONS </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">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">SMTP_HOST </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;email-smtp.eu-west-1.amazonaws.com&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_STARTTLS </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_SSL </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">False</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_USER </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;smtp_username&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_PORT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">25</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_PASSWORD </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> os</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">environ</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">get</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&quot;SMTP_PASSWORD&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">SMTP_MAIL_FROM </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;insights@komoot.com&quot;</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><p>To render dashboards you need to install a local browser on your Superset instance:</p><ul><li><a href="https://github.com/mozilla/geckodriver" target="_blank" rel="noopener noreferrer">geckodriver</a> for Firefox</li><li><a href="http://chromedriver.chromium.org/" target="_blank" rel="noopener noreferrer">chromedriver</a> for Chrome</li></ul><p>You&#x27;ll need to adjust the <code>WEBDRIVER_TYPE</code> accordingly in your configuration. You also need
+<div role="region"><a href="#" class="skipToContent_ZgBM">Skip to main content</a></div><nav class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Navigation bar toggle" class="navbar__toggle clean-btn" type="button" tabindex="0"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/superset-logo-horiz.svg" alt="Superset Logo" class="themedImage_W2Cr themedImage--light_TfLj"><img src="/img/superset-logo-horiz-dark.svg" alt="Superset Logo" class="themedImage_W2Cr themedImage--dark_oUvU"></div></a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" class="navbar__link">Documentation</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/docs/intro">Getting Started</a></li><li><a class="dropdown__link" href="/docs/intro">Tutorial</a></li><li><a class="dropdown__link" href="/docs/frequently-asked-questions">FAQ</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" class="navbar__link">Community</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/community">Resources</a></li><li><a href="https://github.com/apache/superset" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>GitHub<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="http://bit.ly/join-superset-slack" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Slack<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="https://lists.apache.org/list.html?dev@superset.apache.org" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Mailing List<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li><li><a href="https://stackoverflow.com/questions/tagged/superset+apache-superset" target="_blank" rel="noopener noreferrer" class="dropdown__link"><span>Stack Overflow<svg width="12" height="12" aria-hidden="true" viewBox="0 0 24 24" class="iconExternalLink_I5OW"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"></path></svg></span></a></li></ul></div></div><div class="navbar__items navbar__items--right"><a href="https://github.com/apache/superset" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link" class="github-logo-container"></a><div class="searchBox_qEbK"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><svg width="20" height="20" class="DocSearch-Search-Icon" viewBox="0 0 20 20"><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"></span></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div class="main-wrapper docs-wrapper docs-doc-page"><div class="docPage_P2Lg"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_RiI4" type="button"></button><aside class="theme-doc-sidebar-container docSidebarContainer_rKC_"><div class="sidebar_CW9Y"><nav class="menu thin-scrollbar menu_SkdO"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/intro">Introduction</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--active" href="/docs/installation/installing-superset-using-docker-compose">Installation and Configuration</a></div><ul style="display:block;overflow:visible;height:auto" class="menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/installing-superset-using-docker-compose">Installing Locally Using Docker Compose</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/installing-superset-from-scratch">Installing From Scratch</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/configuring-superset">Configuring Superset</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/networking-settings">Additional Networking Settings</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/cache">Caching</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/event-logging">Event Logging</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/upgrading-superset">Upgrading Superset</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/async-queries-celery">Async Queries via Celery</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" tabindex="0" href="/docs/installation/alerts-reports">Alerts and Reports</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/sql-templating">SQL Templating</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link" tabindex="0" href="/docs/installation/running-on-kubernetes">Running on Kubernetes</a></li></ul></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/databases/installing-database-drivers">Connecting to Databases</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/creating-charts-dashboards/creating-your-first-dashboard">Creating Charts and Dashboards</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/miscellaneous/country-map-tools">Miscellaneous</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/docs/contributing/contributing-page">Contributing</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/frequently-asked-questions">Frequently Asked Questions</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/api">API</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docs/security">Security</a></li></ul></nav></div></aside><main class="docMainContainer_TCnq"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_DM6M"><div class="docItemContainer_vinB"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Xlws" aria-label="breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a class="breadcrumbs__link breadcrumbsItemLink_e5ie" href="/">🏠</a></li><li class="breadcrumbs__item"><span class="breadcrumbs__link breadcrumbsItemLink_e5ie">Installation and Configuration</span></li><li class="breadcrumbs__item breadcrumbs__item--active"><a class="breadcrumbs__link breadcrumbsItemLink_e5ie" href="/docs/installation/alerts-reports">Alerts and Reports</a></li></ul></nav><div class="tocCollapsible_jdIR theme-doc-toc-mobile tocMobile_TmEX"><button type="button" class="clean-btn tocCollapsibleButton_Fzxq">On this page</button></div><div class="theme-doc-markdown markdown"><h2 class="anchor anchorWithStickyNavbar_mojV" id="alerts-and-reports">Alerts and Reports<a class="hash-link" href="#alerts-and-reports" title="Direct link to heading">​</a></h2><p><em>This covers versions 1.0.1 to current.</em></p><p>Users can configure automated alerts and reports to send dashboards or charts to an email recipient or Slack channel.</p><ul><li>Alerts are sent when a SQL condition is reached</li><li>Reports are sent on a schedule</li></ul><p>Alerts and reports are disabled by default. To turn them on, you need to do some setup, described here.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="requirements">Requirements<a class="hash-link" href="#requirements" title="Direct link to heading">​</a></h3><h4 class="anchor anchorWithStickyNavbar_mojV" id="commons">Commons<a class="hash-link" href="#commons" title="Direct link to heading">​</a></h4><h5 class="anchor anchorWithStickyNavbar_mojV" id="in-your-superset_configpy-or-superset_config_dockerpy">In your <code>superset_config.py</code> or <code>superset_config_docker.py</code><a class="hash-link" href="#in-your-superset_configpy-or-superset_config_dockerpy" title="Direct link to heading">​</a></h5><ul><li><code>&quot;ALERT_REPORTS&quot;</code> <a href="https://superset.apache.org/docs/installation/configuring-superset#feature-flags" target="_blank" rel="noopener noreferrer">feature flag</a> must be turned to True.</li><li><code>beat_schedule</code> in CeleryConfig must contain schedule for <code>reports.scheduler</code>.</li><li>At least one of those must be configured, depending on what you want to use:<ul><li>emails: <code>SMTP_*</code> settings</li><li>Slack messages: <code>SLACK_API_TOKEN</code></li></ul></li></ul><h6 class="anchor anchorWithStickyNavbar_mojV" id="disable-dry-run-mode">Disable dry-run mode<a class="hash-link" href="#disable-dry-run-mode" title="Direct link to heading">​</a></h6><p>Screenshots will be taken but no messages actually sent as long as <code>ALERT_REPORTS_NOTIFICATION_DRY_RUN = True</code>, its default value in <code>config.py</code>.  To disable dry-run mode and start receiving email/Slack notifications, set <code>ALERT_REPORTS_NOTIFICATION_DRY_RUN</code> to <code>False</code> in <a href="https://github.com/apache/superset/blob/master/docker/pythonpath_dev/superset_config.py" target="_blank" rel="noopener noreferrer">superset config</a>.</p><h5 class="anchor anchorWithStickyNavbar_mojV" id="in-your-dockerfile">In your <code>Dockerfile</code><a class="hash-link" href="#in-your-dockerfile" title="Direct link to heading">​</a></h5><ul><li>You must install a headless browser, for taking screenshots of the charts and dashboards. Only Firefox and Chrome are currently supported.<blockquote><p>If you choose Chrome, you must also change the value of <code>WEBDRIVER_TYPE</code> to <code>&quot;chrome&quot;</code> in your <code>superset_config.py</code>.</p></blockquote></li></ul><p>Note: All the components required (Firefox headless browser, Redis, Postgres db, celery worker and celery beat) are present in the <em>dev</em> docker image if you are following <a href="https://superset.apache.org/docs/installation/installing-superset-using-docker-compose/" target="_blank" rel="noopener noreferrer">Installing Superset Locally</a>.
+All you need to do is add the required config variables described in this guide (See <code>Detailed Config</code>).</p><p>If you are running a non-dev docker image, e.g., a stable release like <code>apache/superset:2.0.1</code>, that image does not include a headless browser.  Only the <code>superset_worker</code> container needs this headless browser to browse to the target chart or dashboard.
+You can either install and configure the headless browser - see &quot;Custom Dockerfile&quot; section below - or when deploying via <code>docker-compose</code>, modify your <code>docker-compose.yml</code> file to use a dev image for the worker container and a stable release image for the <code>superset_app</code> container.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="slack-integration">Slack integration<a class="hash-link" href="#slack-integration" title="Direct link to heading">​</a></h4><p>To send alerts and reports to Slack channels, you need to create a new Slack Application on your workspace.</p><ol><li>Connect to your Slack workspace, then head to <a href="https://api.slack.com/apps" target="_blank" rel="noopener noreferrer">https://api.slack.com/apps</a>.</li><li>Create a new app.</li><li>Go to &quot;OAuth &amp; Permissions&quot; section, and give the following scopes to your app:<ul><li><code>incoming-webhook</code></li><li><code>files:write</code></li><li><code>chat:write</code></li></ul></li><li>At the top of the &quot;OAuth and Permissions&quot; section, click &quot;install to workspace&quot;.</li><li>Select a default channel for your app and continue.
+(You can post to any channel by inviting your Superset app into that channel).</li><li>The app should now be installed in your workspace, and a &quot;Bot User OAuth Access Token&quot; should have been created. Copy that token in the <code>SLACK_API_TOKEN</code> variable of your <code>superset_config.py</code>.</li><li>Restart the service (or run <code>superset init</code>) to pull in the new configuration.</li></ol><p>Note: when you configure an alert or a report, the Slack channel list takes channel names without the leading &#x27;#&#x27; e.g. use <code>alerts</code> instead of <code>#alerts</code>.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="kubernetes-specific">Kubernetes-specific<a class="hash-link" href="#kubernetes-specific" title="Direct link to heading">​</a></h4><ul><li>You must have a <code>celery beat</code> pod running. If you&#x27;re using the chart included in the GitHub repository under <a href="https://github.com/apache/superset/tree/master/helm/superset" target="_blank" rel="noopener noreferrer">helm/superset</a>, you need to put <code>supersetCeleryBeat.enabled = true</code> in your values override.</li><li>You can see the dedicated docs about <a href="/docs/installation/running-on-kubernetes">Kubernetes installation</a> for more generic details.</li></ul><h4 class="anchor anchorWithStickyNavbar_mojV" id="docker-compose-specific">Docker-compose specific<a class="hash-link" href="#docker-compose-specific" title="Direct link to heading">​</a></h4><h5 class="anchor anchorWithStickyNavbar_mojV" id="you-must-have-in-your-docker-composeyml">You must have in your <code>docker-compose.yml</code><a class="hash-link" href="#you-must-have-in-your-docker-composeyml" title="Direct link to heading">​</a></h5><ul><li>A Redis message broker</li><li>PostgreSQL DB instead of SQLlite</li><li>One or more <code>celery worker</code></li><li>A single <code>celery beat</code></li></ul><p>This process also works in a Docker swarm environment, you would just need to add <code>Deploy:</code> to the Superset, Redis and Postgres services along with your specific configs for your swarm.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="detailed-config">Detailed config<a class="hash-link" href="#detailed-config" title="Direct link to heading">​</a></h3><p>The following configurations need to be added to the <code>superset_config.py</code> file. This file is loaded when the image runs, and any configurations in it will override the default configurations found in the <code>config.py</code>.</p><p>You can find documentation about each field in the default <code>config.py</code> in the GitHub repository under <a href="https://github.com/apache/superset/blob/master/superset/config.py" target="_blank" rel="noopener noreferrer">superset/config.py</a>.</p><p>You need to replace default values with your custom Redis, Slack and/or SMTP config.</p><p>Superset uses Celery beat and Celery worker(s) to send alerts and reports.</p><ul><li>The beat is the scheduler that tells the worker when to perform its tasks. This schedule is defined when you create the alert or report.</li><li>The worker will process the  tasks that need to be performed when an alert or report is fired.</li></ul><p>In the <code>CeleryConfig</code>, only the <code>beat_schedule</code> is relevant to this feature, the rest of the <code>CeleryConfig</code> can be changed for your needs.</p><div class="codeBlockContainer_I0IT language-python theme-code-block"><div class="codeBlockContent_wNvx python"><pre tabindex="0" class="prism-code language-python codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token keyword" style="color:#00009f">from</span><span class="token plain"> celery</span><span class="token punctuation" style="color:#393A34">.</span><span class="token plain">schedules </span><span class="token keyword" style="color:#00009f">import</span><span class="token plain"> crontab</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 operator" 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 string" style="color:#e3116c">&quot;ALERT_REPORTS&quot;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" 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">REDIS_HOST </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;redis-superset&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">REDIS_PORT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;6379&quot;</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 keyword" style="color:#00009f">class</span><span class="token plain"> </span><span class="token class-name">CeleryConfig</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 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;redis://%s:%s/0&#x27;</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">%</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">REDIS_HOST</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> REDIS_PORT</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">    imports </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#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><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 </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;redis://%s:%s/0&#x27;</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">%</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">REDIS_HOST</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> REDIS_PORT</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">    worker_prefetch_multiplier </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">10</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    task_acks_late </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    task_annotations </span><span class="token operator" 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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#x27;ignore_result&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token boolean" 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 operator" 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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#x27;schedule&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> crontab</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">minute</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&#x27;*&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> hour</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">&#x27;*&#x27;</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 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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#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 string" style="color:#e3116c">&#x27;schedule&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> crontab</span><span class="token punctuation" style="color:#393A34">(</span><span class="token plain">minute</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">0</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> hour</span><span class="token operator" style="color:#393A34">=</span><span class="token number" style="color:#36acaa">0</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 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">CELERY_CONFIG </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> CeleryConfig</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">SCREENSHOT_LOCATE_WAIT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">100</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SCREENSHOT_LOAD_WAIT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">600</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"># Slack configuration</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SLACK_API_TOKEN </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;xoxb-&quot;</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"># Email configuration</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_HOST </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;smtp.sendgrid.net&quot;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># change to your host</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_PORT </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token number" style="color:#36acaa">2525</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># your port, e.g. 587</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_STARTTLS </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_SSL_SERVER_AUTH </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">True</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># If your using an SMTP server with a valid certificate</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_SSL </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token boolean" style="color:#36acaa">False</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_USER </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;your_user&quot;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># use the empty string &quot;&quot; if using an unauthenticated SMTP server</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_PASSWORD </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;your_password&quot;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># use the empty string &quot;&quot; if using an unauthenticated SMTP server</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">SMTP_MAIL_FROM </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;noreply@youremail.com&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">EMAIL_REPORTS_SUBJECT_PREFIX </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;[Superset] &quot;</span><span class="token plain"> </span><span class="token comment" style="color:#999988;font-style:italic"># optional - overwrites default value in config.py of &quot;[Report] &quot;</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"># WebDriver configuration</span><span class="token plain"></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"># If you use Firefox, you can stick with default values</span><span class="token plain"></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"># If you use Chrome, then add the following WEBDRIVER_TYPE and WEBDRIVER_OPTION_ARGS</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_TYPE </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;chrome&quot;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_OPTION_ARGS </span><span class="token operator" 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 string" style="color:#e3116c">&quot;--force-device-scale-factor=2.0&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 string" style="color:#e3116c">&quot;--high-dpi-support=2.0&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 string" style="color:#e3116c">&quot;--headless&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 string" style="color:#e3116c">&quot;--disable-gpu&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 string" style="color:#e3116c">&quot;--disable-dev-shm-usage&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 string" style="color:#e3116c">&quot;--no-sandbox&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 string" style="color:#e3116c">&quot;--disable-setuid-sandbox&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 string" style="color:#e3116c">&quot;--disable-extensions&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 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"># This is for internal use, you can keep http</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_BASEURL </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;http://superset:8088&quot;</span><span class="token plain"></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"># This is the link sent to the recipient. Change to your domain, e.g. https://superset.mydomain.com</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">WEBDRIVER_BASEURL_USER_FRIENDLY </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&quot;http://localhost:8088&quot;</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><p>You also need
 to specify on behalf of which username to render the dashboards. In general dashboards and charts
 are not accessible to unauthorized requests, that is why the worker needs to take over credentials
 of an existing user to take a snapshot.</p><p>By default, Alerts and Reports are executed as the user that the <code>THUMBNAIL_SELENIUM_USER</code> config
@@ -41,14 +37,15 @@
 consume a lot of CPU / memory on your servers.</li><li>In some cases, if you notice a lot of leaked geckodriver processes, try running your celery
 processes with <code>celery worker --pool=prefork --max-tasks-per-child=128 ...</code></li><li>It is recommended to run separate workers for the <code>sql_lab</code> and <code>email_reports</code> tasks. This can be
 done using the <code>queue</code> field in <code>task_annotations</code>.</li><li>Adjust <code>WEBDRIVER_BASEURL</code> in your configuration file if celery workers can’t access Superset via
-its default value of <code>http://0.0.0.0:8080/</code>.</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="schedule-reports">Schedule Reports<a class="hash-link" href="#schedule-reports" title="Direct link to heading">​</a></h3><p>You can optionally allow your users to schedule queries directly in SQL Lab. This is done by adding
+its default value of <code>http://0.0.0.0:8080/</code>.</li></ul><h3 class="anchor anchorWithStickyNavbar_mojV" id="custom-dockerfile">Custom Dockerfile<a class="hash-link" href="#custom-dockerfile" title="Direct link to heading">​</a></h3><p>If you&#x27;re running the dev version of a released Superset image, like <code>apache/superset:2.0.1-dev</code>, you should be set with the above.</p><p>But if you&#x27;re building your own image, or starting with a non-dev version, a webdriver (and headless browser) is needed to capture screenshots of the charts and dashboards which are then sent to the recipient.
+Here&#x27;s how you can modify your Dockerfile to take the screenshots either with Firefox or Chrome.</p><h4 class="anchor anchorWithStickyNavbar_mojV" id="using-firefox">Using Firefox<a class="hash-link" href="#using-firefox" title="Direct link to heading">​</a></h4><div class="codeBlockContainer_I0IT language-docker theme-code-block"><div class="codeBlockContent_wNvx docker"><pre tabindex="0" class="prism-code language-docker codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">FROM apache/superset:2.0.1</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">USER root</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">RUN apt-get update &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    apt-get install --no-install-recommends -y firefox-esr</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">ENV GECKODRIVER_VERSION=0.29.0</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">RUN wget -q https://github.com/mozilla/geckodriver/releases/download/v${GECKODRIVER_VERSION}/geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    tar -x geckodriver -zf geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz -O &gt; /usr/bin/geckodriver &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    chmod 755 /usr/bin/geckodriver &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    rm geckodriver-v${GECKODRIVER_VERSION}-linux64.tar.gz</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">RUN pip install --no-cache gevent psycopg2 redis</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">USER superset</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><h4 class="anchor anchorWithStickyNavbar_mojV" id="using-chrome">Using Chrome<a class="hash-link" href="#using-chrome" title="Direct link to heading">​</a></h4><div class="codeBlockContainer_I0IT language-docker theme-code-block"><div class="codeBlockContent_wNvx docker"><pre tabindex="0" class="prism-code language-docker codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">FROM apache/superset:2.0.1</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">USER root</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">RUN apt-get update &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    wget -q https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    apt-get install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    rm -f google-chrome-stable_current_amd64.deb</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">RUN export CHROMEDRIVER_VERSION=$(curl --silent https://chromedriver.storage.googleapis.com/LATEST_RELEASE_102) &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    wget -q https://chromedriver.storage.googleapis.com/${CHROMEDRIVER_VERSION}/chromedriver_linux64.zip &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    unzip chromedriver_linux64.zip -d /usr/bin &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    chmod 755 /usr/bin/chromedriver &amp;&amp; \</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    rm -f chromedriver_linux64.zip</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">RUN pip install --no-cache gevent psycopg2 redis</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">USER superset</span><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><p>Don&#x27;t forget to set <code>WEBDRIVER_TYPE</code> and <code>WEBDRIVER_OPTION_ARGS</code> in your config if you use Chrome.</p><h3 class="anchor anchorWithStickyNavbar_mojV" id="schedule-reports">Schedule Reports<a class="hash-link" href="#schedule-reports" title="Direct link to heading">​</a></h3><p>You can optionally allow your users to schedule queries directly in SQL Lab. This is done by adding
 extra metadata to saved queries, which are then picked up by an external scheduled (like
 <a href="https://airflow.apache.org/" target="_blank" rel="noopener noreferrer">Apache Airflow</a>).</p><p>To allow scheduled queries, add the following to <code>SCHEDULED_QUERIES</code> in your configuration file:</p><div class="codeBlockContainer_I0IT language-python theme-code-block"><div class="codeBlockContent_wNvx python"><pre tabindex="0" class="prism-code language-python codeBlock_jd64 thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_mRuA"><span class="token-line" style="color:#393A34"><span class="token plain">SCHEDULED_QUERIES </span><span class="token operator" 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 comment" style="color:#999988;font-style:italic"># This information is collected when the user clicks &quot;Schedule query&quot;,</span><span class="token plain"></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"># and saved into the `extra` field of saved queries.</span><span class="token plain"></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"># See: https://github.com/mozilla-services/react-jsonschema-form</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" style="color:#e3116c">&#x27;JSONSCHEMA&#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 string" style="color:#e3116c">&#x27;title&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;Schedule&#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 string" style="color:#e3116c">&#x27;description&#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 string" style="color:#e3116c">&#x27;In order to schedule a query, you need to specify when it &#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#e3116c">&#x27;should start running, when it should stop running, and how &#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#e3116c">&#x27;often it should run. You can also optionally specify &#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#e3116c">&#x27;dependencies that should be met before the query is &#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#e3116c">&#x27;executed. Please read the documentation for best practices &#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#e3116c">&#x27;and more information on how to specify dependencies.&#x27;</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 string" style="color:#e3116c">&#x27;type&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;object&#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 string" style="color:#e3116c">&#x27;properties&#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 string" style="color:#e3116c">&#x27;output_table&#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 string" style="color:#e3116c">&#x27;type&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;string&#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 string" style="color:#e3116c">&#x27;title&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;Output table name&#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 string" style="color:#e3116c">&#x27;start_date&#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 string" style="color:#e3116c">&#x27;type&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;string&#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 string" style="color:#e3116c">&#x27;title&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;Start date&#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 comment" style="color:#999988;font-style:italic"># date-time is parsed using the chrono library, see</span><span class="token plain"></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"># https://www.npmjs.com/package/chrono-node#usage</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token string" style="color:#e3116c">&#x27;format&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;date-time&#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 string" style="color:#e3116c">&#x27;default&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;tomorrow at 9am&#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 string" style="color:#e3116c">&#x27;end_date&#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 string" style="color:#e3116c">&#x27;type&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;string&#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 string" style="color:#e3116c">&#x27;title&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;End date&#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 comment" style="color:#999988;font-style:italic"># date-time is parsed using the chrono library, see</span><span class="token plain"></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"># https://www.npmjs.com/package/chrono-node#usage</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token string" style="color:#e3116c">&#x27;format&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;date-time&#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 string" style="color:#e3116c">&#x27;default&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;9am in 30 days&#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 string" style="color:#e3116c">&#x27;schedule_interval&#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 string" style="color:#e3116c">&#x27;type&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;string&#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 string" style="color:#e3116c">&#x27;title&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;Schedule interval&#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 string" style="color:#e3116c">&#x27;dependencies&#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 string" style="color:#e3116c">&#x27;type&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;array&#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 string" style="color:#e3116c">&#x27;title&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;Dependencies&#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 string" style="color:#e3116c">&#x27;items&#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 string" style="color:#e3116c">&#x27;type&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;string&#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 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 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 string" style="color:#e3116c">&#x27;UISCHEMA&#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 string" style="color:#e3116c">&#x27;schedule_interval&#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 string" style="color:#e3116c">&#x27;ui:placeholder&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;@daily, @weekly, etc.&#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 string" style="color:#e3116c">&#x27;dependencies&#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 string" style="color:#e3116c">&#x27;ui:help&#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 string" style="color:#e3116c">&#x27;Check the documentation for the correct format when &#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">                </span><span class="token string" style="color:#e3116c">&#x27;defining dependencies.&#x27;</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 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 string" style="color:#e3116c">&#x27;VALIDATION&#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 comment" style="color:#999988;font-style:italic"># ensure that start_date &lt;= end_date</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 string" style="color:#e3116c">&#x27;name&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;less_equal&#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 string" style="color:#e3116c">&#x27;arguments&#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 string" style="color:#e3116c">&#x27;start_date&#x27;</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;end_date&#x27;</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 string" style="color:#e3116c">&#x27;message&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;End date cannot be before start date&#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 comment" style="color:#999988;font-style:italic"># this is where the error message is shown</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">            </span><span class="token string" style="color:#e3116c">&#x27;container&#x27;</span><span class="token punctuation" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;end_date&#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 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 comment" style="color:#999988;font-style:italic"># link to the scheduler; this example links to an Airflow pipeline</span><span class="token plain"></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"># that uses the query id and the output table as its name</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">    </span><span class="token string" style="color:#e3116c">&#x27;linkback&#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 string" style="color:#e3116c">&#x27;https://airflow.example.com/admin/airflow/tree?&#x27;</span><span class="token plain"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">        </span><span class="token string" style="color:#e3116c">&#x27;dag_id=query_${id}_${extra_json.schedule_info.output_table}&#x27;</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><br></span></code></pre><button type="button" aria-label="Copy code to clipboard" class="copyButton_wuS7 clean-btn">Copy</button></div></div><p>This configuration is based on
 <a href="https://github.com/mozilla-services/react-jsonschema-form" target="_blank" rel="noopener noreferrer">react-jsonschema-form</a> and will add a
 menu item called “Schedule” to SQL Lab. When the menu item is clicked, a modal will show up where
 the user can add the metadata required for scheduling the query.</p><p>This information can then be retrieved from the endpoint <code>/savedqueryviewapi/api/read</code> and used to
 schedule the queries that have <code>scheduled_queries</code> in their JSON metadata. For schedulers other than
-Airflow, additional fields can be easily added to the configuration file above.</p></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/alerts-reports.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_dcUD" 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_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/docs/installation/async-queries-celery"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Async Queries via Celery</div></a></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/docs/installation/sql-templating"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">SQL Templating</div></a></div></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#alerts-and-reports" class="table-of-contents__link toc-highlight">Alerts and Reports</a><ul><li><a href="#requirements" class="table-of-contents__link toc-highlight">Requirements</a></li><li><a href="#detailed-config" class="table-of-contents__link toc-highlight">Detailed config</a></li><li><a href="#custom-dockerfile" class="table-of-contents__link toc-highlight">Custom Dockerfile</a></li><li><a href="#summary-of-steps-to-turn-on-alerts-and-reporting" class="table-of-contents__link toc-highlight">Summary of steps to turn on alerts and reporting:</a></li><li><a href="#docker-compose" class="table-of-contents__link toc-highlight">Docker compose</a></li><li><a href="#summary" class="table-of-contents__link toc-highlight">Summary</a></li></ul></li><li><a href="#scheduling-and-emailing-reports" class="table-of-contents__link toc-highlight">Scheduling and Emailing Reports</a><ul><li><a href="#email-reports" class="table-of-contents__link toc-highlight">Email Reports</a></li><li><a href="#schedule-reports" class="table-of-contents__link toc-highlight">Schedule Reports</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,
+Airflow, additional fields can be easily added to the configuration file above.</p></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/alerts-reports.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_dcUD" 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_foO9"></div></div></footer></article><nav class="pagination-nav docusaurus-mt-lg" aria-label="Docs pages navigation"><div class="pagination-nav__item"><a class="pagination-nav__link" href="/docs/installation/async-queries-celery"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Async Queries via Celery</div></a></div><div class="pagination-nav__item pagination-nav__item--next"><a class="pagination-nav__link" href="/docs/installation/sql-templating"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">SQL Templating</div></a></div></nav></div></div><div class="col col--3"><div class="tableOfContents_cNA8 thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#alerts-and-reports" class="table-of-contents__link toc-highlight">Alerts and Reports</a><ul><li><a href="#requirements" class="table-of-contents__link toc-highlight">Requirements</a></li><li><a href="#detailed-config" class="table-of-contents__link toc-highlight">Detailed config</a></li><li><a href="#custom-dockerfile" class="table-of-contents__link toc-highlight">Custom Dockerfile</a></li><li><a href="#schedule-reports" class="table-of-contents__link toc-highlight">Schedule Reports</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>,
         Licensed under the Apache <a href="https://apache.org/licenses/LICENSE-2.0" target="_blank" rel="noreferrer">License</a>. <br>
         <small>Apache Superset, Apache, Superset, the Superset logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation. All other products or name brands are trademarks of their respective holders, including The Apache Software Foundation.
@@ -60,7 +57,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 1c5fefa..a8db259 100644
--- a/docs/installation/async-queries-celery/index.html
+++ b/docs/installation/async-queries-celery/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Async Queries via Celery | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/async-queries-celery"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Async Queries via Celery | Superset"><meta data-rh="true" name="description" content="Async Queries via Celery"><meta data-rh="true" property="og:description" content="Async Queries via Celery"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/async-queries-celery"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/async-queries-celery" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/async-queries-celery" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 602cd8d..02b51a4 100644
--- a/docs/installation/cache/index.html
+++ b/docs/installation/cache/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Caching | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/cache"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Caching | Superset"><meta data-rh="true" name="description" content="Caching"><meta data-rh="true" property="og:description" content="Caching"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/cache"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/cache" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/cache" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -48,7 +48,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 64977bc..fa38462 100644
--- a/docs/installation/configuring-superset/index.html
+++ b/docs/installation/configuring-superset/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Configuring Superset | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/configuring-superset"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Configuring Superset | Superset"><meta data-rh="true" name="description" content="Configuring Superset"><meta data-rh="true" property="og:description" content="Configuring Superset"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/configuring-superset"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/configuring-superset" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/configuring-superset" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -67,7 +67,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 7cd9ce5..6213c68 100644
--- a/docs/installation/event-logging/index.html
+++ b/docs/installation/event-logging/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Event Logging | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/event-logging"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Event Logging | Superset"><meta data-rh="true" name="description" content="Logging"><meta data-rh="true" property="og:description" content="Logging"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/event-logging"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/event-logging" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/event-logging" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 d5dc3ee..51379f8 100644
--- a/docs/installation/installing-superset-from-scratch/index.html
+++ b/docs/installation/installing-superset-from-scratch/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Installing From Scratch | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/installing-superset-from-scratch"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Installing From Scratch | Superset"><meta data-rh="true" name="description" content="Installing Superset from Scratch"><meta data-rh="true" property="og:description" content="Installing Superset from Scratch"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/installing-superset-from-scratch"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/installing-superset-from-scratch" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/installing-superset-from-scratch" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 ff2c275..b716042 100644
--- a/docs/installation/installing-superset-using-docker-compose/index.html
+++ b/docs/installation/installing-superset-using-docker-compose/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Installing Locally Using Docker Compose | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/installing-superset-using-docker-compose"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Installing Locally Using Docker Compose | Superset"><meta data-rh="true" name="description" content="Installing Superset Locally Using Docker Compose"><meta data-rh="true" property="og:description" content="Installing Superset Locally Using Docker Compose"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/installing-superset-using-docker-compose"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/installing-superset-using-docker-compose" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/installing-superset-using-docker-compose" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -53,7 +53,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 cf83587..a41eef5 100644
--- a/docs/installation/networking-settings/index.html
+++ b/docs/installation/networking-settings/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Additional Networking Settings | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/networking-settings"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Additional Networking Settings | Superset"><meta data-rh="true" name="description" content="Additional Networking Settings"><meta data-rh="true" property="og:description" content="Additional Networking Settings"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/networking-settings"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/networking-settings" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/networking-settings" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 f7fb6a7..e66a2e6 100644
--- a/docs/installation/running-on-kubernetes/index.html
+++ b/docs/installation/running-on-kubernetes/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Running on Kubernetes | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/running-on-kubernetes"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Running on Kubernetes | Superset"><meta data-rh="true" name="description" content="Running on Kubernetes"><meta data-rh="true" property="og:description" content="Running on Kubernetes"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/running-on-kubernetes"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/running-on-kubernetes" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/running-on-kubernetes" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 0aa18b3..9ca67d6 100644
--- a/docs/installation/sql-templating/index.html
+++ b/docs/installation/sql-templating/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">SQL Templating | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/sql-templating"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="SQL Templating | Superset"><meta data-rh="true" name="description" content="SQL Templating"><meta data-rh="true" property="og:description" content="SQL Templating"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/sql-templating"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/sql-templating" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/sql-templating" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -63,7 +63,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 64030df..b51bbbc 100644
--- a/docs/installation/upgrading-superset/index.html
+++ b/docs/installation/upgrading-superset/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Upgrading Superset | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/installation/upgrading-superset"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Upgrading Superset | Superset"><meta data-rh="true" name="description" content="Upgrading Superset"><meta data-rh="true" property="og:description" content="Upgrading Superset"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/installation/upgrading-superset"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/upgrading-superset" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/installation/upgrading-superset" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -32,7 +32,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/intro/index.html b/docs/intro/index.html
index 6e8dfc4..9aa3f1a 100644
--- a/docs/intro/index.html
+++ b/docs/intro/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Introduction | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/intro"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Introduction | Superset"><meta data-rh="true" name="description" content="What is Apache Superset?"><meta data-rh="true" property="og:description" content="What is Apache Superset?"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/intro"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/intro" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/intro" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 4e53481..c79a6d0 100644
--- a/docs/miscellaneous/chart-params/index.html
+++ b/docs/miscellaneous/chart-params/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Chart Parameters Reference | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/miscellaneous/chart-params"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Chart Parameters Reference | Superset"><meta data-rh="true" name="description" content="Chart Parameters"><meta data-rh="true" property="og:description" content="Chart Parameters"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/miscellaneous/chart-params"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/chart-params" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/chart-params" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 4003ee5..ca6a8af 100644
--- a/docs/miscellaneous/country-map-tools/index.html
+++ b/docs/miscellaneous/country-map-tools/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Country Map Tools | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/miscellaneous/country-map-tools"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Country Map Tools | Superset"><meta data-rh="true" name="description" content="The Country Map Visualization"><meta data-rh="true" property="og:description" content="The Country Map Visualization"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/miscellaneous/country-map-tools"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/country-map-tools" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/country-map-tools" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 07b0c94..9e9727e 100644
--- a/docs/miscellaneous/importing-exporting-datasources/index.html
+++ b/docs/miscellaneous/importing-exporting-datasources/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Importing and Exporting Datasources | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/miscellaneous/importing-exporting-datasources"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Importing and Exporting Datasources | Superset"><meta data-rh="true" name="description" content="Importing and Exporting Datasources"><meta data-rh="true" property="og:description" content="Importing and Exporting Datasources"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/miscellaneous/importing-exporting-datasources"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/importing-exporting-datasources" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/importing-exporting-datasources" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.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 9358b38..15a0401 100644
--- a/docs/miscellaneous/issue-codes/index.html
+++ b/docs/miscellaneous/issue-codes/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Issue Codes | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/miscellaneous/issue-codes"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Issue Codes | Superset"><meta data-rh="true" name="description" content="This page lists issue codes that may be displayed in"><meta data-rh="true" property="og:description" content="This page lists issue codes that may be displayed in"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/miscellaneous/issue-codes"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/issue-codes" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/miscellaneous/issue-codes" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -59,7 +59,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/security/index.html b/docs/security/index.html
index 640782b..35da0cd 100644
--- a/docs/security/index.html
+++ b/docs/security/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Security | Superset</title><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/docs/security"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Security | Superset"><meta data-rh="true" name="description" content="Roles"><meta data-rh="true" property="og:description" content="Roles"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/docs/security"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/security" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/docs/security" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -104,7 +104,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index 2da35a3..50e0609 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Welcome | Superset</title><meta data-rh="true" property="og:title" content="Welcome | Superset"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="Community website for Apache Superset, a data visualization and data exploration platform"><meta data-rh="true" property="og:description" content="Community website for Apache Superset, a data visualization and data exploration platform"><meta data-rh="true" property="og:url" content="https://superset.apache.org/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/"><link data-rh="true" rel="alternate" href="https://superset.apache.org/" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><script data-rh="true">function maybeInsertBanner(){window.__DOCUSAURUS_INSERT_BASEURL_BANNER&&insertBanner()}function insertBanner(){var n=document.getElementById("docusaurus-base-url-issue-banner-container");if(n){n.innerHTML='\n<div id="docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n   <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n   <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseurl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n   <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/</span>  (default value)</p>\n   <p>We suggest trying baseUrl = <span id="docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n';var e=document.getElementById("docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,r="/"===s.substr(-1)?s:s+"/";e.innerHTML=r}}window.__DOCUSAURUS_INSERT_BASEURL_BANNER=!0,document.addEventListener("DOMContentLoaded",maybeInsertBanner)</script><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/markdown-page/index.html b/markdown-page/index.html
index e473870..4ed1572 100644
--- a/markdown-page/index.html
+++ b/markdown-page/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Superset</title><meta data-rh="true" property="og:title" content="Superset"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="description" content="&lt;!--"><meta data-rh="true" property="og:description" content="&lt;!--"><meta data-rh="true" property="og:url" content="https://superset.apache.org/markdown-page"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/markdown-page"><link data-rh="true" rel="alternate" href="https://superset.apache.org/markdown-page" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/markdown-page" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/search/index.html b/search/index.html
index 30e500b..203a74b 100644
--- a/search/index.html
+++ b/search/index.html
@@ -13,7 +13,7 @@
 <script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-133LHD3B3N",{anonymize_ip:!0})</script>
 <link rel="search" type="application/opensearchdescription+xml" title="Superset" href="/opensearch.xml">
 <script src="/script/matomo.js"></script><title data-rh="true">Search the documentation | Superset</title><meta data-rh="true" property="og:title" content="Superset"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://superset.apache.org/search"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" property="robots" content="noindex, follow"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://superset.apache.org/search"><link data-rh="true" rel="alternate" href="https://superset.apache.org/search" hreflang="en"><link data-rh="true" rel="alternate" href="https://superset.apache.org/search" hreflang="x-default"><link data-rh="true" rel="preconnect" href="https://WR5FASX5ED-dsn.algolia.net" crossorigin="anonymous"><link rel="stylesheet" href="/assets/css/styles.ba1779ef.css">
-<link rel="preload" href="/assets/js/runtime~main.e1373280.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.bdbf37f7.js" as="script">
 <link rel="preload" href="/assets/js/main.d7b7e55a.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -30,7 +30,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.e1373280.js"></script>
+<script src="/assets/js/runtime~main.bdbf37f7.js"></script>
 <script src="/assets/js/main.d7b7e55a.js"></script>
 </body>
 </html>
\ No newline at end of file