You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by as...@apache.org on 2023/08/16 17:01:07 UTC

[superset-site] branch asf-site updated: deploying docs: fix: update permalink schema (#24970) (apache/superset@bc1c5c2f845af98879d7ef626b67f7587ea662c2)

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

asf-ci-deploy pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/superset-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b10a79ca8 deploying docs: fix: update permalink schema (#24970) (apache/superset@bc1c5c2f845af98879d7ef626b67f7587ea662c2)
b10a79ca8 is described below

commit b10a79ca8bfc2f3b96416964e5ea9ab705d6f92e
Author: apache <de...@superset.apache.org>
AuthorDate: Wed Aug 16 17:01:01 2023 +0000

    deploying docs: fix: update permalink schema (#24970) (apache/superset@bc1c5c2f845af98879d7ef626b67f7587ea662c2)
---
 404.html                                           |    4 +-
 assets/js/2461ffa2.b19d6100.js                     |    1 +
 assets/js/2461ffa2.fc4138e1.js                     |    1 -
 ...e~main.720d8d92.js => runtime~main.80d2e9db.js} |    2 +-
 community/index.html                               |    4 +-
 docs/api/index.html                                |    4 +-
 docs/contributing/contributing-page/index.html     |    4 +-
 .../contributing/conventions-and-typing/index.html |    4 +-
 docs/contributing/creating-viz-plugins/index.html  |    4 +-
 docs/contributing/hooks-and-linting/index.html     |    4 +-
 docs/contributing/local-backend/index.html         |    4 +-
 .../pull-request-guidelines/index.html             |    4 +-
 docs/contributing/style-guide/index.html           |    4 +-
 docs/contributing/testing-locally/index.html       |    4 +-
 docs/contributing/translations/index.html          |    4 +-
 .../contributing/types-of-contributions/index.html |    4 +-
 .../creating-your-first-dashboard/index.html       |    4 +-
 .../exploring-data/index.html                      |    4 +-
 docs/databases/ascend/index.html                   |    4 +-
 docs/databases/athena/index.html                   |    4 +-
 docs/databases/bigquery/index.html                 |    4 +-
 docs/databases/clickhouse/index.html               |    4 +-
 docs/databases/cockroachdb/index.html              |    4 +-
 docs/databases/cratedb/index.html                  |    4 +-
 docs/databases/databricks/index.html               |    4 +-
 docs/databases/db-connection-ui/index.html         |    4 +-
 docs/databases/docker-add-drivers/index.html       |    4 +-
 docs/databases/dremio/index.html                   |    4 +-
 docs/databases/drill/index.html                    |    4 +-
 docs/databases/druid/index.html                    |    4 +-
 docs/databases/dynamodb/index.html                 |    4 +-
 docs/databases/elasticsearch/index.html            |    4 +-
 docs/databases/exasol/index.html                   |    4 +-
 docs/databases/extra-settings/index.html           |    4 +-
 docs/databases/firebird/index.html                 |    4 +-
 docs/databases/firebolt/index.html                 |    4 +-
 docs/databases/google-sheets/index.html            |    4 +-
 docs/databases/hana/index.html                     |    4 +-
 docs/databases/hive/index.html                     |    4 +-
 docs/databases/hologres/index.html                 |    4 +-
 docs/databases/ibm-db2/index.html                  |    4 +-
 docs/databases/impala/index.html                   |    4 +-
 .../installing-database-drivers/index.html         |    4 +-
 docs/databases/kusto/index.html                    |    4 +-
 docs/databases/kylin/index.html                    |    4 +-
 docs/databases/mysql/index.html                    |    4 +-
 docs/databases/netezza/index.html                  |    4 +-
 docs/databases/ocient/index.html                   |    4 +-
 docs/databases/oracle/index.html                   |    4 +-
 docs/databases/pinot/index.html                    |    4 +-
 docs/databases/postgres/index.html                 |    4 +-
 docs/databases/presto/index.html                   |    4 +-
 docs/databases/redshift/index.html                 |    4 +-
 docs/databases/risingwave/index.html               |    4 +-
 docs/databases/rockset/index.html                  |    4 +-
 docs/databases/snowflake/index.html                |    4 +-
 docs/databases/solr/index.html                     |    4 +-
 docs/databases/spark-sql/index.html                |    4 +-
 docs/databases/sql-server/index.html               |    4 +-
 docs/databases/starrocks/index.html                |    4 +-
 docs/databases/teradata/index.html                 |    4 +-
 docs/databases/timescaledb/index.html              |    4 +-
 docs/databases/trino/index.html                    |    4 +-
 docs/databases/vertica/index.html                  |    4 +-
 docs/databases/yugabytedb/index.html               |    4 +-
 docs/frequently-asked-questions/index.html         |    4 +-
 docs/installation/alerts-reports/index.html        |    4 +-
 docs/installation/async-queries-celery/index.html  |    4 +-
 docs/installation/cache/index.html                 |    4 +-
 docs/installation/configuring-superset/index.html  |    4 +-
 docs/installation/event-logging/index.html         |    4 +-
 .../installing-superset-from-scratch/index.html    |    4 +-
 .../index.html                                     |    4 +-
 docs/installation/networking-settings/index.html   |    4 +-
 docs/installation/running-on-kubernetes/index.html |    4 +-
 docs/installation/setup-ssh-tunneling/index.html   |    4 +-
 docs/installation/sql-templating/index.html        |    4 +-
 docs/installation/upgrading-superset/index.html    |    4 +-
 docs/intro/index.html                              |    4 +-
 docs/miscellaneous/chart-params/index.html         |    4 +-
 docs/miscellaneous/country-map-tools/index.html    |    4 +-
 .../importing-exporting-datasources/index.html     |    4 +-
 docs/miscellaneous/issue-codes/index.html          |    4 +-
 .../native-filter-migration/index.html             |    4 +-
 docs/security/cves/index.html                      |    4 +-
 docs/security/index.html                           |    4 +-
 index.html                                         |    4 +-
 markdown-page/index.html                           |    4 +-
 resources/openapi.json                             | 9522 ++++++++++++++------
 search/index.html                                  |    4 +-
 90 files changed, 6709 insertions(+), 3161 deletions(-)

diff --git a/404.html b/404.html
index 0e89b6d29..30b8f12f0 100644
--- a/404.html
+++ b/404.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/2461ffa2.b19d6100.js b/assets/js/2461ffa2.b19d6100.js
new file mode 100644
index 000000000..1b3e2c002
--- /dev/null
+++ b/assets/js/2461ffa2.b19d6100.js
@@ -0,0 +1 @@
+(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[7600],{58623:(e,t,s)=>{"use strict";s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>g,frontMatter:()=>c,metadata:()=>m,toc:()=>u});var r=s(83117),a=(s(67294),s(3905)),n=s(48764),o=s(31156);const i=JSON.parse('{"components":{"responses":{"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"}},"type":"object"}}},"description":"Bad request"},"401":{"content":{"application/json":{"sc [...]
\ No newline at end of file
diff --git a/assets/js/2461ffa2.fc4138e1.js b/assets/js/2461ffa2.fc4138e1.js
deleted file mode 100644
index b208f2079..000000000
--- a/assets/js/2461ffa2.fc4138e1.js
+++ /dev/null
@@ -1 +0,0 @@
-(self.webpackChunkdocs_v_2=self.webpackChunkdocs_v_2||[]).push([[7600],{58623:(e,t,s)=>{"use strict";s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>g,frontMatter:()=>c,metadata:()=>m,toc:()=>u});var a=s(83117),r=(s(67294),s(3905)),n=s(48764),o=s(31156);const i=JSON.parse('{"components":{"responses":{"400":{"content":{"application/json":{"schema":{"properties":{"message":{"type":"string"}},"type":"object"}}},"description":"Bad request"},"401":{"content":{"application/json":{"sc [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.720d8d92.js b/assets/js/runtime~main.80d2e9db.js
similarity index 79%
rename from assets/js/runtime~main.720d8d92.js
rename to assets/js/runtime~main.80d2e9db.js
index aac47a360..d08424dd9 100644
--- a/assets/js/runtime~main.720d8d92.js
+++ b/assets/js/runtime~main.80d2e9db.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,c,f,d,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(a,c,f,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],d=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}d=d| [...]
\ No newline at end of file
+(()=>{"use strict";var e,a,c,f,b,d={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return d[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=d,r.c=t,e=[],r.O=(a,c,f,b)=>{if(!c){var d=1/0;for(i=0;i<e.length;i++){c=e[i][0],f=e[i][1],b=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&b||d>=b)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,b<d&&(d=b));if(t){e.splice(i--,1);var n=f();void 0!==n&&(a=n)}}return a}b=b| [...]
\ No newline at end of file
diff --git a/community/index.html b/community/index.html
index 7108bbec5..4503f19ff 100644
--- a/community/index.html
+++ b/community/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/index.html b/docs/api/index.html
index 2a2f182d9..528829e87 100644
--- a/docs/api/index.html
+++ b/docs/api/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -45,7 +45,7 @@ documented here. The docs bellow are generated using
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 6726e45ae..9f8db5812 100644
--- a/docs/contributing/contributing-page/index.html
+++ b/docs/contributing/contributing-page/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ which can be joined by anyone):</p><ul><li><a href="https://lists.apache.org/lis
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 881a7c9e4..63e9f2472 100644
--- a/docs/contributing/conventions-and-typing/index.html
+++ b/docs/contributing/conventions-and-typing/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -46,7 +46,7 @@ recommendation is to put this information in a docstring, i.e.,</p><div class="l
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 98cbfd31e..17a18717e 100644
--- a/docs/contributing/creating-viz-plugins/index.html
+++ b/docs/contributing/creating-viz-plugins/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -58,7 +58,7 @@ server:</p><div class="language-bash codeBlockContainer_Ckt0 theme-code-block" s
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 a8acc1f43..2463eab32 100644
--- a/docs/contributing/hooks-and-linting/index.html
+++ b/docs/contributing/hooks-and-linting/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ is configured as a pre-commit hook. There are also numerous <a href="https://bla
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 16ddfba20..a40dd07e8 100644
--- a/docs/contributing/local-backend/index.html
+++ b/docs/contributing/local-backend/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -45,7 +45,7 @@ via <code>.flaskenv</code>, however if needed, it should be set to <code>superse
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 b782b50c9..aa296cce3 100644
--- a/docs/contributing/pull-request-guidelines/index.html
+++ b/docs/contributing/pull-request-guidelines/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 6d039553d..3d38dae97 100644
--- a/docs/contributing/style-guide/index.html
+++ b/docs/contributing/style-guide/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -45,7 +45,7 @@ Sentence case: &quot;A dog takes a walk in Paris&quot;</p><p><strong>Why sentenc
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 51e9307c1..a332c037f 100644
--- a/docs/contributing/testing-locally/index.html
+++ b/docs/contributing/testing-locally/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -49,7 +49,7 @@ found here</a></p><p>To run all integration tests for example, run this script f
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 c2757dde3..da8cbc6ca 100644
--- a/docs/contributing/translations/index.html
+++ b/docs/contributing/translations/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -73,7 +73,7 @@ binary MO files.</p><div class="language-bash codeBlockContainer_Ckt0 theme-code
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 6ef775e94..7e638aa22 100644
--- a/docs/contributing/types-of-contributions/index.html
+++ b/docs/contributing/types-of-contributions/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -53,7 +53,7 @@ See <a href="#translating">Translating</a> for more details.</p><h3 class="ancho
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 0ece9b613..6f2d3f861 100644
--- a/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html
+++ b/docs/creating-charts-dashboards/creating-your-first-dashboard/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -85,7 +85,7 @@ Top Nav and remove the Filter Bar:
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 bc8a5cbbf..f29640d2e 100644
--- a/docs/creating-charts-dashboards/exploring-data/index.html
+++ b/docs/creating-charts-dashboards/exploring-data/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -147,7 +147,7 @@ tutorial dashboard to see the four charts side by side and compare the different
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 21310e490..22a94bb24 100644
--- a/docs/databases/ascend/index.html
+++ b/docs/databases/ascend/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 c41c7351a..e8d13bf65 100644
--- a/docs/databases/athena/index.html
+++ b/docs/databases/athena/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ following connection string:</p><div class="codeBlockContainer_Ckt0 theme-code-b
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 41b74f89e..6ad3148c7 100644
--- a/docs/databases/bigquery/index.html
+++ b/docs/databases/bigquery/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -49,7 +49,7 @@ So, when you deploy Superset with <code>gunicorn</code> server, you have to use
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 cf8bd43f1..c376c7485 100644
--- a/docs/databases/clickhouse/index.html
+++ b/docs/databases/clickhouse/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ uses the default user without a password (and doesn&#x27;t encrypt the connectio
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 9ddb2ea62..77ee38881 100644
--- a/docs/databases/cockroachdb/index.html
+++ b/docs/databases/cockroachdb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 39d8ba9f5..47876342a 100644
--- a/docs/databases/cratedb/index.html
+++ b/docs/databases/cratedb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -46,7 +46,7 @@ text to your requirements file:</p><div class="codeBlockContainer_Ckt0 theme-cod
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 75abdba83..dc364f6ff 100644
--- a/docs/databases/databricks/index.html
+++ b/docs/databases/databricks/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 18d4f4308..eb210dcbe 100644
--- a/docs/databases/db-connection-ui/index.html
+++ b/docs/databases/db-connection-ui/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 0875f392e..2773a79cf 100644
--- a/docs/databases/docker-add-drivers/index.html
+++ b/docs/databases/docker-add-drivers/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -57,7 +57,7 @@ terminal for error messages, and reach out for help.</p><p>You can repeat this p
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 71db91d48..ba9c3dd8f 100644
--- a/docs/databases/dremio/index.html
+++ b/docs/databases/dremio/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ additional helpful instructions on connecting Superset to Dremio.</p></div><foot
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 d427e094f..794433558 100644
--- a/docs/databases/drill/index.html
+++ b/docs/databases/drill/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -49,7 +49,7 @@ work with Drill through ODBC.</p></div><footer class="theme-doc-footer docusauru
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 81542fe68..5c7829761 100644
--- a/docs/databases/druid/index.html
+++ b/docs/databases/druid/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -58,7 +58,7 @@ the JSON field.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 8fc852c45..49b9d32c6 100644
--- a/docs/databases/dynamodb/index.html
+++ b/docs/databases/dynamodb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 f9066b34d..a0c9557f0 100644
--- a/docs/databases/elasticsearch/index.html
+++ b/docs/databases/elasticsearch/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -49,7 +49,7 @@ the superset will use the <code>DATETIME_PARSE</code> function for conversion.</
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 d92d9085b..0c7a898b9 100644
--- a/docs/databases/exasol/index.html
+++ b/docs/databases/exasol/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 82e5962b0..b1fd3ab92 100644
--- a/docs/databases/extra-settings/index.html
+++ b/docs/databases/extra-settings/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -52,7 +52,7 @@ file to point to that function.</p><div class="language-python codeBlockContaine
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 04c3c8307..097adaac2 100644
--- a/docs/databases/firebird/index.html
+++ b/docs/databases/firebird/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ Superset has been tested on <code>sqlalchemy-firebird&gt;=0.7.0, &lt;0.8</code>.
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 e6ad30a3f..80464f599 100644
--- a/docs/databases/firebolt/index.html
+++ b/docs/databases/firebolt/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ Superset has been tested on <code>firebolt-sqlalchemy&gt;=0.0.1</code>.</p><p>Th
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 7db174950..61d4b81f2 100644
--- a/docs/databases/google-sheets/index.html
+++ b/docs/databases/google-sheets/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -46,7 +46,7 @@ instructions on setting up this connection.</p></div><footer class="theme-doc-fo
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 f7c7b1b06..1869d1533 100644
--- a/docs/databases/hana/index.html
+++ b/docs/databases/hana/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 9cd4b64c0..d680faf65 100644
--- a/docs/databases/hive/index.html
+++ b/docs/databases/hive/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 f1f47d214..9269a299a 100644
--- a/docs/databases/hologres/index.html
+++ b/docs/databases/hologres/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 6f72b2379..61ef6441c 100644
--- a/docs/databases/ibm-db2/index.html
+++ b/docs/databases/ibm-db2/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ Python / SQLAlchemy interface to IBM Data Servers.</p><p>Here&#x27;s the recomme
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 f6f32bf5d..c2b42496b 100644
--- a/docs/databases/impala/index.html
+++ b/docs/databases/impala/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 6acca6359..8ae571794 100644
--- a/docs/databases/installing-database-drivers/index.html
+++ b/docs/databases/installing-database-drivers/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -53,7 +53,7 @@ read the <a href="https://preset.io/blog/building-database-connector/" target="_
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 10b0b3e23..949b448e7 100644
--- a/docs/databases/kusto/index.html
+++ b/docs/databases/kusto/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ databases/tables/views.</p></div><footer class="theme-doc-footer docusaurus-mt-l
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 c289188cb..8ecc54da9 100644
--- a/docs/databases/kylin/index.html
+++ b/docs/databases/kylin/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 2fb83d884..72538a8d1 100644
--- a/docs/databases/mysql/index.html
+++ b/docs/databases/mysql/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ Port: <code>3306</code> by default</li></ul><p>One problem with <code>mysqlclien
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 4812fde26..41bc74668 100644
--- a/docs/databases/netezza/index.html
+++ b/docs/databases/netezza/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ Python / SQLAlchemy interface to IBM Netezza Performance Server (aka Netezza).</
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/ocient/index.html b/docs/databases/ocient/index.html
index b1b72b465..fc6b8887d 100644
--- a/docs/databases/ocient/index.html
+++ b/docs/databases/ocient/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ to <code>unverified</code>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 264c43c72..6cb12e022 100644
--- a/docs/databases/oracle/index.html
+++ b/docs/databases/oracle/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 72fd74b81..6af5afa08 100644
--- a/docs/databases/pinot/index.html
+++ b/docs/databases/pinot/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 897db3b47..1914729ec 100644
--- a/docs/databases/postgres/index.html
+++ b/docs/databases/postgres/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -47,7 +47,7 @@ and the
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 8d95f3f91..c11416094 100644
--- a/docs/databases/presto/index.html
+++ b/docs/databases/presto/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ datasource. If you’re using an older version of Presto, you can configure it i
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 f2e52606e..939197057 100644
--- a/docs/databases/redshift/index.html
+++ b/docs/databases/redshift/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ way to connect to Redshift through SQLAlchemy.</p><p>This dialect requires eithe
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 1bd993c9d..c5d10a440 100644
--- a/docs/databases/risingwave/index.html
+++ b/docs/databases/risingwave/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 e5c7a35bc..c9218526c 100644
--- a/docs/databases/rockset/index.html
+++ b/docs/databases/rockset/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ Find your API server from the <a href="https://rockset.com/docs/rest-api/#introd
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 bdd57ecb4..5143944f7 100644
--- a/docs/databases/snowflake/index.html
+++ b/docs/databases/snowflake/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -51,7 +51,7 @@ To connect Snowflake with Key Pair Authentication, you need to add the following
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 c9c228c51..a3bbeb02f 100644
--- a/docs/databases/solr/index.html
+++ b/docs/databases/solr/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ Python / SQLAlchemy interface to Apache Solr.</p><p>The connection string for So
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 31b842ac1..f33c03408 100644
--- a/docs/databases/spark-sql/index.html
+++ b/docs/databases/spark-sql/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 09d275238..6ae460954 100644
--- a/docs/databases/sql-server/index.html
+++ b/docs/databases/sql-server/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/databases/starrocks/index.html b/docs/databases/starrocks/index.html
index 3b15a8d89..4a15c6b0b 100644
--- a/docs/databases/starrocks/index.html
+++ b/docs/databases/starrocks/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ way to connect to StarRocks through SQLAlchemy.</p><p>You&#x27;ll need to the fo
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 9e868ec9a..3f41f7aa7 100644
--- a/docs/databases/teradata/index.html
+++ b/docs/databases/teradata/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -49,7 +49,7 @@ because it&#x27;s more regularly updated.</p></div><footer class="theme-doc-foot
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 79670db19..976446503 100644
--- a/docs/databases/timescaledb/index.html
+++ b/docs/databases/timescaledb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -43,7 +43,7 @@ TimescaleDB is a PostgreSQL extension, and you can use the standard PostgreSQL c
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 8011efdcf..b1ab8a3fa 100644
--- a/docs/databases/trino/index.html
+++ b/docs/databases/trino/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ or factory function (which returns an <code>Authentication</code> instance) to <
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 eb5272973..025293394 100644
--- a/docs/databases/vertica/index.html
+++ b/docs/databases/vertica/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 ebc84cd93..e0dad6437 100644
--- a/docs/databases/yugabytedb/index.html
+++ b/docs/databases/yugabytedb/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ comes out of the box with Superset.</p><p>The connection string looks like:</p><
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 17a6ba475..1d52fcb9e 100644
--- a/docs/frequently-asked-questions/index.html
+++ b/docs/frequently-asked-questions/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -127,7 +127,7 @@ Scarf purges PII and provides aggregated statistics. Superset users can easily o
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 120ba1946..d93cd584f 100644
--- a/docs/installation/alerts-reports/index.html
+++ b/docs/installation/alerts-reports/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -61,7 +61,7 @@ Airflow, additional fields can be easily added to the configuration file above.<
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 9179878a6..7ec4bdab1 100644
--- a/docs/installation/async-queries-celery/index.html
+++ b/docs/installation/async-queries-celery/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -58,7 +58,7 @@ in your database settings (Sources &gt; Databases &gt; Edit record).</p></li></u
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 18d2e46f1..ef683e84e 100644
--- a/docs/installation/cache/index.html
+++ b/docs/installation/cache/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -61,7 +61,7 @@ session cookie. Here&#x27;s an example of a custom function signature:</p><div c
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 b4e22c378..2479cbf20 100644
--- a/docs/installation/configuring-superset/index.html
+++ b/docs/installation/configuring-superset/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -84,7 +84,7 @@ functionalities in Superset, but will be only affected by a subset of users.</p>
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 30eb41087..a455c57bb 100644
--- a/docs/installation/event-logging/index.html
+++ b/docs/installation/event-logging/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -48,7 +48,7 @@ well as key events like query start and end in SQL Lab.</p><p>To setup StatsD lo
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 272328b72..777df93ab 100644
--- a/docs/installation/installing-superset-from-scratch/index.html
+++ b/docs/installation/installing-superset-from-scratch/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -53,7 +53,7 @@ cluster.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 992264352..3f94cb052 100644
--- a/docs/installation/installing-superset-using-docker-compose/index.html
+++ b/docs/installation/installing-superset-using-docker-compose/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -70,7 +70,7 @@ yours is one of them, please make sure it uses <code>http</code>.</p><p>Log in w
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 996fb3261..76e39f456 100644
--- a/docs/installation/networking-settings/index.html
+++ b/docs/installation/networking-settings/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -51,7 +51,7 @@ from the proxy) to Gunicorn’s <code>REMOTE_USER</code> environment variable:</
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 39cfd4ca4..a8e5ab914 100644
--- a/docs/installation/running-on-kubernetes/index.html
+++ b/docs/installation/running-on-kubernetes/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -50,7 +50,7 @@ To load the examples, add the following to the <code>my_values.yaml</code> file:
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/installation/setup-ssh-tunneling/index.html b/docs/installation/setup-ssh-tunneling/index.html
index ffb155339..c67228b60 100644
--- a/docs/installation/setup-ssh-tunneling/index.html
+++ b/docs/installation/setup-ssh-tunneling/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 1c6014432..b6806b41e 100644
--- a/docs/installation/sql-templating/index.html
+++ b/docs/installation/sql-templating/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -77,7 +77,7 @@ returns the operator specified in the Explore UI.</p><p>This is useful if:</p><u
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 b9b54f13f..c6b307a15 100644
--- a/docs/installation/upgrading-superset/index.html
+++ b/docs/installation/upgrading-superset/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -44,7 +44,7 @@ recommend upgrading in a staging environment and upgrading production finally du
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/intro/index.html b/docs/intro/index.html
index e6a105fc5..58e3046b5 100644
--- a/docs/intro/index.html
+++ b/docs/intro/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -54,7 +54,7 @@ a day.</p><p>You can find a partial list of industries and companies embracing S
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 a1b49a692..5ea1676d7 100644
--- a/docs/miscellaneous/chart-params/index.html
+++ b/docs/miscellaneous/chart-params/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 26404c84c..927b98e59 100644
--- a/docs/miscellaneous/country-map-tools/index.html
+++ b/docs/miscellaneous/country-map-tools/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -48,7 +48,7 @@ code is less ambiguous and is unique to all regions in the world.</p><h2 class="
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 958285e89..f0b396165 100644
--- a/docs/miscellaneous/importing-exporting-datasources/index.html
+++ b/docs/miscellaneous/importing-exporting-datasources/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -53,7 +53,7 @@ datasets by saving the following YAML to file and then running the <strong>impor
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.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 58457400d..3be8ba51c 100644
--- a/docs/miscellaneous/issue-codes/index.html
+++ b/docs/miscellaneous/issue-codes/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -71,7 +71,7 @@ check that the username and password were typed correctly.</p><h2 class="anchor
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/miscellaneous/native-filter-migration/index.html b/docs/miscellaneous/native-filter-migration/index.html
index 16df496eb..992e56f10 100644
--- a/docs/miscellaneous/native-filter-migration/index.html
+++ b/docs/miscellaneous/native-filter-migration/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -60,7 +60,7 @@ chart will no longer be valid.</p><h4 class="anchor anchorWithStickyNavbar_LWe7"
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/security/cves/index.html b/docs/security/cves/index.html
index d67d10ade..8ba103bff 100644
--- a/docs/security/cves/index.html
+++ b/docs/security/cves/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/security/index.html b/docs/security/index.html
index 4c0bd427b..6b535230d 100644
--- a/docs/security/index.html
+++ b/docs/security/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -131,7 +131,7 @@ and potential threats are handled, check their web page for more details.</p></d
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index 9164472c9..c3e421613 100644
--- a/index.html
+++ b/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/markdown-page/index.html b/markdown-page/index.html
index 6027feed0..c7191fa1e 100644
--- a/markdown-page/index.html
+++ b/markdown-page/index.html
@@ -18,7 +18,7 @@
 
 <script src="/script/matomo.js"></script>
 <script src="https://www.bugherd.com/sidebarv2.js?apikey=enilpiu7bgexxsnoqfjtxa" async></script><link rel="stylesheet" href="/assets/css/styles.f448a7ff.css">
-<link rel="preload" href="/assets/js/runtime~main.720d8d92.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.80d2e9db.js" as="script">
 <link rel="preload" href="/assets/js/main.79cfe643.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -42,7 +42,7 @@
               <a href="https://apache.org/licenses/" target="_blank" rel="noreferrer">License</a>
             </small>
           </p></div></div></div></footer></div>
-<script src="/assets/js/runtime~main.720d8d92.js"></script>
+<script src="/assets/js/runtime~main.80d2e9db.js"></script>
 <script src="/assets/js/main.79cfe643.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/resources/openapi.json b/resources/openapi.json
index 94dca800c..6ad0be575 100644
--- a/resources/openapi.json
+++ b/resources/openapi.json
@@ -124,7 +124,11 @@
                         "type": "object"
                       },
                       "level": {
-                        "enum": ["info", "warning", "error"],
+                        "enum": [
+                          "info",
+                          "warning",
+                          "error"
+                        ],
                         "type": "string"
                       },
                       "message": {
@@ -206,7 +210,12 @@
         "properties": {
           "annotationType": {
             "description": "Type of annotation layer",
-            "enum": ["FORMULA", "INTERVAL", "EVENT", "TIME_SERIES"],
+            "enum": [
+              "FORMULA",
+              "INTERVAL",
+              "EVENT",
+              "TIME_SERIES"
+            ],
             "type": "string"
           },
           "color": {
@@ -237,7 +246,12 @@
           },
           "opacity": {
             "description": "Opacity of layer",
-            "enum": ["", "opacityLow", "opacityMedium", "opacityHigh"],
+            "enum": [
+              "",
+              "opacityLow",
+              "opacityMedium",
+              "opacityHigh"
+            ],
             "nullable": true,
             "type": "string"
           },
@@ -264,12 +278,22 @@
           },
           "sourceType": {
             "description": "Type of source for annotation data",
-            "enum": ["", "line", "NATIVE", "table"],
+            "enum": [
+              "",
+              "line",
+              "NATIVE",
+              "table"
+            ],
             "type": "string"
           },
           "style": {
             "description": "Line style. Only applies to time-series annotations",
-            "enum": ["dashed", "dotted", "solid", "longDashed"],
+            "enum": [
+              "dashed",
+              "dotted",
+              "solid",
+              "longDashed"
+            ],
             "type": "string"
           },
           "timeColumn": {
@@ -287,12 +311,16 @@
           },
           "width": {
             "description": "Width of annotation line",
-            "format": "float",
-            "minimum": 0,
+            "minimum": 0.0,
             "type": "number"
           }
         },
-        "required": ["name", "show", "showMarkers", "value"],
+        "required": [
+          "name",
+          "show",
+          "showMarkers",
+          "value"
+        ],
         "type": "object"
       },
       "AnnotationLayerRestApi.get": {
@@ -302,7 +330,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "name": {
@@ -316,7 +343,7 @@
       "AnnotationLayerRestApi.get_list": {
         "properties": {
           "changed_by": {
-            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User"
+            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User1"
           },
           "changed_on": {
             "format": "date-time",
@@ -327,7 +354,7 @@
             "readOnly": true
           },
           "created_by": {
-            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User1"
+            "$ref": "#/components/schemas/AnnotationLayerRestApi.get_list.User"
           },
           "created_on": {
             "format": "date-time",
@@ -339,7 +366,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "name": {
@@ -361,7 +387,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "AnnotationLayerRestApi.get_list.User1": {
@@ -375,7 +404,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "AnnotationLayerRestApi.post": {
@@ -392,7 +424,9 @@
             "type": "string"
           }
         },
-        "required": ["name"],
+        "required": [
+          "name"
+        ],
         "type": "object"
       },
       "AnnotationLayerRestApi.put": {
@@ -418,7 +452,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "json_metadata": {
@@ -443,13 +476,14 @@
             "type": "string"
           }
         },
-        "required": ["layer"],
+        "required": [
+          "layer"
+        ],
         "type": "object"
       },
       "AnnotationRestApi.get.AnnotationLayer": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "name": {
@@ -463,13 +497,13 @@
       "AnnotationRestApi.get_list": {
         "properties": {
           "changed_by": {
-            "$ref": "#/components/schemas/AnnotationRestApi.get_list.User"
+            "$ref": "#/components/schemas/AnnotationRestApi.get_list.User1"
           },
           "changed_on_delta_humanized": {
             "readOnly": true
           },
           "created_by": {
-            "$ref": "#/components/schemas/AnnotationRestApi.get_list.User1"
+            "$ref": "#/components/schemas/AnnotationRestApi.get_list.User"
           },
           "end_dttm": {
             "format": "date-time",
@@ -477,7 +511,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "long_descr": {
@@ -504,11 +537,12 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["first_name"],
+        "required": [
+          "first_name"
+        ],
         "type": "object"
       },
       "AnnotationRestApi.get_list.User1": {
@@ -518,11 +552,12 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["first_name"],
+        "required": [
+          "first_name"
+        ],
         "type": "object"
       },
       "AnnotationRestApi.post": {
@@ -554,7 +589,11 @@
             "type": "string"
           }
         },
-        "required": ["end_dttm", "short_descr", "start_dttm"],
+        "required": [
+          "end_dttm",
+          "short_descr",
+          "start_dttm"
+        ],
         "type": "object"
       },
       "AnnotationRestApi.put": {
@@ -621,7 +660,6 @@
       "CacheRestApi.get": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -630,7 +668,6 @@
       "CacheRestApi.get_list": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -639,7 +676,6 @@
       "CacheRestApi.post": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -648,7 +684,6 @@
       "CacheRestApi.put": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -671,11 +706,67 @@
         },
         "type": "object"
       },
+      "ChartCacheWarmUpRequestSchema": {
+        "properties": {
+          "chart_id": {
+            "description": "The ID of the chart to warm up cache for",
+            "type": "integer"
+          },
+          "dashboard_id": {
+            "description": "The ID of the dashboard to get filters for when warming cache",
+            "type": "integer"
+          },
+          "extra_filters": {
+            "description": "Extra filters to apply when warming up cache",
+            "type": "string"
+          }
+        },
+        "required": [
+          "chart_id"
+        ],
+        "type": "object"
+      },
+      "ChartCacheWarmUpResponseSchema": {
+        "properties": {
+          "result": {
+            "description": "A list of each chart's warmup status and errors if any",
+            "items": {
+              "$ref": "#/components/schemas/ChartCacheWarmUpResponseSingle"
+            },
+            "type": "array"
+          }
+        },
+        "type": "object"
+      },
+      "ChartCacheWarmUpResponseSingle": {
+        "properties": {
+          "chart_id": {
+            "description": "The ID of the chart the status belongs to",
+            "type": "integer"
+          },
+          "viz_error": {
+            "description": "Error that occurred when warming cache for chart",
+            "type": "string"
+          },
+          "viz_status": {
+            "description": "Status of the underlying query for the viz",
+            "type": "string"
+          }
+        },
+        "type": "object"
+      },
       "ChartDataAdhocMetricSchema": {
         "properties": {
           "aggregate": {
-            "description": "Aggregation operator. Only required for simple expression types.",
-            "enum": ["AVG", "COUNT", "COUNT_DISTINCT", "MAX", "MIN", "SUM"],
+            "description": "Aggregation operator.Only required for simple expression types.",
+            "enum": [
+              "AVG",
+              "COUNT",
+              "COUNT_DISTINCT",
+              "MAX",
+              "MIN",
+              "SUM"
+            ],
             "type": "string"
           },
           "column": {
@@ -683,7 +774,10 @@
           },
           "expressionType": {
             "description": "Simple or SQL metric",
-            "enum": ["SIMPLE", "SQL"],
+            "enum": [
+              "SIMPLE",
+              "SQL"
+            ],
             "example": "SQL",
             "type": "string"
           },
@@ -697,12 +791,12 @@
             "type": "boolean"
           },
           "label": {
-            "description": "Label for the metric. Is automatically generated unless hasCustomLabel is true, in which case label must be defined.",
+            "description": "Label for the metric. Is automatically generated unlesshasCustomLabel is true, in which case label must be defined.",
             "example": "Weighted observations",
             "type": "string"
           },
           "optionName": {
-            "description": "Unique identifier. Can be any string value, as long as all metrics have a unique identifier. If undefined, a random name will be generated.",
+            "description": "Unique identifier. Can be any string value, as long as all metrics have a unique identifier. If undefined, a random namewill be generated.",
             "example": "metric_aec60732-fac0-4b17-b736-93f1a5c93e30",
             "type": "string"
           },
@@ -717,7 +811,9 @@
             "type": "string"
           }
         },
-        "required": ["expressionType"],
+        "required": [
+          "expressionType"
+        ],
         "type": "object"
       },
       "ChartDataAggregateOptionsSchema": {
@@ -782,16 +878,25 @@
           },
           "percentiles": {
             "description": "Upper and lower percentiles for percentile whisker type.",
-            "example": [1, 99]
+            "example": [
+              1,
+              99
+            ]
           },
           "whisker_type": {
             "description": "Whisker type. Any numpy function will work.",
-            "enum": ["tukey", "min/max", "percentile"],
+            "enum": [
+              "tukey",
+              "min/max",
+              "percentile"
+            ],
             "example": "tukey",
             "type": "string"
           }
         },
-        "required": ["whisker_type"],
+        "required": [
+          "whisker_type"
+        ],
         "type": "object"
       },
       "ChartDataColumn": {
@@ -813,19 +918,23 @@
         "properties": {
           "orientation": {
             "description": "Should cell values be calculated across the row or column.",
-            "enum": ["row", "column"],
+            "enum": [
+              "row",
+              "column"
+            ],
             "example": "row",
             "type": "string"
           }
         },
-        "required": ["orientation"],
+        "required": [
+          "orientation"
+        ],
         "type": "object"
       },
       "ChartDataDatasource": {
         "properties": {
           "id": {
             "description": "Datasource id",
-            "format": "int32",
             "type": "integer"
           },
           "type": {
@@ -841,7 +950,9 @@
             "type": "string"
           }
         },
-        "required": ["id"],
+        "required": [
+          "id"
+        ],
         "type": "object"
       },
       "ChartDataExtras": {
@@ -852,12 +963,18 @@
           },
           "relative_end": {
             "description": "End time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
-            "enum": ["today", "now"],
+            "enum": [
+              "today",
+              "now"
+            ],
             "type": "string"
           },
           "relative_start": {
             "description": "Start time for relative time deltas. Default: `config[\"DEFAULT_RELATIVE_START_TIME\"]`",
-            "enum": ["today", "now"],
+            "enum": [
+              "today",
+              "now"
+            ],
             "type": "string"
           },
           "time_grain_sqla": {
@@ -881,7 +998,12 @@
               "1969-12-28T00:00:00Z/P1W",
               "1969-12-29T00:00:00Z/P1W",
               "P1W/1970-01-03T00:00:00Z",
-              "P1W/1970-01-04T00:00:00Z"
+              "P1W/1970-01-04T00:00:00Z",
+              "PT2H",
+              "PT4H",
+              "PT8H",
+              "PT10H",
+              "PT12H"
             ],
             "example": "P1D",
             "nullable": true,
@@ -924,7 +1046,6 @@
               "IS NOT NULL",
               "IN",
               "NOT IN",
-              "REGEX",
               "IS TRUE",
               "IS FALSE",
               "TEMPORAL_RANGE"
@@ -934,11 +1055,18 @@
           },
           "val": {
             "description": "The value or values to compare against. Can be a string, integer, decimal, None or list, depending on the operator.",
-            "example": ["China", "France", "Japan"],
+            "example": [
+              "China",
+              "France",
+              "Japan"
+            ],
             "nullable": true
           }
         },
-        "required": ["col", "op"],
+        "required": [
+          "col",
+          "op"
+        ],
         "type": "object"
       },
       "ChartDataGeodeticParseOptionsSchema": {
@@ -960,7 +1088,11 @@
             "type": "string"
           }
         },
-        "required": ["geodetic", "latitude", "longitude"],
+        "required": [
+          "geodetic",
+          "latitude",
+          "longitude"
+        ],
         "type": "object"
       },
       "ChartDataGeohashDecodeOptionsSchema": {
@@ -978,7 +1110,11 @@
             "type": "string"
           }
         },
-        "required": ["geohash", "latitude", "longitude"],
+        "required": [
+          "geohash",
+          "latitude",
+          "longitude"
+        ],
         "type": "object"
       },
       "ChartDataGeohashEncodeOptionsSchema": {
@@ -996,7 +1132,11 @@
             "type": "string"
           }
         },
-        "required": ["geohash", "latitude", "longitude"],
+        "required": [
+          "geohash",
+          "latitude",
+          "longitude"
+        ],
         "type": "object"
       },
       "ChartDataPivotOptionsSchema": {
@@ -1088,12 +1228,17 @@
                   }
                 }
               },
-              "groupby": ["country", "gender"]
+              "groupby": [
+                "country",
+                "gender"
+              ]
             },
             "type": "object"
           }
         },
-        "required": ["operation"],
+        "required": [
+          "operation"
+        ],
         "type": "object"
       },
       "ChartDataProphetOptionsSchema": {
@@ -1101,9 +1246,8 @@
           "confidence_interval": {
             "description": "Width of predicted confidence interval",
             "example": 0.8,
-            "format": "float",
-            "maximum": 1,
-            "minimum": 0,
+            "maximum": 1.0,
+            "minimum": 0.0,
             "type": "number"
           },
           "monthly_seasonality": {
@@ -1113,7 +1257,6 @@
           "periods": {
             "description": "Time periods (in units of `time_grain`) to predict into the future",
             "example": 7,
-            "format": "int32",
             "type": "integer"
           },
           "time_grain": {
@@ -1137,7 +1280,12 @@
               "1969-12-28T00:00:00Z/P1W",
               "1969-12-29T00:00:00Z/P1W",
               "P1W/1970-01-03T00:00:00Z",
-              "P1W/1970-01-04T00:00:00Z"
+              "P1W/1970-01-04T00:00:00Z",
+              "PT2H",
+              "PT4H",
+              "PT8H",
+              "PT10H",
+              "PT12H"
             ],
             "example": "P1D",
             "type": "string"
@@ -1151,14 +1299,17 @@
             "example": false
           }
         },
-        "required": ["confidence_interval", "periods", "time_grain"],
+        "required": [
+          "confidence_interval",
+          "periods",
+          "time_grain"
+        ],
         "type": "object"
       },
       "ChartDataQueryContextSchema": {
         "properties": {
           "custom_cache_timeout": {
             "description": "Override the default cache timeout",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1179,8 +1330,25 @@
             },
             "type": "array"
           },
-          "result_format": {},
-          "result_type": {}
+          "result_format": {
+            "enum": [
+              "csv",
+              "json",
+              "xlsx"
+            ]
+          },
+          "result_type": {
+            "enum": [
+              "columns",
+              "full",
+              "query",
+              "results",
+              "samples",
+              "timegrains",
+              "post_processed",
+              "drill_detail"
+            ]
+          }
         },
         "type": "object"
       },
@@ -1238,11 +1406,12 @@
             "type": "array"
           },
           "granularity": {
-            "description": "Name of temporal column used for time filtering.",
+            "description": "Name of temporal column used for time filtering. ",
             "nullable": true,
             "type": "string"
           },
           "granularity_sqla": {
+            "deprecated": true,
             "description": "Name of temporal column used for time filtering for SQL datasources. This field is deprecated, use `granularity` instead.",
             "nullable": true,
             "type": "string"
@@ -1254,6 +1423,7 @@
             "type": "array"
           },
           "having": {
+            "deprecated": true,
             "description": "HAVING clause to be added to aggregate queries using AND operator. This field is deprecated and should be passed to `extras`.",
             "nullable": true,
             "type": "string"
@@ -1282,8 +1452,14 @@
           "orderby": {
             "description": "Expects a list of lists where the first element is the column name which to sort by, and the second element is a boolean.",
             "example": [
-              ["my_col_1", false],
-              ["my_col_2", true]
+              [
+                "my_col_1",
+                false
+              ],
+              [
+                "my_col_2",
+                true
+              ]
             ],
             "items": {},
             "nullable": true,
@@ -1303,18 +1479,26 @@
             "type": "array"
           },
           "result_type": {
+            "enum": [
+              "columns",
+              "full",
+              "query",
+              "results",
+              "samples",
+              "timegrains",
+              "post_processed",
+              "drill_detail"
+            ],
             "nullable": true
           },
           "row_limit": {
             "description": "Maximum row count (0=disabled). Default: `config[\"ROW_LIMIT\"]`",
-            "format": "int32",
             "minimum": 0,
             "nullable": true,
             "type": "integer"
           },
           "row_offset": {
             "description": "Number of rows to skip. Default: `0`",
-            "format": "int32",
             "minimum": 0,
             "nullable": true,
             "type": "integer"
@@ -1327,7 +1511,6 @@
           },
           "series_limit": {
             "description": "Maximum number of series. Requires `series` and `series_limit_metric` to be set.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1355,7 +1538,6 @@
           },
           "timeseries_limit": {
             "description": "Maximum row count for timeseries queries. This field is deprecated, use `series_limit` instead.Default: `0`",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1368,11 +1550,12 @@
               "description": "The value of the query parameter",
               "type": "string"
             },
-            "description": "Optional query parameters passed to a dashboard or Explore view",
+            "description": "Optional query parameters passed to a dashboard or Explore  view",
             "nullable": true,
             "type": "object"
           },
           "where": {
+            "deprecated": true,
             "description": "WHERE clause to be added to queries using AND operator.This field is deprecated and should be passed to `extras`.",
             "nullable": true,
             "type": "string"
@@ -1407,7 +1590,6 @@
           },
           "cache_timeout": {
             "description": "Cache timeout in following order: custom timeout, datasource timeout, cache default timeout, config default cache timeout.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1426,7 +1608,6 @@
           "coltypes": {
             "description": "A list of generic data types of each column",
             "items": {
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -1445,7 +1626,6 @@
           },
           "from_dttm": {
             "description": "Start timestamp of time range",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1466,7 +1646,6 @@
           },
           "rowcount": {
             "description": "Amount of rows in result set",
-            "format": "int32",
             "type": "integer"
           },
           "stacktrace": {
@@ -1489,7 +1668,6 @@
           },
           "to_dttm": {
             "description": "End timestamp of time range",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           }
@@ -1518,7 +1696,6 @@
       "ChartDataRestApi.get": {
         "properties": {
           "cache_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1541,7 +1718,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_managed_externally": {
@@ -1563,6 +1739,9 @@
             "nullable": true,
             "type": "string"
           },
+          "tags": {
+            "$ref": "#/components/schemas/ChartDataRestApi.get.Tag"
+          },
           "thumbnail_url": {
             "readOnly": true
           },
@@ -1585,7 +1764,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "json_metadata": {
@@ -1595,6 +1773,27 @@
         },
         "type": "object"
       },
+      "ChartDataRestApi.get.Tag": {
+        "properties": {
+          "id": {
+            "type": "integer"
+          },
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
+            "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
+          }
+        },
+        "type": "object"
+      },
       "ChartDataRestApi.get.User": {
         "properties": {
           "first_name": {
@@ -1602,25 +1801,22 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
             "maxLength": 64,
             "type": "string"
-          },
-          "username": {
-            "maxLength": 64,
-            "type": "string"
           }
         },
-        "required": ["first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ChartDataRestApi.get_list": {
         "properties": {
           "cache_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1633,14 +1829,11 @@
             "type": "string"
           },
           "changed_by": {
-            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
+            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User3"
           },
           "changed_by_name": {
             "readOnly": true
           },
-          "changed_by_url": {
-            "readOnly": true
-          },
           "changed_on_delta_humanized": {
             "readOnly": true
           },
@@ -1651,14 +1844,11 @@
             "readOnly": true
           },
           "created_by": {
-            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User2"
+            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User"
           },
           "created_by_name": {
             "readOnly": true
           },
-          "created_by_url": {
-            "readOnly": true
-          },
           "created_on_delta_humanized": {
             "readOnly": true
           },
@@ -1666,7 +1856,6 @@
             "$ref": "#/components/schemas/ChartDataRestApi.get_list.Dashboard"
           },
           "datasource_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1695,7 +1884,6 @@
             "readOnly": true
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_managed_externally": {
@@ -1707,10 +1895,10 @@
             "type": "string"
           },
           "last_saved_by": {
-            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
+            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User2"
           },
           "owners": {
-            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User3"
+            "$ref": "#/components/schemas/ChartDataRestApi.get_list.User1"
           },
           "params": {
             "nullable": true,
@@ -1727,6 +1915,9 @@
           "table": {
             "$ref": "#/components/schemas/ChartDataRestApi.get_list.SqlaTable"
           },
+          "tags": {
+            "$ref": "#/components/schemas/ChartDataRestApi.get_list.Tag"
+          },
           "thumbnail_url": {
             "readOnly": true
           },
@@ -1749,7 +1940,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -1766,7 +1956,30 @@
             "type": "string"
           }
         },
-        "required": ["table_name"],
+        "required": [
+          "table_name"
+        ],
+        "type": "object"
+      },
+      "ChartDataRestApi.get_list.Tag": {
+        "properties": {
+          "id": {
+            "type": "integer"
+          },
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
+            "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
+          }
+        },
         "type": "object"
       },
       "ChartDataRestApi.get_list.User": {
@@ -1775,12 +1988,18 @@
             "maxLength": 64,
             "type": "string"
           },
+          "id": {
+            "type": "integer"
+          },
           "last_name": {
             "maxLength": 64,
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ChartDataRestApi.get_list.User1": {
@@ -1790,7 +2009,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -1798,7 +2016,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ChartDataRestApi.get_list.User2": {
@@ -1808,7 +2029,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -1816,7 +2036,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ChartDataRestApi.get_list.User3": {
@@ -1825,27 +2048,21 @@
             "maxLength": 64,
             "type": "string"
           },
-          "id": {
-            "format": "int32",
-            "type": "integer"
-          },
           "last_name": {
             "maxLength": 64,
             "type": "string"
-          },
-          "username": {
-            "maxLength": 64,
-            "type": "string"
           }
         },
-        "required": ["first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ChartDataRestApi.post": {
         "properties": {
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1862,14 +2079,12 @@
           "dashboards": {
             "items": {
               "description": "A list of dashboards to include this new chart to.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
           },
           "datasource_id": {
             "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
-            "format": "int32",
             "type": "integer"
           },
           "datasource_name": {
@@ -1905,7 +2120,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -1933,20 +2147,27 @@
           },
           "viz_type": {
             "description": "The type of chart visualization used.",
-            "example": ["bar", "area", "table"],
+            "example": [
+              "bar",
+              "area",
+              "table"
+            ],
             "maxLength": 250,
             "minLength": 0,
             "type": "string"
           }
         },
-        "required": ["datasource_id", "datasource_type", "slice_name"],
+        "required": [
+          "datasource_id",
+          "datasource_type",
+          "slice_name"
+        ],
         "type": "object"
       },
       "ChartDataRestApi.put": {
         "properties": {
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -1963,14 +2184,12 @@
           "dashboards": {
             "items": {
               "description": "A list of dashboards to include this new chart to.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
           },
           "datasource_id": {
             "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -2003,7 +2222,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -2030,9 +2248,19 @@
             "nullable": true,
             "type": "string"
           },
+          "tags": {
+            "items": {
+              "$ref": "#/components/schemas/Tag"
+            },
+            "type": "array"
+          },
           "viz_type": {
             "description": "The type of chart visualization used.",
-            "example": ["bar", "area", "table"],
+            "example": [
+              "bar",
+              "area",
+              "table"
+            ],
             "maxLength": 250,
             "minLength": 0,
             "nullable": true,
@@ -2044,14 +2272,13 @@
       "ChartDataRollingOptionsSchema": {
         "properties": {
           "center": {
-            "description": "Should the label be at the center of the window. Default: `false`",
+            "description": "Should the label be at the center of the window.Default: `false`",
             "example": false,
             "type": "boolean"
           },
           "min_periods": {
             "description": "The minimum amount of periods required for a row to be included in the result set.",
             "example": 7,
-            "format": "int32",
             "type": "integer"
           },
           "rolling_type": {
@@ -2088,7 +2315,7 @@
             "type": "object"
           },
           "win_type": {
-            "description": "Type of window function. See [SciPy window functions](https://docs.scipy.org/doc/scipy/reference/signal.windows.html#module-scipy.signal.windows) for more details. Some window functions require passing additional parameters to `rolling_type_options`. For instance, to use `gaussian`, the parameter `std` needs to be provided.",
+            "description": "Type of window function. See [SciPy window functions](https://docs.scipy.org/doc/scipy/reference /signal.windows.html#module-scipy.signal.windows) for more details. Some window functions require passing additional parameters to `rolling_type_options`. For instance, to use `gaussian`, the parameter `std` needs to be provided.",
             "enum": [
               "boxcar",
               "triang",
@@ -2111,18 +2338,24 @@
           "window": {
             "description": "Size of the rolling window in days.",
             "example": 7,
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["rolling_type", "window"],
+        "required": [
+          "rolling_type",
+          "window"
+        ],
         "type": "object"
       },
       "ChartDataSelectOptionsSchema": {
         "properties": {
           "columns": {
             "description": "Columns which to select from the input data, in the desired order. If columns are renamed, the original column name should be referenced here.",
-            "example": ["country", "gender", "age"],
+            "example": [
+              "country",
+              "gender",
+              "age"
+            ],
             "items": {
               "type": "string"
             },
@@ -2130,7 +2363,9 @@
           },
           "exclude": {
             "description": "Columns to exclude from selection.",
-            "example": ["my_temp_column"],
+            "example": [
+              "my_temp_column"
+            ],
             "items": {
               "type": "string"
             },
@@ -2175,14 +2410,15 @@
             "type": "object"
           }
         },
-        "required": ["columns"],
+        "required": [
+          "columns"
+        ],
         "type": "object"
       },
       "ChartEntityResponseSchema": {
         "properties": {
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
-            "format": "int32",
             "type": "integer"
           },
           "certification_details": {
@@ -2195,6 +2431,7 @@
           },
           "changed_on": {
             "description": "The ISO date that the chart was last changed.",
+            "format": "date-time",
             "type": "string"
           },
           "description": {
@@ -2211,7 +2448,6 @@
           },
           "id": {
             "description": "The id of the chart.",
-            "format": "int32",
             "type": "integer"
           },
           "slice_name": {
@@ -2229,7 +2465,6 @@
         "properties": {
           "id": {
             "description": "The Chart id",
-            "format": "int32",
             "type": "integer"
           },
           "value": {
@@ -2243,12 +2478,10 @@
         "properties": {
           "datasource_id": {
             "description": "The datasource identifier",
-            "format": "int32",
             "type": "integer"
           },
           "datasource_type": {
             "description": "The datasource type",
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -2270,7 +2503,6 @@
         "properties": {
           "count": {
             "description": "The total number of datasources",
-            "format": "int32",
             "type": "integer"
           },
           "result": {
@@ -2282,7 +2514,6 @@
       "ChartRestApi.get": {
         "properties": {
           "cache_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -2305,7 +2536,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_managed_externally": {
@@ -2327,6 +2557,9 @@
             "nullable": true,
             "type": "string"
           },
+          "tags": {
+            "$ref": "#/components/schemas/ChartRestApi.get.Tag"
+          },
           "thumbnail_url": {
             "readOnly": true
           },
@@ -2349,7 +2582,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "json_metadata": {
@@ -2359,6 +2591,27 @@
         },
         "type": "object"
       },
+      "ChartRestApi.get.Tag": {
+        "properties": {
+          "id": {
+            "type": "integer"
+          },
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
+            "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
+          }
+        },
+        "type": "object"
+      },
       "ChartRestApi.get.User": {
         "properties": {
           "first_name": {
@@ -2366,25 +2619,22 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
             "maxLength": 64,
             "type": "string"
-          },
-          "username": {
-            "maxLength": 64,
-            "type": "string"
           }
         },
-        "required": ["first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ChartRestApi.get_list": {
         "properties": {
           "cache_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -2397,14 +2647,11 @@
             "type": "string"
           },
           "changed_by": {
-            "$ref": "#/components/schemas/ChartRestApi.get_list.User"
+            "$ref": "#/components/schemas/ChartRestApi.get_list.User3"
           },
           "changed_by_name": {
             "readOnly": true
           },
-          "changed_by_url": {
-            "readOnly": true
-          },
           "changed_on_delta_humanized": {
             "readOnly": true
           },
@@ -2415,14 +2662,11 @@
             "readOnly": true
           },
           "created_by": {
-            "$ref": "#/components/schemas/ChartRestApi.get_list.User2"
+            "$ref": "#/components/schemas/ChartRestApi.get_list.User"
           },
           "created_by_name": {
             "readOnly": true
           },
-          "created_by_url": {
-            "readOnly": true
-          },
           "created_on_delta_humanized": {
             "readOnly": true
           },
@@ -2430,7 +2674,6 @@
             "$ref": "#/components/schemas/ChartRestApi.get_list.Dashboard"
           },
           "datasource_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -2459,7 +2702,6 @@
             "readOnly": true
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_managed_externally": {
@@ -2471,10 +2713,10 @@
             "type": "string"
           },
           "last_saved_by": {
-            "$ref": "#/components/schemas/ChartRestApi.get_list.User1"
+            "$ref": "#/components/schemas/ChartRestApi.get_list.User2"
           },
           "owners": {
-            "$ref": "#/components/schemas/ChartRestApi.get_list.User3"
+            "$ref": "#/components/schemas/ChartRestApi.get_list.User1"
           },
           "params": {
             "nullable": true,
@@ -2491,6 +2733,9 @@
           "table": {
             "$ref": "#/components/schemas/ChartRestApi.get_list.SqlaTable"
           },
+          "tags": {
+            "$ref": "#/components/schemas/ChartRestApi.get_list.Tag"
+          },
           "thumbnail_url": {
             "readOnly": true
           },
@@ -2513,7 +2758,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -2530,31 +2774,39 @@
             "type": "string"
           }
         },
-        "required": ["table_name"],
+        "required": [
+          "table_name"
+        ],
         "type": "object"
       },
-      "ChartRestApi.get_list.User": {
+      "ChartRestApi.get_list.Tag": {
         "properties": {
-          "first_name": {
-            "maxLength": 64,
-            "type": "string"
+          "id": {
+            "type": "integer"
           },
-          "last_name": {
-            "maxLength": 64,
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
             "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
           }
         },
-        "required": ["first_name", "last_name"],
         "type": "object"
       },
-      "ChartRestApi.get_list.User1": {
+      "ChartRestApi.get_list.User": {
         "properties": {
           "first_name": {
             "maxLength": 64,
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -2562,17 +2814,19 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
-      "ChartRestApi.get_list.User2": {
+      "ChartRestApi.get_list.User1": {
         "properties": {
           "first_name": {
             "maxLength": 64,
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -2580,36 +2834,53 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
-      "ChartRestApi.get_list.User3": {
+      "ChartRestApi.get_list.User2": {
         "properties": {
           "first_name": {
             "maxLength": 64,
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
             "maxLength": 64,
             "type": "string"
+          }
+        },
+        "required": [
+          "first_name",
+          "last_name"
+        ],
+        "type": "object"
+      },
+      "ChartRestApi.get_list.User3": {
+        "properties": {
+          "first_name": {
+            "maxLength": 64,
+            "type": "string"
           },
-          "username": {
+          "last_name": {
             "maxLength": 64,
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ChartRestApi.post": {
         "properties": {
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -2626,14 +2897,12 @@
           "dashboards": {
             "items": {
               "description": "A list of dashboards to include this new chart to.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
           },
           "datasource_id": {
             "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
-            "format": "int32",
             "type": "integer"
           },
           "datasource_name": {
@@ -2669,7 +2938,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -2697,20 +2965,27 @@
           },
           "viz_type": {
             "description": "The type of chart visualization used.",
-            "example": ["bar", "area", "table"],
+            "example": [
+              "bar",
+              "area",
+              "table"
+            ],
             "maxLength": 250,
             "minLength": 0,
             "type": "string"
           }
         },
-        "required": ["datasource_id", "datasource_type", "slice_name"],
+        "required": [
+          "datasource_id",
+          "datasource_type",
+          "slice_name"
+        ],
         "type": "object"
       },
       "ChartRestApi.put": {
         "properties": {
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for this chart. Note this defaults to the datasource/table timeout if undefined.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -2727,14 +3002,12 @@
           "dashboards": {
             "items": {
               "description": "A list of dashboards to include this new chart to.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
           },
           "datasource_id": {
             "description": "The id of the dataset/datasource this new chart will use. A complete datasource identification needs `datasouce_id` and `datasource_type`.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -2767,7 +3040,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this chart. If left empty you will be one of the owners of the chart.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -2794,9 +3066,19 @@
             "nullable": true,
             "type": "string"
           },
+          "tags": {
+            "items": {
+              "$ref": "#/components/schemas/Tag"
+            },
+            "type": "array"
+          },
           "viz_type": {
             "description": "The type of chart visualization used.",
-            "example": ["bar", "area", "table"],
+            "example": [
+              "bar",
+              "area",
+              "table"
+            ],
             "maxLength": 250,
             "minLength": 0,
             "nullable": true,
@@ -2815,7 +3097,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "template_name": {
@@ -2833,7 +3114,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -2841,19 +3121,22 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "CssTemplateRestApi.get_list": {
         "properties": {
           "changed_by": {
-            "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User"
+            "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User1"
           },
           "changed_on_delta_humanized": {
             "readOnly": true
           },
           "created_by": {
-            "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User1"
+            "$ref": "#/components/schemas/CssTemplateRestApi.get_list.User"
           },
           "created_on": {
             "format": "date-time",
@@ -2865,7 +3148,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "template_name": {
@@ -2883,7 +3165,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -2891,7 +3172,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "CssTemplateRestApi.get_list.User1": {
@@ -2901,7 +3185,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -2909,7 +3192,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "CssTemplateRestApi.post": {
@@ -2940,10 +3226,36 @@
         },
         "type": "object"
       },
+      "DashboardCopySchema": {
+        "properties": {
+          "css": {
+            "description": "Override CSS for the dashboard.",
+            "type": "string"
+          },
+          "dashboard_title": {
+            "description": "A title for the dashboard.",
+            "maxLength": 500,
+            "minLength": 0,
+            "nullable": true,
+            "type": "string"
+          },
+          "duplicate_slices": {
+            "description": "Whether or not to also copy all charts on the dashboard",
+            "type": "boolean"
+          },
+          "json_metadata": {
+            "description": "This JSON object is generated dynamically when clicking the save or overwrite button in the dashboard view. It is exposed here for reference and for power users who may want to alter  specific parameters.",
+            "type": "string"
+          }
+        },
+        "required": [
+          "json_metadata"
+        ],
+        "type": "object"
+      },
       "DashboardDatasetSchema": {
         "properties": {
           "cache_timeout": {
-            "format": "int32",
             "type": "integer"
           },
           "column_formats": {
@@ -2951,7 +3263,6 @@
           },
           "column_types": {
             "items": {
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -2962,6 +3273,9 @@
             },
             "type": "array"
           },
+          "currency_formats": {
+            "type": "object"
+          },
           "database": {
             "$ref": "#/components/schemas/Database"
           },
@@ -2996,7 +3310,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_sqllab_view": {
@@ -3015,7 +3328,6 @@
             "type": "string"
           },
           "offset": {
-            "format": "int32",
             "type": "integer"
           },
           "order_by_choices": {
@@ -3094,9 +3406,6 @@
           "changed_by_name": {
             "type": "string"
           },
-          "changed_by_url": {
-            "type": "string"
-          },
           "changed_on": {
             "format": "date-time",
             "type": "string"
@@ -3120,7 +3429,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_managed_externally": {
@@ -3153,6 +3461,12 @@
           "slug": {
             "type": "string"
           },
+          "tags": {
+            "items": {
+              "$ref": "#/components/schemas/Tag1"
+            },
+            "type": "array"
+          },
           "thumbnail_url": {
             "type": "string"
           },
@@ -3162,7 +3476,7 @@
         },
         "type": "object"
       },
-      "DashboardPermalinkPostSchema": {
+      "DashboardPermalinkStateSchema": {
         "properties": {
           "activeTabs": {
             "description": "Current active dashboard tabs",
@@ -3197,7 +3511,6 @@
       "DashboardRestApi.get": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -3214,14 +3527,11 @@
             "type": "string"
           },
           "changed_by": {
-            "$ref": "#/components/schemas/DashboardRestApi.get_list.User"
+            "$ref": "#/components/schemas/DashboardRestApi.get_list.User2"
           },
           "changed_by_name": {
             "readOnly": true
           },
-          "changed_by_url": {
-            "readOnly": true
-          },
           "changed_on_delta_humanized": {
             "readOnly": true
           },
@@ -3229,7 +3539,7 @@
             "readOnly": true
           },
           "created_by": {
-            "$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
+            "$ref": "#/components/schemas/DashboardRestApi.get_list.User"
           },
           "created_on_delta_humanized": {
             "readOnly": true
@@ -3244,7 +3554,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_managed_externally": {
@@ -3255,7 +3564,7 @@
             "type": "string"
           },
           "owners": {
-            "$ref": "#/components/schemas/DashboardRestApi.get_list.User2"
+            "$ref": "#/components/schemas/DashboardRestApi.get_list.User1"
           },
           "position_json": {
             "nullable": true,
@@ -3276,6 +3585,9 @@
           "status": {
             "readOnly": true
           },
+          "tags": {
+            "$ref": "#/components/schemas/DashboardRestApi.get_list.Tag"
+          },
           "thumbnail_url": {
             "readOnly": true
           },
@@ -3288,7 +3600,6 @@
       "DashboardRestApi.get_list.Role": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "name": {
@@ -3296,7 +3607,30 @@
             "type": "string"
           }
         },
-        "required": ["name"],
+        "required": [
+          "name"
+        ],
+        "type": "object"
+      },
+      "DashboardRestApi.get_list.Tag": {
+        "properties": {
+          "id": {
+            "type": "integer"
+          },
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
+            "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
+          }
+        },
         "type": "object"
       },
       "DashboardRestApi.get_list.User": {
@@ -3306,19 +3640,17 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
             "maxLength": 64,
             "type": "string"
-          },
-          "username": {
-            "maxLength": 64,
-            "type": "string"
           }
         },
-        "required": ["first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DashboardRestApi.get_list.User1": {
@@ -3328,7 +3660,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -3336,33 +3667,30 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DashboardRestApi.get_list.User2": {
         "properties": {
-          "email": {
-            "maxLength": 64,
-            "type": "string"
-          },
           "first_name": {
             "maxLength": 64,
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
             "maxLength": 64,
             "type": "string"
-          },
-          "username": {
-            "maxLength": 64,
-            "type": "string"
           }
         },
-        "required": ["email", "first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DashboardRestApi.post": {
@@ -3378,6 +3706,7 @@
             "type": "string"
           },
           "css": {
+            "description": "Override CSS for the dashboard.",
             "type": "string"
           },
           "dashboard_title": {
@@ -3402,7 +3731,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -3418,7 +3746,6 @@
           "roles": {
             "items": {
               "description": "Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -3473,7 +3800,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this dashboard. If left empty you will be one of the owners of the dashboard.",
-              "format": "int32",
               "nullable": true,
               "type": "integer"
             },
@@ -3492,7 +3818,6 @@
           "roles": {
             "items": {
               "description": "Roles is a list which defines access to the dashboard. These roles are always applied in addition to restrictions on dataset level access. If no roles defined then the dashboard is available to all roles.",
-              "format": "int32",
               "nullable": true,
               "type": "integer"
             },
@@ -3526,11 +3851,9 @@
             "type": "boolean"
           },
           "explore_database_id": {
-            "format": "int32",
             "type": "integer"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "name": {
@@ -3547,6 +3870,125 @@
         },
         "type": "object"
       },
+      "DatabaseConnectionSchema": {
+        "properties": {
+          "allow_ctas": {
+            "description": "Allow CREATE TABLE AS option in SQL Lab",
+            "type": "boolean"
+          },
+          "allow_cvas": {
+            "description": "Allow CREATE VIEW AS option in SQL Lab",
+            "type": "boolean"
+          },
+          "allow_dml": {
+            "description": "Allow users to run non-SELECT statements (UPDATE, DELETE, CREATE, ...) in SQL Lab",
+            "type": "boolean"
+          },
+          "allow_file_upload": {
+            "description": "Allow to upload CSV file data into this databaseIf selected, please set the schemas allowed for csv upload in Extra.",
+            "type": "boolean"
+          },
+          "allow_run_async": {
+            "description": "Operate the database in asynchronous mode, meaning that the queries are executed on remote workers as opposed to on the web server itself. This assumes that you have a Celery worker setup as well as a results backend. Refer to the installation docs for more information.",
+            "type": "boolean"
+          },
+          "backend": {
+            "description": "SQLAlchemy engine to use",
+            "nullable": true,
+            "type": "string"
+          },
+          "cache_timeout": {
+            "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
+            "nullable": true,
+            "type": "integer"
+          },
+          "configuration_method": {
+            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
+            "type": "string"
+          },
+          "database_name": {
+            "description": "A database name to identify this connection.",
+            "maxLength": 250,
+            "minLength": 1,
+            "nullable": true,
+            "type": "string"
+          },
+          "driver": {
+            "description": "SQLAlchemy driver to use",
+            "nullable": true,
+            "type": "string"
+          },
+          "engine_information": {
+            "additionalProperties": {},
+            "type": "object"
+          },
+          "expose_in_sqllab": {
+            "description": "Expose this database to SQLLab",
+            "type": "boolean"
+          },
+          "extra": {
+            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\ [...]
+            "type": "string"
+          },
+          "force_ctas_schema": {
+            "description": "When allowing CREATE TABLE AS option in SQL Lab, this option forces the table to be created in this schema",
+            "maxLength": 250,
+            "minLength": 0,
+            "nullable": true,
+            "type": "string"
+          },
+          "id": {
+            "description": "Database ID (for updates)",
+            "type": "integer"
+          },
+          "impersonate_user": {
+            "description": "If Presto, all the queries in SQL Lab are going to be executed as the currently logged on user who must have permission to run them.<br/>If Hive and hive.server2.enable.doAs is enabled, will run the queries as service account, but impersonate the currently logged on user via hive.server2.proxy.user property.",
+            "type": "boolean"
+          },
+          "is_managed_externally": {
+            "nullable": true,
+            "type": "boolean"
+          },
+          "masked_encrypted_extra": {
+            "description": "<p>JSON string containing additional connection configuration.<br>This is used to provide connection information for systems like Hive, Presto, and BigQuery, which do not conform to the username:password syntax normally used by SQLAlchemy.</p>",
+            "nullable": true,
+            "type": "string"
+          },
+          "parameters": {
+            "additionalProperties": {},
+            "description": "DB-specific parameters for configuration",
+            "type": "object"
+          },
+          "parameters_schema": {
+            "additionalProperties": {},
+            "description": "JSONSchema for configuring the database by parameters instead of SQLAlchemy URI",
+            "type": "object"
+          },
+          "server_cert": {
+            "description": "<p>Optional CA_BUNDLE contents to validate HTTPS requests. Only available on certain database engines.</p>",
+            "nullable": true,
+            "type": "string"
+          },
+          "sqlalchemy_uri": {
+            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
+            "maxLength": 1024,
+            "minLength": 1,
+            "type": "string"
+          },
+          "ssh_tunnel": {
+            "allOf": [
+              {
+                "$ref": "#/components/schemas/DatabaseSSHTunnel"
+              }
+            ],
+            "nullable": true
+          },
+          "uuid": {
+            "type": "string"
+          }
+        },
+        "type": "object"
+      },
       "DatabaseFunctionNamesResponse": {
         "properties": {
           "function_names": {
@@ -3561,7 +4003,6 @@
       "DatabaseRelatedChart": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "slice_name": {
@@ -3577,7 +4018,6 @@
         "properties": {
           "count": {
             "description": "Chart count",
-            "format": "int32",
             "type": "integer"
           },
           "result": {
@@ -3593,7 +4033,6 @@
       "DatabaseRelatedDashboard": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "json_metadata": {
@@ -3612,7 +4051,6 @@
         "properties": {
           "count": {
             "description": "Dashboard count",
-            "format": "int32",
             "type": "integer"
           },
           "result": {
@@ -3662,7 +4100,6 @@
             "readOnly": true
           },
           "cache_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -3685,17 +4122,12 @@
             "nullable": true,
             "type": "boolean"
           },
-          "extra": {
-            "nullable": true,
-            "type": "string"
-          },
           "force_ctas_schema": {
             "maxLength": 250,
             "nullable": true,
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "impersonate_user": {
@@ -3705,31 +4137,16 @@
           "is_managed_externally": {
             "type": "boolean"
           },
-          "masked_encrypted_extra": {
-            "readOnly": true
-          },
-          "parameters": {
-            "readOnly": true
-          },
-          "parameters_schema": {
-            "readOnly": true
-          },
-          "server_cert": {
-            "nullable": true,
-            "type": "string"
-          },
-          "sqlalchemy_uri": {
-            "maxLength": 1024,
-            "type": "string"
-          },
           "uuid": {
             "format": "uuid",
             "nullable": true,
             "type": "string"
           }
         },
-        "required": ["database_name", "sqlalchemy_uri"],
-        "type": "object"
+        "required": [
+          "database_name"
+        ],
+        "type": "object"
       },
       "DatabaseRestApi.get_list": {
         "properties": {
@@ -3803,7 +4220,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "uuid": {
@@ -3812,7 +4228,9 @@
             "type": "string"
           }
         },
-        "required": ["database_name"],
+        "required": [
+          "database_name"
+        ],
         "type": "object"
       },
       "DatabaseRestApi.get_list.User": {
@@ -3826,7 +4244,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DatabaseRestApi.post": {
@@ -3853,13 +4274,16 @@
           },
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "configuration_method": {
             "default": "sqlalchemy_form",
-            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri."
+            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
+            "enum": [
+              "sqlalchemy_form",
+              "dynamic_form"
+            ]
           },
           "database_name": {
             "description": "A database name to identify this connection.",
@@ -3886,7 +4310,7 @@
             "type": "string"
           },
           "extra": {
-            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata [...]
+            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\ [...]
             "type": "string"
           },
           "force_ctas_schema": {
@@ -3920,7 +4344,7 @@
             "type": "string"
           },
           "sqlalchemy_uri": {
-            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
+            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
             "maxLength": 1024,
             "minLength": 1,
             "type": "string"
@@ -3937,7 +4361,9 @@
             "type": "string"
           }
         },
-        "required": ["database_name"],
+        "required": [
+          "database_name"
+        ],
         "type": "object"
       },
       "DatabaseRestApi.put": {
@@ -3964,13 +4390,16 @@
           },
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for charts of this database. A timeout of 0 indicates that the cache never expires. Note this defaults to the global timeout if undefined.",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "configuration_method": {
             "default": "sqlalchemy_form",
-            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri."
+            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
+            "enum": [
+              "sqlalchemy_form",
+              "dynamic_form"
+            ]
           },
           "database_name": {
             "description": "A database name to identify this connection.",
@@ -3998,7 +4427,7 @@
             "type": "string"
           },
           "extra": {
-            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata [...]
+            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\ [...]
             "type": "string"
           },
           "force_ctas_schema": {
@@ -4032,7 +4461,7 @@
             "type": "string"
           },
           "sqlalchemy_uri": {
-            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
+            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
             "maxLength": 1024,
             "minLength": 0,
             "type": "string"
@@ -4044,6 +4473,9 @@
               }
             ],
             "nullable": true
+          },
+          "uuid": {
+            "type": "string"
           }
         },
         "type": "object"
@@ -4052,7 +4484,6 @@
         "properties": {
           "id": {
             "description": "SSH Tunnel ID (for updates)",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -4069,7 +4500,6 @@
             "type": "string"
           },
           "server_port": {
-            "format": "int32",
             "type": "integer"
           },
           "username": {
@@ -4111,7 +4541,11 @@
         "properties": {
           "configuration_method": {
             "default": "sqlalchemy_form",
-            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri."
+            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
+            "enum": [
+              "sqlalchemy_form",
+              "dynamic_form"
+            ]
           },
           "database_name": {
             "description": "A database name to identify this connection.",
@@ -4131,7 +4565,7 @@
             "type": "string"
           },
           "extra": {
-            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata [...]
+            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\ [...]
             "type": "string"
           },
           "impersonate_user": {
@@ -4154,7 +4588,7 @@
             "type": "string"
           },
           "sqlalchemy_uri": {
-            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
+            "description": "<p>Refer to the <a href=\"https://docs.sqlalchemy.org/en/rel_1_2/core/engines.html#database-urls\" rel=\"noopener noreferrer\">SqlAlchemy docs</a> for more information on how to structure your URI.</p>",
             "maxLength": 1024,
             "minLength": 1,
             "type": "string"
@@ -4180,7 +4614,11 @@
             "type": "object"
           },
           "configuration_method": {
-            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri."
+            "description": "Configuration_method is used on the frontend to inform the backend whether to explode parameters or to provide only a sqlalchemy_uri.",
+            "enum": [
+              "sqlalchemy_form",
+              "dynamic_form"
+            ]
           },
           "database_name": {
             "description": "A database name to identify this connection.",
@@ -4199,12 +4637,11 @@
             "type": "string"
           },
           "extra": {
-            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\">sqlalchemy.MetaData</a> call.<br>2. The <code>metadata [...]
+            "description": "<p>JSON string containing extra configuration elements.<br>1. The <code>engine_params</code> object gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine\" rel=\"noopener noreferrer\">sqlalchemy.create_engine</a> call, while the <code>metadata_params</code> gets unpacked into the <a href=\"https://docs.sqlalchemy.org/en/rel_1_0/core/metadata.html#sqlalchemy.schema.MetaData\" rel=\"noopener noreferrer\ [...]
             "type": "string"
           },
           "id": {
             "description": "Database ID (for updates)",
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -4230,14 +4667,16 @@
             "type": "string"
           }
         },
-        "required": ["configuration_method", "engine"],
+        "required": [
+          "configuration_method",
+          "engine"
+        ],
         "type": "object"
       },
       "Dataset": {
         "properties": {
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for this dataset.",
-            "format": "int32",
             "type": "integer"
           },
           "column_formats": {
@@ -4251,6 +4690,10 @@
             },
             "type": "array"
           },
+          "currency_formats": {
+            "description": "Currency formats.",
+            "type": "object"
+          },
           "database": {
             "description": "Database associated with the dataset.",
             "type": "object"
@@ -4303,7 +4746,6 @@
           },
           "id": {
             "description": "Dataset ID.",
-            "format": "int32",
             "type": "integer"
           },
           "is_sqllab_view": {
@@ -4327,7 +4769,6 @@
           },
           "offset": {
             "description": "Dataset offset.",
-            "format": "int32",
             "type": "integer"
           },
           "order_by_choices": {
@@ -4343,7 +4784,6 @@
           "owners": {
             "description": "List of owners identifiers",
             "items": {
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -4401,6 +4841,60 @@
         },
         "type": "object"
       },
+      "DatasetCacheWarmUpRequestSchema": {
+        "properties": {
+          "dashboard_id": {
+            "description": "The ID of the dashboard to get filters for when warming cache",
+            "type": "integer"
+          },
+          "db_name": {
+            "description": "The name of the database where the table is located",
+            "type": "string"
+          },
+          "extra_filters": {
+            "description": "Extra filters to apply when warming up cache",
+            "type": "string"
+          },
+          "table_name": {
+            "description": "The name of the table to warm up cache for",
+            "type": "string"
+          }
+        },
+        "required": [
+          "db_name",
+          "table_name"
+        ],
+        "type": "object"
+      },
+      "DatasetCacheWarmUpResponseSchema": {
+        "properties": {
+          "result": {
+            "description": "A list of each chart's warmup status and errors if any",
+            "items": {
+              "$ref": "#/components/schemas/DatasetCacheWarmUpResponseSingle"
+            },
+            "type": "array"
+          }
+        },
+        "type": "object"
+      },
+      "DatasetCacheWarmUpResponseSingle": {
+        "properties": {
+          "chart_id": {
+            "description": "The ID of the chart the status belongs to",
+            "type": "integer"
+          },
+          "viz_error": {
+            "description": "Error that occurred when warming cache for chart",
+            "type": "string"
+          },
+          "viz_status": {
+            "description": "Status of the underlying query for the viz",
+            "type": "string"
+          }
+        },
+        "type": "object"
+      },
       "DatasetColumnsPut": {
         "properties": {
           "advanced_data_type": {
@@ -4433,13 +4927,14 @@
             "type": "boolean"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_active": {
+            "nullable": true,
             "type": "boolean"
           },
           "is_dttm": {
+            "nullable": true,
             "type": "boolean"
           },
           "python_date_format": {
@@ -4462,13 +4957,14 @@
             "type": "string"
           }
         },
-        "required": ["column_name"],
+        "required": [
+          "column_name"
+        ],
         "type": "object"
       },
       "DatasetColumnsRestApi.get": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4477,7 +4973,6 @@
       "DatasetColumnsRestApi.get_list": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4486,7 +4981,6 @@
       "DatasetColumnsRestApi.post": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4495,7 +4989,6 @@
       "DatasetColumnsRestApi.put": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4504,7 +4997,6 @@
       "DatasetDuplicateSchema": {
         "properties": {
           "base_model_id": {
-            "format": "int32",
             "type": "integer"
           },
           "table_name": {
@@ -4513,13 +5005,15 @@
             "type": "string"
           }
         },
-        "required": ["base_model_id", "table_name"],
+        "required": [
+          "base_model_id",
+          "table_name"
+        ],
         "type": "object"
       },
       "DatasetMetricRestApi.get": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4528,7 +5022,6 @@
       "DatasetMetricRestApi.get_list": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4537,7 +5030,6 @@
       "DatasetMetricRestApi.post": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4546,7 +5038,6 @@
       "DatasetMetricRestApi.put": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -4554,6 +5045,12 @@
       },
       "DatasetMetricsPut": {
         "properties": {
+          "currency": {
+            "maxLength": 128,
+            "minLength": 1,
+            "nullable": true,
+            "type": "string"
+          },
           "d3format": {
             "maxLength": 128,
             "minLength": 1,
@@ -4572,7 +5069,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "metric_name": {
@@ -4600,13 +5096,15 @@
             "type": "string"
           }
         },
-        "required": ["expression", "metric_name"],
+        "required": [
+          "expression",
+          "metric_name"
+        ],
         "type": "object"
       },
       "DatasetRelatedChart": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "slice_name": {
@@ -4622,7 +5120,6 @@
         "properties": {
           "count": {
             "description": "Chart count",
-            "format": "int32",
             "type": "integer"
           },
           "result": {
@@ -4638,7 +5135,6 @@
       "DatasetRelatedDashboard": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "json_metadata": {
@@ -4657,7 +5153,6 @@
         "properties": {
           "count": {
             "description": "Dashboard count",
-            "format": "int32",
             "type": "integer"
           },
           "result": {
@@ -4684,12 +5179,11 @@
       "DatasetRestApi.get": {
         "properties": {
           "cache_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "changed_by": {
-            "$ref": "#/components/schemas/DatasetRestApi.get.User"
+            "$ref": "#/components/schemas/DatasetRestApi.get.User2"
           },
           "changed_on": {
             "format": "date-time",
@@ -4699,11 +5193,14 @@
           "changed_on_humanized": {
             "readOnly": true
           },
+          "column_formats": {
+            "readOnly": true
+          },
           "columns": {
             "$ref": "#/components/schemas/DatasetRestApi.get.TableColumn"
           },
           "created_by": {
-            "$ref": "#/components/schemas/DatasetRestApi.get.User1"
+            "$ref": "#/components/schemas/DatasetRestApi.get.User"
           },
           "created_on": {
             "format": "date-time",
@@ -4713,9 +5210,15 @@
           "created_on_humanized": {
             "readOnly": true
           },
+          "currency_formats": {
+            "readOnly": true
+          },
           "database": {
             "$ref": "#/components/schemas/DatasetRestApi.get.Database"
           },
+          "datasource_name": {
+            "readOnly": true
+          },
           "datasource_type": {
             "readOnly": true
           },
@@ -4739,8 +5242,10 @@
             "nullable": true,
             "type": "boolean"
           },
+          "granularity_sqla": {
+            "readOnly": true
+          },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_managed_externally": {
@@ -4761,13 +5266,18 @@
           "metrics": {
             "$ref": "#/components/schemas/DatasetRestApi.get.SqlMetric"
           },
+          "name": {
+            "readOnly": true
+          },
           "offset": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
+          "order_by_choices": {
+            "readOnly": true
+          },
           "owners": {
-            "$ref": "#/components/schemas/DatasetRestApi.get.User2"
+            "$ref": "#/components/schemas/DatasetRestApi.get.User1"
           },
           "schema": {
             "maxLength": 255,
@@ -4789,11 +5299,25 @@
             "nullable": true,
             "type": "string"
           },
+          "time_grain_sqla": {
+            "readOnly": true
+          },
+          "uid": {
+            "readOnly": true
+          },
           "url": {
             "readOnly": true
+          },
+          "verbose_map": {
+            "readOnly": true
           }
         },
-        "required": ["columns", "database", "metrics", "table_name"],
+        "required": [
+          "columns",
+          "database",
+          "metrics",
+          "table_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get.Database": {
@@ -4806,11 +5330,12 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["database_name"],
+        "required": [
+          "database_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get.SqlMetric": {
@@ -4825,6 +5350,11 @@
             "nullable": true,
             "type": "string"
           },
+          "currency": {
+            "maxLength": 128,
+            "nullable": true,
+            "type": "string"
+          },
           "d3format": {
             "maxLength": 128,
             "nullable": true,
@@ -4842,7 +5372,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "metric_name": {
@@ -4864,7 +5393,10 @@
             "type": "string"
           }
         },
-        "required": ["expression", "metric_name"],
+        "required": [
+          "expression",
+          "metric_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get.TableColumn": {
@@ -4909,7 +5441,6 @@
             "type": "boolean"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "is_active": {
@@ -4943,7 +5474,9 @@
             "type": "string"
           }
         },
-        "required": ["column_name"],
+        "required": [
+          "column_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get.User": {
@@ -4957,7 +5490,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get.User1": {
@@ -4966,12 +5502,18 @@
             "maxLength": 64,
             "type": "string"
           },
+          "id": {
+            "type": "integer"
+          },
           "last_name": {
             "maxLength": 64,
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get.User2": {
@@ -4980,33 +5522,25 @@
             "maxLength": 64,
             "type": "string"
           },
-          "id": {
-            "format": "int32",
-            "type": "integer"
-          },
           "last_name": {
             "maxLength": 64,
             "type": "string"
-          },
-          "username": {
-            "maxLength": 64,
-            "type": "string"
           }
         },
-        "required": ["first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get_list": {
         "properties": {
           "changed_by": {
-            "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
+            "$ref": "#/components/schemas/DatasetRestApi.get_list.User1"
           },
           "changed_by_name": {
             "readOnly": true
           },
-          "changed_by_url": {
-            "readOnly": true
-          },
           "changed_on_delta_humanized": {
             "readOnly": true
           },
@@ -5035,14 +5569,13 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "kind": {
             "readOnly": true
           },
           "owners": {
-            "$ref": "#/components/schemas/DatasetRestApi.get_list.User1"
+            "$ref": "#/components/schemas/DatasetRestApi.get_list.User"
           },
           "schema": {
             "maxLength": 255,
@@ -5058,7 +5591,10 @@
             "type": "string"
           }
         },
-        "required": ["database", "table_name"],
+        "required": [
+          "database",
+          "table_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get_list.Database": {
@@ -5068,11 +5604,12 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["database_name"],
+        "required": [
+          "database_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get_list.User": {
@@ -5081,12 +5618,18 @@
             "maxLength": 64,
             "type": "string"
           },
-          "username": {
+          "id": {
+            "type": "integer"
+          },
+          "last_name": {
             "maxLength": 64,
             "type": "string"
           }
         },
-        "required": ["first_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.get_list.User1": {
@@ -5095,26 +5638,20 @@
             "maxLength": 64,
             "type": "string"
           },
-          "id": {
-            "format": "int32",
-            "type": "integer"
-          },
           "last_name": {
             "maxLength": 64,
             "type": "string"
-          },
-          "username": {
-            "maxLength": 64,
-            "type": "string"
           }
         },
-        "required": ["first_name", "last_name", "username"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.post": {
         "properties": {
           "database": {
-            "format": "int32",
             "type": "integer"
           },
           "external_url": {
@@ -5127,7 +5664,6 @@
           },
           "owners": {
             "items": {
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -5135,6 +5671,7 @@
           "schema": {
             "maxLength": 250,
             "minLength": 0,
+            "nullable": true,
             "type": "string"
           },
           "sql": {
@@ -5147,13 +5684,15 @@
             "type": "string"
           }
         },
-        "required": ["database", "table_name"],
+        "required": [
+          "database",
+          "table_name"
+        ],
         "type": "object"
       },
       "DatasetRestApi.put": {
         "properties": {
           "cache_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5164,7 +5703,6 @@
             "type": "array"
           },
           "database_id": {
-            "format": "int32",
             "type": "integer"
           },
           "default_endpoint": {
@@ -5212,13 +5750,11 @@
             "type": "array"
           },
           "offset": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "owners": {
             "items": {
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -5273,14 +5809,15 @@
             "type": "string"
           }
         },
-        "required": ["datasource_type"],
+        "required": [
+          "datasource_type"
+        ],
         "type": "object"
       },
       "DistincResponseSchema": {
         "properties": {
           "count": {
             "description": "The total number of distinct values",
-            "format": "int32",
             "type": "integer"
           },
           "result": {
@@ -5310,7 +5847,9 @@
             "type": "array"
           }
         },
-        "required": ["allowed_domains"],
+        "required": [
+          "allowed_domains"
+        ],
         "type": "object"
       },
       "EmbeddedDashboardResponseSchema": {
@@ -5322,7 +5861,7 @@
             "type": "array"
           },
           "changed_by": {
-            "$ref": "#/components/schemas/User"
+            "$ref": "#/components/schemas/User1"
           },
           "changed_on": {
             "format": "date-time",
@@ -5373,6 +5912,32 @@
         },
         "type": "object"
       },
+      "EstimateQueryCostSchema": {
+        "properties": {
+          "database_id": {
+            "description": "The database id",
+            "type": "integer"
+          },
+          "schema": {
+            "description": "The database schema",
+            "nullable": true,
+            "type": "string"
+          },
+          "sql": {
+            "description": "The SQL query to estimate",
+            "type": "string"
+          },
+          "template_params": {
+            "description": "The SQL query template params",
+            "type": "object"
+          }
+        },
+        "required": [
+          "database_id",
+          "sql"
+        ],
+        "type": "object"
+      },
       "ExecutePayloadSchema": {
         "properties": {
           "client_id": {
@@ -5384,7 +5949,6 @@
             "type": "string"
           },
           "database_id": {
-            "format": "int32",
             "type": "integer"
           },
           "expand_data": {
@@ -5396,7 +5960,6 @@
             "type": "boolean"
           },
           "queryLimit": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5432,7 +5995,10 @@
             "type": "string"
           }
         },
-        "required": ["database_id", "sql"],
+        "required": [
+          "database_id",
+          "sql"
+        ],
         "type": "object"
       },
       "ExploreContextSchema": {
@@ -5454,7 +6020,7 @@
         },
         "type": "object"
       },
-      "ExplorePermalinkPostSchema": {
+      "ExplorePermalinkStateSchema": {
         "properties": {
           "formData": {
             "description": "Chart form data",
@@ -5470,13 +6036,14 @@
             "type": "array"
           }
         },
-        "required": ["formData"],
+        "required": [
+          "formData"
+        ],
         "type": "object"
       },
       "FilterSetRestApi.get": {
         "properties": {
           "dashboard_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5485,7 +6052,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "name": {
@@ -5493,7 +6059,6 @@
             "type": "string"
           },
           "owner_id": {
-            "format": "int32",
             "type": "integer"
           },
           "owner_type": {
@@ -5504,13 +6069,16 @@
             "readOnly": true
           }
         },
-        "required": ["name", "owner_id", "owner_type"],
+        "required": [
+          "name",
+          "owner_id",
+          "owner_type"
+        ],
         "type": "object"
       },
       "FilterSetRestApi.get_list": {
         "properties": {
           "changed_by_fk": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5520,7 +6088,6 @@
             "type": "string"
           },
           "created_by_fk": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5530,7 +6097,6 @@
             "type": "string"
           },
           "dashboard_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5539,7 +6105,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "name": {
@@ -5547,7 +6112,6 @@
             "type": "string"
           },
           "owner_id": {
-            "format": "int32",
             "type": "integer"
           },
           "owner_type": {
@@ -5558,7 +6122,11 @@
             "readOnly": true
           }
         },
-        "required": ["name", "owner_id", "owner_type"],
+        "required": [
+          "name",
+          "owner_id",
+          "owner_type"
+        ],
         "type": "object"
       },
       "FilterSetRestApi.post": {
@@ -5578,15 +6146,21 @@
             "type": "string"
           },
           "owner_id": {
-            "format": "int32",
             "type": "integer"
           },
           "owner_type": {
-            "enum": ["User", "Dashboard"],
+            "enum": [
+              "User",
+              "Dashboard"
+            ],
             "type": "string"
           }
         },
-        "required": ["json_metadata", "name", "owner_type"],
+        "required": [
+          "json_metadata",
+          "name",
+          "owner_type"
+        ],
         "type": "object"
       },
       "FilterSetRestApi.put": {
@@ -5605,7 +6179,9 @@
             "type": "string"
           },
           "owner_type": {
-            "enum": ["Dashboard"],
+            "enum": [
+              "Dashboard"
+            ],
             "type": "string"
           }
         },
@@ -5615,12 +6191,10 @@
         "properties": {
           "chart_id": {
             "description": "The chart ID",
-            "format": "int32",
             "type": "integer"
           },
           "datasource_id": {
             "description": "The datasource ID",
-            "format": "int32",
             "type": "integer"
           },
           "datasource_type": {
@@ -5640,19 +6214,21 @@
             "type": "string"
           }
         },
-        "required": ["datasource_id", "datasource_type", "form_data"],
+        "required": [
+          "datasource_id",
+          "datasource_type",
+          "form_data"
+        ],
         "type": "object"
       },
       "FormDataPutSchema": {
         "properties": {
           "chart_id": {
             "description": "The chart ID",
-            "format": "int32",
             "type": "integer"
           },
           "datasource_id": {
             "description": "The datasource ID",
-            "format": "int32",
             "type": "integer"
           },
           "datasource_type": {
@@ -5672,7 +6248,11 @@
             "type": "string"
           }
         },
-        "required": ["datasource_id", "datasource_type", "form_data"],
+        "required": [
+          "datasource_id",
+          "datasource_type",
+          "form_data"
+        ],
         "type": "object"
       },
       "GetFavStarIdsSchema": {
@@ -5687,6 +6267,34 @@
         },
         "type": "object"
       },
+      "GetOrCreateDatasetSchema": {
+        "properties": {
+          "database_id": {
+            "description": "ID of database table belongs to",
+            "type": "integer"
+          },
+          "schema": {
+            "description": "The schema the table belongs to",
+            "maxLength": 250,
+            "minLength": 0,
+            "nullable": true,
+            "type": "string"
+          },
+          "table_name": {
+            "description": "Name of table",
+            "type": "string"
+          },
+          "template_params": {
+            "description": "Template params for the table",
+            "type": "string"
+          }
+        },
+        "required": [
+          "database_id",
+          "table_name"
+        ],
+        "type": "object"
+      },
       "GuestTokenCreate": {
         "properties": {
           "resources": {
@@ -5702,10 +6310,13 @@
             "type": "array"
           },
           "user": {
-            "$ref": "#/components/schemas/User1"
+            "$ref": "#/components/schemas/User2"
           }
         },
-        "required": ["resources", "rls"],
+        "required": [
+          "resources",
+          "rls"
+        ],
         "type": "object"
       },
       "LogRestApi.get": {
@@ -5716,7 +6327,6 @@
             "type": "string"
           },
           "dashboard_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5726,7 +6336,6 @@
             "type": "string"
           },
           "duration_ms": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5740,7 +6349,6 @@
             "type": "string"
           },
           "slice_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5748,7 +6356,6 @@
             "$ref": "#/components/schemas/LogRestApi.get.User"
           },
           "user_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           }
@@ -5762,7 +6369,9 @@
             "type": "string"
           }
         },
-        "required": ["username"],
+        "required": [
+          "username"
+        ],
         "type": "object"
       },
       "LogRestApi.get_list": {
@@ -5773,7 +6382,6 @@
             "type": "string"
           },
           "dashboard_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5783,7 +6391,6 @@
             "type": "string"
           },
           "duration_ms": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5797,7 +6404,6 @@
             "type": "string"
           },
           "slice_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5805,7 +6411,6 @@
             "$ref": "#/components/schemas/LogRestApi.get_list.User"
           },
           "user_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           }
@@ -5819,13 +6424,14 @@
             "type": "string"
           }
         },
-        "required": ["username"],
+        "required": [
+          "username"
+        ],
         "type": "object"
       },
       "LogRestApi.post": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -5877,7 +6483,6 @@
             "$ref": "#/components/schemas/QueryResult"
           },
           "query_id": {
-            "format": "int32",
             "type": "integer"
           },
           "selected_columns": {
@@ -5923,16 +6528,13 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "limit": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "progress": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -5942,7 +6544,6 @@
             "type": "string"
           },
           "rows": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -6004,13 +6605,15 @@
             "readOnly": true
           }
         },
-        "required": ["client_id", "database"],
+        "required": [
+          "client_id",
+          "database"
+        ],
         "type": "object"
       },
       "QueryRestApi.get.Database": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -6026,18 +6629,15 @@
             "$ref": "#/components/schemas/Database1"
           },
           "end_time": {
-            "format": "float",
             "type": "number"
           },
           "executed_sql": {
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "rows": {
-            "format": "int32",
             "type": "integer"
           },
           "schema": {
@@ -6050,7 +6650,6 @@
             "readOnly": true
           },
           "start_time": {
-            "format": "float",
             "type": "number"
           },
           "status": {
@@ -6074,7 +6673,6 @@
       "QueryRestApi.post": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -6083,7 +6681,6 @@
       "QueryRestApi.put": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -6091,11 +6688,8 @@
       },
       "QueryResult": {
         "properties": {
-          "changedOn": {
-            "format": "date-time",
-            "type": "string"
-          },
           "changed_on": {
+            "format": "date-time",
             "type": "string"
           },
           "ctas": {
@@ -6105,11 +6699,9 @@
             "type": "string"
           },
           "dbId": {
-            "format": "int32",
             "type": "integer"
           },
           "endDttm": {
-            "format": "float",
             "type": "number"
           },
           "errorMessage": {
@@ -6126,32 +6718,27 @@
             "type": "string"
           },
           "limit": {
-            "format": "int32",
             "type": "integer"
           },
           "limitingFactor": {
             "type": "string"
           },
           "progress": {
-            "format": "int32",
             "type": "integer"
           },
           "queryId": {
-            "format": "int32",
             "type": "integer"
           },
           "resultsKey": {
             "type": "string"
           },
           "rows": {
-            "format": "int32",
             "type": "integer"
           },
           "schema": {
             "type": "string"
           },
           "serverId": {
-            "format": "int32",
             "type": "integer"
           },
           "sql": {
@@ -6161,7 +6748,6 @@
             "type": "string"
           },
           "startDttm": {
-            "format": "float",
             "type": "number"
           },
           "state": {
@@ -6186,37 +6772,230 @@
             "type": "string"
           },
           "userId": {
-            "format": "int32",
             "type": "integer"
           }
         },
         "type": "object"
       },
-      "RecentActivity": {
+      "RLSRestApi.get": {
         "properties": {
-          "action": {
-            "description": "Action taken describing type of activity",
+          "clause": {
+            "description": "clause_description",
             "type": "string"
           },
-          "item_title": {
-            "description": "Title of item",
+          "description": {
+            "description": "description_description",
             "type": "string"
           },
-          "item_type": {
-            "description": "Type of item, e.g. slice or dashboard",
+          "filter_type": {
+            "description": "filter_type_description",
+            "enum": [
+              "Regular",
+              "Base"
+            ],
             "type": "string"
           },
-          "item_url": {
-            "description": "URL to item",
+          "group_key": {
+            "description": "group_key_description",
             "type": "string"
           },
-          "time": {
-            "description": "Time of activity, in epoch milliseconds",
-            "format": "float",
-            "type": "number"
+          "id": {
+            "description": "id_description",
+            "type": "integer"
           },
-          "time_delta_humanized": {
-            "description": "Human-readable description of how long ago activity took place",
+          "name": {
+            "description": "name_description",
+            "type": "string"
+          },
+          "roles": {
+            "items": {
+              "$ref": "#/components/schemas/Roles1"
+            },
+            "type": "array"
+          },
+          "tables": {
+            "items": {
+              "$ref": "#/components/schemas/Tables"
+            },
+            "type": "array"
+          }
+        },
+        "type": "object"
+      },
+      "RLSRestApi.get_list": {
+        "properties": {
+          "changed_on_delta_humanized": {
+            "readOnly": true
+          },
+          "clause": {
+            "description": "clause_description",
+            "type": "string"
+          },
+          "description": {
+            "description": "description_description",
+            "type": "string"
+          },
+          "filter_type": {
+            "description": "filter_type_description",
+            "enum": [
+              "Regular",
+              "Base"
+            ],
+            "type": "string"
+          },
+          "group_key": {
+            "description": "group_key_description",
+            "type": "string"
+          },
+          "id": {
+            "description": "id_description",
+            "type": "integer"
+          },
+          "name": {
+            "description": "name_description",
+            "type": "string"
+          },
+          "roles": {
+            "items": {
+              "$ref": "#/components/schemas/Roles1"
+            },
+            "type": "array"
+          },
+          "tables": {
+            "items": {
+              "$ref": "#/components/schemas/Tables"
+            },
+            "type": "array"
+          }
+        },
+        "type": "object"
+      },
+      "RLSRestApi.post": {
+        "properties": {
+          "clause": {
+            "description": "clause_description",
+            "type": "string"
+          },
+          "description": {
+            "description": "description_description",
+            "nullable": true,
+            "type": "string"
+          },
+          "filter_type": {
+            "description": "filter_type_description",
+            "enum": [
+              "Regular",
+              "Base"
+            ],
+            "type": "string"
+          },
+          "group_key": {
+            "description": "group_key_description",
+            "nullable": true,
+            "type": "string"
+          },
+          "name": {
+            "description": "name_description",
+            "maxLength": 255,
+            "minLength": 1,
+            "type": "string"
+          },
+          "roles": {
+            "description": "roles_description",
+            "items": {
+              "type": "integer"
+            },
+            "type": "array"
+          },
+          "tables": {
+            "description": "tables_description",
+            "items": {
+              "type": "integer"
+            },
+            "minItems": 1,
+            "type": "array"
+          }
+        },
+        "required": [
+          "clause",
+          "filter_type",
+          "name",
+          "roles",
+          "tables"
+        ],
+        "type": "object"
+      },
+      "RLSRestApi.put": {
+        "properties": {
+          "clause": {
+            "description": "clause_description",
+            "type": "string"
+          },
+          "description": {
+            "description": "description_description",
+            "nullable": true,
+            "type": "string"
+          },
+          "filter_type": {
+            "description": "filter_type_description",
+            "enum": [
+              "Regular",
+              "Base"
+            ],
+            "type": "string"
+          },
+          "group_key": {
+            "description": "group_key_description",
+            "nullable": true,
+            "type": "string"
+          },
+          "name": {
+            "description": "name_description",
+            "maxLength": 255,
+            "minLength": 1,
+            "type": "string"
+          },
+          "roles": {
+            "description": "roles_description",
+            "items": {
+              "type": "integer"
+            },
+            "type": "array"
+          },
+          "tables": {
+            "description": "tables_description",
+            "items": {
+              "type": "integer"
+            },
+            "type": "array"
+          }
+        },
+        "type": "object"
+      },
+      "RecentActivity": {
+        "properties": {
+          "action": {
+            "description": "Action taken describing type of activity",
+            "type": "string"
+          },
+          "item_title": {
+            "description": "Title of item",
+            "type": "string"
+          },
+          "item_type": {
+            "description": "Type of item, e.g. slice or dashboard",
+            "type": "string"
+          },
+          "item_url": {
+            "description": "URL to item",
+            "type": "string"
+          },
+          "time": {
+            "description": "Time of activity, in epoch milliseconds",
+            "type": "number"
+          },
+          "time_delta_humanized": {
+            "description": "Human-readable description of how long ago activity took place.",
             "type": "string"
           }
         },
@@ -6254,11 +7033,10 @@
           },
           "time": {
             "description": "Time of activity, in epoch milliseconds",
-            "format": "float",
             "type": "number"
           },
           "time_delta_humanized": {
-            "description": "Human-readable description of how long ago activity took place",
+            "description": "Human-readable description of how long ago activity took place.",
             "type": "string"
           }
         },
@@ -6268,7 +7046,6 @@
         "properties": {
           "count": {
             "description": "The total number of related values",
-            "format": "int32",
             "type": "integer"
           },
           "result": {
@@ -6292,7 +7069,6 @@
           },
           "value": {
             "description": "The related item identifier",
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -6310,7 +7086,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "scheduled_dttm": {
@@ -6332,7 +7107,6 @@
             "type": "string"
           },
           "value": {
-            "format": "float",
             "nullable": true,
             "type": "number"
           },
@@ -6341,7 +7115,10 @@
             "type": "string"
           }
         },
-        "required": ["scheduled_dttm", "state"],
+        "required": [
+          "scheduled_dttm",
+          "state"
+        ],
         "type": "object"
       },
       "ReportExecutionLogRestApi.get_list": {
@@ -6356,7 +7133,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "scheduled_dttm": {
@@ -6378,7 +7154,6 @@
             "type": "string"
           },
           "value": {
-            "format": "float",
             "nullable": true,
             "type": "number"
           },
@@ -6387,13 +7162,15 @@
             "type": "string"
           }
         },
-        "required": ["scheduled_dttm", "state"],
+        "required": [
+          "scheduled_dttm",
+          "state"
+        ],
         "type": "object"
       },
       "ReportExecutionLogRestApi.post": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -6402,7 +7179,6 @@
       "ReportExecutionLogRestApi.put": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -6415,11 +7191,16 @@
           },
           "type": {
             "description": "The recipient type, check spec for valid options",
-            "enum": ["Email", "Slack"],
+            "enum": [
+              "Email",
+              "Slack"
+            ],
             "type": "string"
           }
         },
-        "required": ["type"],
+        "required": [
+          "type"
+        ],
         "type": "object"
       },
       "ReportRecipientConfigJSON": {
@@ -6452,6 +7233,10 @@
             "maxLength": 1000,
             "type": "string"
           },
+          "custom_width": {
+            "nullable": true,
+            "type": "integer"
+          },
           "dashboard": {
             "$ref": "#/components/schemas/ReportScheduleRestApi.get.Dashboard"
           },
@@ -6470,12 +7255,10 @@
             "type": "boolean"
           },
           "grace_period": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_eval_dttm": {
@@ -6489,7 +7272,6 @@
             "type": "string"
           },
           "last_value": {
-            "format": "float",
             "nullable": true,
             "type": "number"
           },
@@ -6498,7 +7280,6 @@
             "type": "string"
           },
           "log_retention": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -6539,12 +7320,16 @@
             "type": "string"
           },
           "working_timeout": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           }
         },
-        "required": ["crontab", "name", "recipients", "type"],
+        "required": [
+          "crontab",
+          "name",
+          "recipients",
+          "type"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get.Dashboard": {
@@ -6555,7 +7340,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
@@ -6568,17 +7352,17 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["database_name"],
+        "required": [
+          "database_name"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get.ReportRecipients": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "recipient_config_json": {
@@ -6590,13 +7374,14 @@
             "type": "string"
           }
         },
-        "required": ["type"],
+        "required": [
+          "type"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get.Slice": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "slice_name": {
@@ -6619,7 +7404,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -6627,7 +7411,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get_list": {
@@ -6637,7 +7424,7 @@
             "type": "boolean"
           },
           "changed_by": {
-            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
+            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User2"
           },
           "changed_on": {
             "format": "date-time",
@@ -6648,12 +7435,11 @@
             "readOnly": true
           },
           "chart_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "created_by": {
-            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
+            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User"
           },
           "created_on": {
             "format": "date-time",
@@ -6673,7 +7459,6 @@
             "readOnly": true
           },
           "dashboard_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -6685,7 +7470,6 @@
             "readOnly": true
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_eval_dttm": {
@@ -6703,7 +7487,7 @@
             "type": "string"
           },
           "owners": {
-            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User2"
+            "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.User1"
           },
           "recipients": {
             "$ref": "#/components/schemas/ReportScheduleRestApi.get_list.ReportRecipients"
@@ -6717,13 +7501,17 @@
             "type": "string"
           }
         },
-        "required": ["crontab", "name", "recipients", "type"],
+        "required": [
+          "crontab",
+          "name",
+          "recipients",
+          "type"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get_list.ReportRecipients": {
         "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "type": {
@@ -6731,7 +7519,9 @@
             "type": "string"
           }
         },
-        "required": ["type"],
+        "required": [
+          "type"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get_list.User": {
@@ -6745,7 +7535,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get_list.User1": {
@@ -6754,12 +7547,18 @@
             "maxLength": 64,
             "type": "string"
           },
+          "id": {
+            "type": "integer"
+          },
           "last_name": {
             "maxLength": 64,
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.get_list.User2": {
@@ -6768,16 +7567,15 @@
             "maxLength": 64,
             "type": "string"
           },
-          "id": {
-            "format": "int32",
-            "type": "integer"
-          },
           "last_name": {
             "maxLength": 64,
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.post": {
@@ -6786,7 +7584,6 @@
             "type": "boolean"
           },
           "chart": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -6796,7 +7593,12 @@
             "type": "string"
           },
           "creation_method": {
-            "description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI."
+            "description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
+            "enum": [
+              "charts",
+              "dashboards",
+              "alerts_reports"
+            ]
           },
           "crontab": {
             "description": "A CRON expression.[Crontab Guru](https://crontab.guru/) is a helpful resource that can help you craft a CRON expression.",
@@ -6805,13 +7607,17 @@
             "minLength": 1,
             "type": "string"
           },
+          "custom_width": {
+            "description": "Custom width of the screenshot in pixels",
+            "example": 1000,
+            "nullable": true,
+            "type": "integer"
+          },
           "dashboard": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "database": {
-            "format": "int32",
             "type": "integer"
           },
           "description": {
@@ -6829,14 +7635,12 @@
           "grace_period": {
             "description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
             "example": 14400,
-            "format": "int32",
             "minimum": 1,
             "type": "integer"
           },
           "log_retention": {
             "description": "How long to keep the logs around for this report (in days)",
             "example": 90,
-            "format": "int32",
             "minimum": 1,
             "type": "integer"
           },
@@ -6850,7 +7654,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -6862,12 +7665,15 @@
             "type": "array"
           },
           "report_format": {
-            "enum": ["PNG", "CSV", "TEXT"],
+            "enum": [
+              "PNG",
+              "CSV",
+              "TEXT"
+            ],
             "type": "string"
           },
           "selected_tabs": {
             "items": {
-              "format": "int32",
               "type": "integer"
             },
             "nullable": true,
@@ -7480,7 +8286,10 @@
           },
           "type": {
             "description": "The report schedule type",
-            "enum": ["Alert", "Report"],
+            "enum": [
+              "Alert",
+              "Report"
+            ],
             "type": "string"
           },
           "validator_config_json": {
@@ -7488,18 +8297,24 @@
           },
           "validator_type": {
             "description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
-            "enum": ["not null", "operator"],
+            "enum": [
+              "not null",
+              "operator"
+            ],
             "type": "string"
           },
           "working_timeout": {
             "description": "If an alert is staled at a working state, how long until it's state is reseted to error",
             "example": 3600,
-            "format": "int32",
             "minimum": 1,
             "type": "integer"
           }
         },
-        "required": ["crontab", "name", "type"],
+        "required": [
+          "crontab",
+          "name",
+          "type"
+        ],
         "type": "object"
       },
       "ReportScheduleRestApi.put": {
@@ -7508,7 +8323,6 @@
             "type": "boolean"
           },
           "chart": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -7519,6 +8333,11 @@
           },
           "creation_method": {
             "description": "Creation method is used to inform the frontend whether the report/alert was created in the dashboard, chart, or alerts and reports UI.",
+            "enum": [
+              "charts",
+              "dashboards",
+              "alerts_reports"
+            ],
             "nullable": true
           },
           "crontab": {
@@ -7527,13 +8346,17 @@
             "minLength": 1,
             "type": "string"
           },
+          "custom_width": {
+            "description": "Custom width of the screenshot in pixels",
+            "example": 1000,
+            "nullable": true,
+            "type": "integer"
+          },
           "dashboard": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
           "database": {
-            "format": "int32",
             "type": "integer"
           },
           "description": {
@@ -7551,14 +8374,12 @@
           "grace_period": {
             "description": "Once an alert is triggered, how long, in seconds, before Superset nags you again. (in seconds)",
             "example": 14400,
-            "format": "int32",
             "minimum": 1,
             "type": "integer"
           },
           "log_retention": {
             "description": "How long to keep the logs around for this report (in days)",
             "example": 90,
-            "format": "int32",
             "minimum": 1,
             "type": "integer"
           },
@@ -7571,7 +8392,6 @@
           "owners": {
             "items": {
               "description": "Owner are users ids allowed to delete or change this report. If left empty you will be one of the owners of the report.",
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -7583,7 +8403,11 @@
             "type": "array"
           },
           "report_format": {
-            "enum": ["PNG", "CSV", "TEXT"],
+            "enum": [
+              "PNG",
+              "CSV",
+              "TEXT"
+            ],
             "type": "string"
           },
           "sql": {
@@ -8194,7 +9018,10 @@
           },
           "type": {
             "description": "The report schedule type",
-            "enum": ["Alert", "Report"],
+            "enum": [
+              "Alert",
+              "Report"
+            ],
             "type": "string"
           },
           "validator_config_json": {
@@ -8202,14 +9029,16 @@
           },
           "validator_type": {
             "description": "Determines when to trigger alert based off value from alert query. Alerts will be triggered with these validator types:\n- Not Null - When the return value is Not NULL, Empty, or 0\n- Operator - When `sql_return_value comparison_operator threshold` is True e.g. `50 <= 75`<br>Supports the comparison operators <, <=, >, >=, ==, and !=",
-            "enum": ["not null", "operator"],
+            "enum": [
+              "not null",
+              "operator"
+            ],
             "nullable": true,
             "type": "string"
           },
           "working_timeout": {
             "description": "If an alert is staled at a working state, how long until it's state is reseted to error",
             "example": 3600,
-            "format": "int32",
             "minimum": 1,
             "nullable": true,
             "type": "integer"
@@ -8222,9 +9051,16 @@
           "id": {
             "type": "string"
           },
-          "type": {}
+          "type": {
+            "enum": [
+              "dashboard"
+            ]
+          }
         },
-        "required": ["id", "type"],
+        "required": [
+          "id",
+          "type"
+        ],
         "type": "object"
       },
       "RlsRule": {
@@ -8233,17 +9069,28 @@
             "type": "string"
           },
           "dataset": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["clause"],
+        "required": [
+          "clause"
+        ],
         "type": "object"
       },
       "Roles": {
         "properties": {
           "id": {
-            "format": "int32",
+            "type": "integer"
+          },
+          "name": {
+            "type": "string"
+          }
+        },
+        "type": "object"
+      },
+      "Roles1": {
+        "properties": {
+          "id": {
             "type": "integer"
           },
           "name": {
@@ -8268,7 +9115,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "label": {
@@ -8302,11 +9148,12 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["database_name"],
+        "required": [
+          "database_name"
+        ],
         "type": "object"
       },
       "SavedQueryRestApi.get.User": {
@@ -8316,7 +9163,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -8324,7 +9170,10 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "SavedQueryRestApi.get_list": {
@@ -8344,7 +9193,6 @@
             "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Database"
           },
           "db_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -8356,7 +9204,6 @@
             "readOnly": true
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "label": {
@@ -8368,7 +9215,6 @@
             "readOnly": true
           },
           "rows": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -8383,6 +9229,9 @@
           },
           "sql_tables": {
             "readOnly": true
+          },
+          "tags": {
+            "$ref": "#/components/schemas/SavedQueryRestApi.get_list.Tag"
           }
         },
         "type": "object"
@@ -8394,11 +9243,33 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           }
         },
-        "required": ["database_name"],
+        "required": [
+          "database_name"
+        ],
+        "type": "object"
+      },
+      "SavedQueryRestApi.get_list.Tag": {
+        "properties": {
+          "id": {
+            "type": "integer"
+          },
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
+            "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
+          }
+        },
         "type": "object"
       },
       "SavedQueryRestApi.get_list.User": {
@@ -8408,7 +9279,6 @@
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
           "last_name": {
@@ -8416,13 +9286,15 @@
             "type": "string"
           }
         },
-        "required": ["first_name", "last_name"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
       "SavedQueryRestApi.post": {
         "properties": {
           "db_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -8454,7 +9326,6 @@
       "SavedQueryRestApi.put": {
         "properties": {
           "db_id": {
-            "format": "int32",
             "nullable": true,
             "type": "integer"
           },
@@ -8508,7 +9379,6 @@
         "properties": {
           "cache_timeout": {
             "description": "Duration (in seconds) of the caching timeout for this chart.",
-            "format": "int32",
             "type": "integer"
           },
           "certification_details": {
@@ -8521,6 +9391,7 @@
           },
           "changed_on": {
             "description": "Timestamp of the last modification.",
+            "format": "date-time",
             "type": "string"
           },
           "changed_on_humanized": {
@@ -8558,7 +9429,6 @@
           "owners": {
             "description": "Owners identifiers.",
             "items": {
-              "format": "int32",
               "type": "integer"
             },
             "type": "array"
@@ -8569,7 +9439,6 @@
           },
           "slice_id": {
             "description": "The slice ID.",
-            "format": "int32",
             "type": "integer"
           },
           "slice_name": {
@@ -8636,7 +9505,7 @@
         "properties": {
           "column_names": {
             "items": {
-              "description": "A list of column names that compose the foreign key or index",
+              "description": "A list of column names that compose the foreign key or  index",
               "type": "string"
             },
             "type": "array"
@@ -8747,221 +9616,538 @@
         },
         "type": "object"
       },
-      "TemporaryCachePostSchema": {
+      "Tables": {
         "properties": {
-          "value": {
-            "description": "Any type of JSON supported text.",
+          "id": {
+            "type": "integer"
+          },
+          "schema": {
+            "type": "string"
+          },
+          "table_name": {
             "type": "string"
           }
         },
-        "required": ["value"],
         "type": "object"
       },
-      "TemporaryCachePutSchema": {
+      "Tag": {
         "properties": {
-          "value": {
-            "description": "Any type of JSON supported text.",
+          "id": {
+            "type": "integer"
+          },
+          "name": {
             "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
           }
         },
-        "required": ["value"],
         "type": "object"
       },
-      "User": {
+      "Tag1": {
         "properties": {
-          "first_name": {
+          "id": {
+            "type": "integer"
+          },
+          "name": {
             "type": "string"
           },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
+          }
+        },
+        "type": "object"
+      },
+      "TagGetResponseSchema": {
+        "properties": {
           "id": {
-            "format": "int32",
             "type": "integer"
           },
-          "last_name": {
+          "name": {
             "type": "string"
           },
-          "username": {
+          "type": {
             "type": "string"
           }
         },
         "type": "object"
       },
-      "User1": {
+      "TagRestApi.get": {
         "properties": {
-          "first_name": {
-            "type": "string"
+          "changed_by": {
+            "$ref": "#/components/schemas/TagRestApi.get.User1"
           },
-          "last_name": {
-            "type": "string"
+          "changed_on_delta_humanized": {
+            "readOnly": true
           },
-          "username": {
+          "created_by": {
+            "$ref": "#/components/schemas/TagRestApi.get.User"
+          },
+          "id": {
+            "type": "integer"
+          },
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
             "type": "string"
+          },
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
           }
         },
         "type": "object"
       },
-      "UserResponseSchema": {
+      "TagRestApi.get.User": {
         "properties": {
+          "active": {
+            "nullable": true,
+            "type": "boolean"
+          },
+          "changed_on": {
+            "format": "date-time",
+            "nullable": true,
+            "type": "string"
+          },
+          "created_on": {
+            "format": "date-time",
+            "nullable": true,
+            "type": "string"
+          },
           "email": {
+            "maxLength": 64,
             "type": "string"
           },
+          "fail_login_count": {
+            "nullable": true,
+            "type": "integer"
+          },
           "first_name": {
+            "maxLength": 64,
             "type": "string"
           },
           "id": {
-            "format": "int32",
             "type": "integer"
           },
-          "is_active": {
-            "type": "boolean"
-          },
-          "is_anonymous": {
-            "type": "boolean"
+          "last_login": {
+            "format": "date-time",
+            "nullable": true,
+            "type": "string"
           },
           "last_name": {
+            "maxLength": 64,
+            "type": "string"
+          },
+          "login_count": {
+            "nullable": true,
+            "type": "integer"
+          },
+          "password": {
+            "maxLength": 256,
+            "nullable": true,
             "type": "string"
           },
           "username": {
+            "maxLength": 64,
             "type": "string"
           }
         },
+        "required": [
+          "email",
+          "first_name",
+          "last_name",
+          "username"
+        ],
         "type": "object"
       },
-      "ValidateSQLRequest": {
+      "TagRestApi.get.User1": {
         "properties": {
-          "schema": {
-            "nullable": true,
+          "first_name": {
+            "maxLength": 64,
             "type": "string"
           },
-          "sql": {
-            "description": "SQL statement to validate",
+          "last_name": {
+            "maxLength": 64,
             "type": "string"
-          },
-          "template_params": {
-            "nullable": true,
-            "type": "object"
           }
         },
-        "required": ["sql"],
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
-      "ValidateSQLResponse": {
+      "TagRestApi.get_list": {
         "properties": {
-          "end_column": {
-            "format": "int32",
-            "type": "integer"
+          "changed_by": {
+            "$ref": "#/components/schemas/TagRestApi.get_list.User1"
           },
-          "line_number": {
-            "format": "int32",
+          "changed_on_delta_humanized": {
+            "readOnly": true
+          },
+          "created_by": {
+            "$ref": "#/components/schemas/TagRestApi.get_list.User"
+          },
+          "id": {
             "type": "integer"
           },
-          "message": {
+          "name": {
+            "maxLength": 250,
+            "nullable": true,
             "type": "string"
           },
-          "start_column": {
-            "format": "int32",
-            "type": "integer"
+          "type": {
+            "enum": [
+              1,
+              2,
+              3,
+              4
+            ]
           }
         },
         "type": "object"
       },
-      "ValidatorConfigJSON": {
+      "TagRestApi.get_list.User": {
         "properties": {
-          "op": {
-            "description": "The operation to compare with a threshold to apply to the SQL output\n",
-            "enum": ["<", "<=", ">", ">=", "==", "!="],
+          "first_name": {
+            "maxLength": 64,
             "type": "string"
           },
-          "threshold": {
-            "format": "float",
-            "type": "number"
+          "last_name": {
+            "maxLength": 64,
+            "type": "string"
           }
         },
+        "required": [
+          "first_name",
+          "last_name"
+        ],
         "type": "object"
       },
-      "advanced_data_type_convert_schema": {
+      "TagRestApi.get_list.User1": {
         "properties": {
-          "type": {
-            "default": "port",
+          "first_name": {
+            "maxLength": 64,
             "type": "string"
           },
-          "values": {
+          "last_name": {
+            "maxLength": 64,
+            "type": "string"
+          }
+        },
+        "required": [
+          "first_name",
+          "last_name"
+        ],
+        "type": "object"
+      },
+      "TagRestApi.post": {
+        "properties": {
+          "tags": {
             "items": {
-              "default": "http"
+              "type": "string"
             },
-            "minItems": 1,
             "type": "array"
           }
         },
-        "required": ["type", "values"],
         "type": "object"
       },
-      "database_schemas_query_schema": {
+      "TagRestApi.put": {
         "properties": {
-          "force": {
-            "type": "boolean"
+          "id": {
+            "type": "integer"
           }
         },
         "type": "object"
       },
-      "database_tables_query_schema": {
+      "TaggedObjectEntityResponseSchema": {
         "properties": {
-          "force": {
-            "type": "boolean"
+          "changed_on": {
+            "format": "date-time",
+            "type": "string"
           },
-          "schema_name": {
+          "created_by": {
+            "$ref": "#/components/schemas/User"
+          },
+          "creator": {
+            "type": "string"
+          },
+          "id": {
+            "type": "integer"
+          },
+          "name": {
+            "type": "string"
+          },
+          "type": {
+            "type": "string"
+          },
+          "url": {
             "type": "string"
           }
         },
-        "required": ["schema_name"],
         "type": "object"
       },
-      "get_delete_ids_schema": {
-        "items": {
-          "type": "integer"
+      "TemporaryCachePostSchema": {
+        "properties": {
+          "value": {
+            "description": "Any type of JSON supported text.",
+            "type": "string"
+          }
         },
-        "type": "array"
+        "required": [
+          "value"
+        ],
+        "type": "object"
       },
-      "get_export_ids_schema": {
-        "items": {
-          "type": "integer"
+      "TemporaryCachePutSchema": {
+        "properties": {
+          "value": {
+            "description": "Any type of JSON supported text.",
+            "type": "string"
+          }
         },
-        "type": "array"
+        "required": [
+          "value"
+        ],
+        "type": "object"
       },
-      "get_fav_star_ids_schema": {
-        "items": {
-          "type": "integer"
+      "User": {
+        "properties": {
+          "first_name": {
+            "type": "string"
+          },
+          "id": {
+            "type": "integer"
+          },
+          "last_name": {
+            "type": "string"
+          }
         },
-        "type": "array"
+        "type": "object"
       },
-      "get_info_schema": {
+      "User1": {
         "properties": {
-          "add_columns": {
-            "additionalProperties": {
-              "properties": {
-                "page": {
-                  "type": "integer"
-                },
-                "page_size": {
-                  "type": "integer"
-                }
-              },
-              "type": "object"
-            },
-            "type": "object"
+          "first_name": {
+            "type": "string"
           },
-          "edit_columns": {
-            "additionalProperties": {
-              "properties": {
-                "page": {
-                  "type": "integer"
-                },
-                "page_size": {
-                  "type": "integer"
-                }
-              },
-              "type": "object"
-            },
-            "type": "object"
+          "id": {
+            "type": "integer"
+          },
+          "last_name": {
+            "type": "string"
+          },
+          "username": {
+            "type": "string"
+          }
+        },
+        "type": "object"
+      },
+      "User2": {
+        "properties": {
+          "first_name": {
+            "type": "string"
+          },
+          "last_name": {
+            "type": "string"
+          },
+          "username": {
+            "type": "string"
+          }
+        },
+        "type": "object"
+      },
+      "UserResponseSchema": {
+        "properties": {
+          "email": {
+            "type": "string"
+          },
+          "first_name": {
+            "type": "string"
+          },
+          "id": {
+            "type": "integer"
+          },
+          "is_active": {
+            "type": "boolean"
+          },
+          "is_anonymous": {
+            "type": "boolean"
+          },
+          "last_name": {
+            "type": "string"
+          },
+          "username": {
+            "type": "string"
+          }
+        },
+        "type": "object"
+      },
+      "ValidateSQLRequest": {
+        "properties": {
+          "schema": {
+            "nullable": true,
+            "type": "string"
+          },
+          "sql": {
+            "description": "SQL statement to validate",
+            "type": "string"
+          },
+          "template_params": {
+            "nullable": true,
+            "type": "object"
+          }
+        },
+        "required": [
+          "sql"
+        ],
+        "type": "object"
+      },
+      "ValidateSQLResponse": {
+        "properties": {
+          "end_column": {
+            "type": "integer"
+          },
+          "line_number": {
+            "type": "integer"
+          },
+          "message": {
+            "type": "string"
+          },
+          "start_column": {
+            "type": "integer"
+          }
+        },
+        "type": "object"
+      },
+      "ValidatorConfigJSON": {
+        "properties": {
+          "op": {
+            "description": "The operation to compare with a threshold to apply to the SQL output\n",
+            "enum": [
+              "<",
+              "<=",
+              ">",
+              ">=",
+              "==",
+              "!="
+            ],
+            "type": "string"
+          },
+          "threshold": {
+            "type": "number"
+          }
+        },
+        "type": "object"
+      },
+      "advanced_data_type_convert_schema": {
+        "properties": {
+          "type": {
+            "default": "port",
+            "type": "string"
+          },
+          "values": {
+            "items": {
+              "default": "http"
+            },
+            "minItems": 1,
+            "type": "array"
+          }
+        },
+        "required": [
+          "type",
+          "values"
+        ],
+        "type": "object"
+      },
+      "database_schemas_query_schema": {
+        "properties": {
+          "force": {
+            "type": "boolean"
+          }
+        },
+        "type": "object"
+      },
+      "database_tables_query_schema": {
+        "properties": {
+          "force": {
+            "type": "boolean"
+          },
+          "schema_name": {
+            "type": "string"
+          }
+        },
+        "required": [
+          "schema_name"
+        ],
+        "type": "object"
+      },
+      "delete_tags_schema": {
+        "items": {
+          "type": "string"
+        },
+        "type": "array"
+      },
+      "get_delete_ids_schema": {
+        "items": {
+          "type": "integer"
+        },
+        "type": "array"
+      },
+      "get_export_ids_schema": {
+        "items": {
+          "type": "integer"
+        },
+        "type": "array"
+      },
+      "get_fav_star_ids_schema": {
+        "items": {
+          "type": "integer"
+        },
+        "type": "array"
+      },
+      "get_info_schema": {
+        "properties": {
+          "add_columns": {
+            "additionalProperties": {
+              "properties": {
+                "page": {
+                  "type": "integer"
+                },
+                "page_size": {
+                  "type": "integer"
+                }
+              },
+              "type": "object"
+            },
+            "type": "object"
+          },
+          "edit_columns": {
+            "additionalProperties": {
+              "properties": {
+                "page": {
+                  "type": "integer"
+                },
+                "page_size": {
+                  "type": "integer"
+                }
+              },
+              "type": "object"
+            },
+            "type": "object"
           },
           "keys": {
             "items": {
@@ -9039,7 +10225,11 @@
                   ]
                 }
               },
-              "required": ["col", "opr", "value"],
+              "required": [
+                "col",
+                "opr",
+                "value"
+              ],
               "type": "object"
             },
             "type": "array"
@@ -9062,7 +10252,10 @@
             "type": "string"
           },
           "order_direction": {
-            "enum": ["asc", "desc"],
+            "enum": [
+              "asc",
+              "desc"
+            ],
             "type": "string"
           },
           "page": {
@@ -9120,7 +10313,9 @@
             "type": "number"
           }
         },
-        "required": ["last_updated_ms"],
+        "required": [
+          "last_updated_ms"
+        ],
         "type": "object"
       },
       "screenshot_query_schema": {
@@ -9149,7 +10344,9 @@
             "type": "string"
           }
         },
-        "required": ["key"],
+        "required": [
+          "key"
+        ],
         "type": "object"
       },
       "thumbnail_query_schema": {
@@ -9226,7 +10423,9 @@
           }
         ],
         "summary": "Returns a AdvancedDataTypeResponse object populated with the passed in args.",
-        "tags": ["Advanced Data Type"]
+        "tags": [
+          "Advanced Data Type"
+        ]
       }
     },
     "/api/v1/advanced_data_type/types": {
@@ -9266,7 +10465,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Advanced Data Type"]
+        "tags": [
+          "Advanced Data Type"
+        ]
       }
     },
     "/api/v1/annotation_layer/": {
@@ -9319,7 +10520,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "get": {
         "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
@@ -9424,7 +10627,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "post": {
         "description": "Create an Annotation layer",
@@ -9476,7 +10681,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       }
     },
     "/api/v1/annotation_layer/_info": {
@@ -9560,7 +10767,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       }
     },
     "/api/v1/annotation_layer/related/{column_name}": {
@@ -9615,7 +10824,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       }
     },
     "/api/v1/annotation_layer/{pk}": {
@@ -9663,7 +10874,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "get": {
         "description": "Get an Annotation layer",
@@ -9761,7 +10974,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "put": {
         "description": "Update an Annotation layer",
@@ -9824,7 +11039,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       }
     },
     "/api/v1/annotation_layer/{pk}/annotation/": {
@@ -9886,7 +11103,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "get": {
         "description": "Get a list of Annotation layers, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
@@ -9961,7 +11180,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "post": {
         "description": "Create an Annotation layer",
@@ -10024,7 +11245,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       }
     },
     "/api/v1/annotation_layer/{pk}/annotation/{annotation_id}": {
@@ -10081,7 +11304,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "get": {
         "description": "Get an Annotation layer",
@@ -10157,7 +11382,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       },
       "put": {
         "description": "Update an Annotation layer",
@@ -10229,7 +11456,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Annotation Layers"]
+        "tags": [
+          "Annotation Layers"
+        ]
       }
     },
     "/api/v1/assets/export/": {
@@ -10262,7 +11491,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Import/export"]
+        "tags": [
+          "Import/export"
+        ]
       }
     },
     "/api/v1/assets/import/": {
@@ -10285,12 +11516,12 @@
                     "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keys": {
-                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+                  "ssh_tunnel_private_key_passwords": {
+                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keyspasswords": {
-                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key_password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+                  "ssh_tunnel_private_keys": {
+                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                     "type": "string"
                   }
                 },
@@ -10334,7 +11565,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Import/export"]
+        "tags": [
+          "Import/export"
+        ]
       }
     },
     "/api/v1/async_event/": {
@@ -10407,7 +11640,9 @@
             "jwt": []
           }
         ],
-        "tags": ["AsyncEventsRestApi"]
+        "tags": [
+          "AsyncEventsRestApi"
+        ]
       }
     },
     "/api/v1/available_domains/": {
@@ -10441,7 +11676,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Available Domains"]
+        "tags": [
+          "Available Domains"
+        ]
       }
     },
     "/api/v1/cachekey/invalidate": {
@@ -10474,7 +11711,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CacheRestApi"]
+        "tags": [
+          "CacheRestApi"
+        ]
       }
     },
     "/api/v1/chart/": {
@@ -10530,7 +11769,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       },
       "get": {
         "description": "Get a list of charts, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
@@ -10635,7 +11876,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       },
       "post": {
         "description": "Create a new Chart.",
@@ -10675,6 +11918,9 @@
           "401": {
             "$ref": "#/components/responses/401"
           },
+          "403": {
+            "$ref": "#/components/responses/403"
+          },
           "422": {
             "$ref": "#/components/responses/422"
           },
@@ -10687,7 +11933,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/_info": {
@@ -10771,7 +12019,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/data": {
@@ -10824,7 +12074,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/data/{cache_key}": {
@@ -10872,7 +12124,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/export/": {
@@ -10921,7 +12175,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/favorite_status/": {
@@ -10969,7 +12225,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/import/": {
@@ -10996,12 +12254,12 @@
                     "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keys": {
-                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+                  "ssh_tunnel_private_key_passwords": {
+                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keyspasswords": {
-                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key_password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+                  "ssh_tunnel_private_keys": {
+                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                     "type": "string"
                   }
                 },
@@ -11045,7 +12303,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/related/{column_name}": {
@@ -11101,7 +12361,55 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
+      }
+    },
+    "/api/v1/chart/warm_up_cache": {
+      "put": {
+        "description": "Warms up the cache for the chart. Note for slices a force refresh occurs. In terms of the `extra_filters` these can be obtained from records in the JSON encoded `logs.json` column associated with the `explore_json` action.",
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/ChartCacheWarmUpRequestSchema"
+              }
+            }
+          },
+          "description": "Identifies the chart to warm up cache for, and any additional dashboard or filter context to use.",
+          "required": true
+        },
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/ChartCacheWarmUpResponseSchema"
+                }
+              }
+            },
+            "description": "Each chart's warmup status"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "summary": "Warms up the cache for the chart",
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/{pk}": {
@@ -11154,7 +12462,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       },
       "get": {
         "description": "Get a chart detail information.",
@@ -11252,7 +12562,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       },
       "put": {
         "description": "Changes a Chart.",
@@ -11320,7 +12632,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/{pk}/cache_screenshot/": {
@@ -11376,7 +12690,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/{pk}/data/": {
@@ -11453,12 +12769,14 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
-    "/api/v1/chart/{pk}/screenshot/{digest}/": {
-      "get": {
-        "description": "Get a computed screenshot from cache.",
+    "/api/v1/chart/{pk}/favorites/": {
+      "delete": {
+        "description": "Remove the chart from the user favorite list",
         "parameters": [
           {
             "in": "path",
@@ -11467,10 +12785,106 @@
             "schema": {
               "type": "integer"
             }
-          },
-          {
-            "in": "path",
-            "name": "digest",
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "result": {
+                      "type": "object"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Chart removed from favorites"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Charts"
+        ]
+      },
+      "post": {
+        "description": "Marks the chart as favorite for the current user",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "result": {
+                      "type": "object"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Chart added to favorites"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Charts"
+        ]
+      }
+    },
+    "/api/v1/chart/{pk}/screenshot/{digest}/": {
+      "get": {
+        "description": "Get a computed screenshot from cache.",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          },
+          {
+            "in": "path",
+            "name": "digest",
             "required": true,
             "schema": {
               "type": "string"
@@ -11507,7 +12921,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/chart/{pk}/thumbnail/{digest}/": {
@@ -11564,7 +12980,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Charts"]
+        "tags": [
+          "Charts"
+        ]
       }
     },
     "/api/v1/css_template/": {
@@ -11617,7 +13035,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       },
       "get": {
         "description": "Get a list of CSS templates, use Rison or JSON query parameters for filtering, sorting, pagination and for selecting specific columns and metadata.",
@@ -11722,7 +13142,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       },
       "post": {
         "description": "Create a CSS template",
@@ -11774,7 +13196,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       }
     },
     "/api/v1/css_template/_info": {
@@ -11858,7 +13282,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       }
     },
     "/api/v1/css_template/related/{column_name}": {
@@ -11913,7 +13339,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       }
     },
     "/api/v1/css_template/{pk}": {
@@ -11960,7 +13388,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       },
       "get": {
         "description": "Get a CSS template",
@@ -12058,7 +13488,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       },
       "put": {
         "description": "Update a CSS template",
@@ -12120,7 +13552,9 @@
             "jwt": []
           }
         ],
-        "tags": ["CSS Templates"]
+        "tags": [
+          "CSS Templates"
+        ]
       }
     },
     "/api/v1/dashboard/": {
@@ -12176,7 +13610,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       },
       "get": {
         "description": "Get a list of dashboards, use Rison or JSON query parameters for filtering, sorting, pagination and  for selecting specific columns and metadata.",
@@ -12281,7 +13717,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       },
       "post": {
         "description": "Create a new Dashboard.",
@@ -12333,7 +13771,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/_info": {
@@ -12417,7 +13857,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/export/": {
@@ -12468,7 +13910,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/favorite_status/": {
@@ -12516,7 +13960,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/import/": {
@@ -12543,12 +13989,12 @@
                     "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keys": {
-                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+                  "ssh_tunnel_private_key_passwords": {
+                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keyspasswords": {
-                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key_password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+                  "ssh_tunnel_private_keys": {
+                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                     "type": "string"
                   }
                 },
@@ -12592,7 +14038,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/permalink/{key}": {
@@ -12646,7 +14094,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboard Permanent Link"]
+        "tags": [
+          "Dashboard Permanent Link"
+        ]
       }
     },
     "/api/v1/dashboard/related/{column_name}": {
@@ -12702,7 +14152,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/{dashboard_id}/filtersets": {
@@ -12776,7 +14228,9 @@
             "jwt": []
           }
         ],
-        "tags": ["FilterSetRestApi"]
+        "tags": [
+          "FilterSetRestApi"
+        ]
       },
       "post": {
         "description": "Create a new Dashboard's Filter Set.",
@@ -12842,7 +14296,9 @@
             "jwt": []
           }
         ],
-        "tags": ["FilterSetRestApi"]
+        "tags": [
+          "FilterSetRestApi"
+        ]
       }
     },
     "/api/v1/dashboard/{dashboard_id}/filtersets/{pk}": {
@@ -12903,7 +14359,9 @@
             "jwt": []
           }
         ],
-        "tags": ["FilterSetRestApi"]
+        "tags": [
+          "FilterSetRestApi"
+        ]
       },
       "put": {
         "description": "Changes a Dashboard's Filter set.",
@@ -12979,7 +14437,9 @@
             "jwt": []
           }
         ],
-        "tags": ["FilterSetRestApi"]
+        "tags": [
+          "FilterSetRestApi"
+        ]
       }
     },
     "/api/v1/dashboard/{id_or_slug}": {
@@ -13030,7 +14490,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/{id_or_slug}/charts": {
@@ -13083,7 +14545,78 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
+      }
+    },
+    "/api/v1/dashboard/{id_or_slug}/copy/": {
+      "post": {
+        "parameters": [
+          {
+            "description": "The dashboard id or slug",
+            "in": "path",
+            "name": "id_or_slug",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          }
+        ],
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/DashboardCopySchema"
+              }
+            }
+          },
+          "required": true
+        },
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "id": {
+                      "type": "number"
+                    },
+                    "last_modified_time": {
+                      "type": "number"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Id of new dashboard and last modified time"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "403": {
+            "$ref": "#/components/responses/403"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "summary": "Makes a copy of an existing dashboard",
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/{id_or_slug}/datasets": {
@@ -13137,7 +14670,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/{id_or_slug}/embedded": {
@@ -13182,7 +14717,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       },
       "get": {
         "description": "Returns the dashboard's embedded configuration",
@@ -13225,7 +14762,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       },
       "post": {
         "description": "Sets a dashboard's embedded configuration.",
@@ -13279,7 +14818,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       },
       "put": {
         "description": "Sets a dashboard's embedded configuration.",
@@ -13333,7 +14874,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/{pk}": {
@@ -13386,7 +14929,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       },
       "put": {
         "description": "Changes a Dashboard.",
@@ -13457,7 +15002,105 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
+      }
+    },
+    "/api/v1/dashboard/{pk}/favorites/": {
+      "delete": {
+        "description": "Remove the dashboard from the user favorite list",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "result": {
+                      "type": "object"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Dashboard removed from favorites"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Dashboards"
+        ]
+      },
+      "post": {
+        "description": "Marks the dashboard as favorite for the current user",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "result": {
+                      "type": "object"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Dashboard added to favorites"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/dashboard/{pk}/filter_state": {
@@ -13525,7 +15168,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboard Filter State"]
+        "tags": [
+          "Dashboard Filter State"
+        ]
       }
     },
     "/api/v1/dashboard/{pk}/filter_state/{key}": {
@@ -13588,7 +15233,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboard Filter State"]
+        "tags": [
+          "Dashboard Filter State"
+        ]
       },
       "get": {
         "description": "Retrives a value.",
@@ -13648,7 +15295,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboard Filter State"]
+        "tags": [
+          "Dashboard Filter State"
+        ]
       },
       "put": {
         "description": "Updates an existing value.",
@@ -13725,7 +15374,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboard Filter State"]
+        "tags": [
+          "Dashboard Filter State"
+        ]
       }
     },
     "/api/v1/dashboard/{pk}/permalink": {
@@ -13745,7 +15396,7 @@
           "content": {
             "application/json": {
               "schema": {
-                "$ref": "#/components/schemas/DashboardPermalinkPostSchema"
+                "$ref": "#/components/schemas/DashboardPermalinkStateSchema"
               }
             }
           },
@@ -13790,7 +15441,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboard Permanent Link"]
+        "tags": [
+          "Dashboard Permanent Link"
+        ]
       }
     },
     "/api/v1/dashboard/{pk}/thumbnail/{digest}/": {
@@ -13874,7 +15527,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Dashboards"]
+        "tags": [
+          "Dashboards"
+        ]
       }
     },
     "/api/v1/database/": {
@@ -13981,7 +15636,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Database"]
+        "tags": [
+          "Database"
+        ]
       },
       "post": {
         "description": "Create a new Database.",
@@ -14033,7 +15690,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Database"]
+        "tags": [
+          "Database"
+        ]
       }
     },
     "/api/v1/database/_info": {
@@ -14117,7 +15776,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Database"]
+        "tags": [
+          "Database"
+        ]
       }
     },
     "/api/v1/database/available/": {
@@ -14196,7 +15857,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Database"]
+        "tags": [
+          "Database"
+        ]
       }
     },
     "/api/v1/database/export/": {
@@ -14242,7 +15905,9 @@
             "jwt": []
           }
         ],
-        "tags": ["Database"]
+        "tags": [
+          "Database"
+        ]
       }
     },
     "/api/v1/database/import/": {
@@ -14269,12 +15934,12 @@
                     "description": "JSON map of passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keys": {
-                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
+                  "ssh_tunnel_private_key_passwords": {
+                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
                     "type": "string"
                   },
-                  "ssh_tunnel_private_keyspasswords": {
-                    "description": "JSON map of private_key_passwords for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key_password should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key_password\"}`.",
+                  "ssh_tunnel_private_keys": {
+                    "description": "JSON map of private_keys for each ssh_tunnel associated to a featured database in the ZIP file. If the ZIP includes a ssh_tunnel config in the path `databases/MyDatabase.yaml`, the private_key should be provided in the following format: `{\"databases/MyDatabase.yaml\": \"my_private_key\"}`.",
                     "type": "string"
                   }
                 },
@@ -14318,44 +15983,2164 @@
             "jwt": []
           }
         ],
-        "tags": ["Database"]
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/test_connection/": {
+      "post": {
+        "description": "Tests a database connection",
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/DatabaseTestConnectionSchema"
+              }
+            }
+          },
+          "description": "Database schema",
+          "required": true
+        },
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "message": {
+                      "type": "string"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Database Test Connection"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/validate_parameters/": {
+      "post": {
+        "description": "Validates parameters used to connect to a database",
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/DatabaseValidateParametersSchema"
+              }
+            }
+          },
+          "description": "DB-specific parameters",
+          "required": true
+        },
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "message": {
+                      "type": "string"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Database Test Connection"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}": {
+      "delete": {
+        "description": "Deletes a Database.",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "message": {
+                      "type": "string"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Database deleted"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "403": {
+            "$ref": "#/components/responses/403"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      },
+      "get": {
+        "description": "Get a database",
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Database"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      },
+      "put": {
+        "description": "Changes a Database.",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/DatabaseRestApi.put"
+              }
+            }
+          },
+          "description": "Database schema",
+          "required": true
+        },
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "id": {
+                      "type": "number"
+                    },
+                    "result": {
+                      "$ref": "#/components/schemas/DatabaseRestApi.put"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Database changed"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "403": {
+            "$ref": "#/components/responses/403"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/connection": {
+      "get": {
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/DatabaseConnectionSchema"
+                }
+              }
+            },
+            "description": "Database with connection info"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "summary": "Get a database connection info",
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/function_names/": {
+      "get": {
+        "description": "Get function names supported by a database",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/DatabaseFunctionNamesResponse"
+                }
+              }
+            },
+            "description": "Query result"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/related_objects/": {
+      "get": {
+        "description": "Get charts and dashboards count associated to a database",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/DatabaseRelatedObjectsResponse"
+                }
+              }
+            },
+            "description": "Query result"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/schemas/": {
+      "get": {
+        "description": "Get all schemas from a database",
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          },
+          {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/database_schemas_query_schema"
+                }
+              }
+            },
+            "in": "query",
+            "name": "q"
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/SchemasResponseSchema"
+                }
+              }
+            },
+            "description": "A List of all schemas from the database"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/schemas_access_for_file_upload/": {
+      "get": {
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/DatabaseSchemaAccessForFileUploadResponse"
+                }
+              }
+            },
+            "description": "The list of the database schemas where to upload information"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "summary": "The list of the database schemas where to upload information",
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/select_star/{table_name}/": {
+      "get": {
+        "description": "Get database select star for table",
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          },
+          {
+            "description": "Table name",
+            "in": "path",
+            "name": "table_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          },
+          {
+            "description": "Table schema",
+            "in": "path",
+            "name": "schema_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/SelectStarResponseSchema"
+                }
+              }
+            },
+            "description": "SQL statement for a select star for table"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/": {
+      "get": {
+        "description": "Get database select star for table",
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          },
+          {
+            "description": "Table name",
+            "in": "path",
+            "name": "table_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          },
+          {
+            "description": "Table schema",
+            "in": "path",
+            "name": "schema_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/SelectStarResponseSchema"
+                }
+              }
+            },
+            "description": "SQL statement for a select star for table"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/ssh_tunnel/": {
+      "delete": {
+        "description": "Deletes a SSH Tunnel.",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "message": {
+                      "type": "string"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "SSH Tunnel deleted"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "403": {
+            "$ref": "#/components/responses/403"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/table/{table_name}/{schema_name}/": {
+      "get": {
+        "description": "Get database table metadata",
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          },
+          {
+            "description": "Table name",
+            "in": "path",
+            "name": "table_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          },
+          {
+            "description": "Table schema",
+            "in": "path",
+            "name": "schema_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/TableMetadataResponseSchema"
+                }
+              }
+            },
+            "description": "Table metadata information"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/": {
+      "get": {
+        "description": "Response depends on each DB engine spec normally focused on partitions",
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          },
+          {
+            "description": "Table name",
+            "in": "path",
+            "name": "table_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          },
+          {
+            "description": "Table schema",
+            "in": "path",
+            "name": "schema_name",
+            "required": true,
+            "schema": {
+              "type": "string"
+            }
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/TableExtraMetadataResponseSchema"
+                }
+              }
+            },
+            "description": "Table extra metadata information"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "summary": "Get table extra metadata",
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/tables/": {
+      "get": {
+        "parameters": [
+          {
+            "description": "The database id",
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          },
+          {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "$ref": "#/components/schemas/database_tables_query_schema"
+                }
+              }
+            },
+            "in": "query",
+            "name": "q"
+          }
+        ],
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "count": {
+                      "type": "integer"
+                    },
+                    "result": {
+                      "description": "A List of tables for given database",
+                      "items": {
+                        "$ref": "#/components/schemas/DatabaseTablesResponse"
+                      },
+                      "type": "array"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Tables list"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "422": {
+            "$ref": "#/components/responses/422"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "summary": "Get a list of tables for given database",
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/database/{pk}/validate_sql/": {
+      "post": {
+        "description": "Validates arbitrary SQL.",
+        "parameters": [
+          {
+            "in": "path",
+            "name": "pk",
+            "required": true,
+            "schema": {
+              "type": "integer"
+            }
+          }
+        ],
+        "requestBody": {
+          "content": {
+            "application/json": {
+              "schema": {
+                "$ref": "#/components/schemas/ValidateSQLRequest"
+              }
+            }
+          },
+          "description": "Validate SQL request",
+          "required": true
+        },
+        "responses": {
+          "200": {
+            "content": {
+              "application/json": {
+                "schema": {
+                  "properties": {
+                    "result": {
+                      "description": "A List of SQL errors found on the statement",
+                      "items": {
+                        "$ref": "#/components/schemas/ValidateSQLResponse"
+                      },
+                      "type": "array"
+                    }
+                  },
+                  "type": "object"
+                }
+              }
+            },
+            "description": "Validation result"
+          },
+          "400": {
+            "$ref": "#/components/responses/400"
+          },
+          "401": {
+            "$ref": "#/components/responses/401"
+          },
+          "404": {
+            "$ref": "#/components/responses/404"
+          },
+          "500": {
+            "$ref": "#/components/responses/500"
+          }
+        },
+        "security": [
+          {
+            "jwt": []
+          }
+        ],
+        "summary": "Validates that arbitrary sql is acceptable for the given database",
+        "tags": [
+          "Database"
+        ]
+      }
+    },
+    "/api/v1/dataset/": {
+      "delete": {
+        "description": "Deletes multiple Datasets in a bulk operation.",
+        "parameters": [
+          {
+            "content": {
... 7521 lines suppressed ...