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

rusackas pushed a commit to branch feat/db-engine-docs
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 5154fb5d6e571a6c8362ab18973e27a9fd2feb56
Author: Evan Rusackas <[email protected]>
AuthorDate: Sun Dec 21 12:18:06 2025 -0800

    feat(docs): generate individual pages per database
    
    - Update generate-database-docs.mjs to create individual MDX files
    - Each database now has its own page at /docs/configuration/databases/{slug}
    - Overview page at /docs/configuration/databases/ with filterable table
    - Fix category counts in filter dropdown
    - Links in table now point to individual pages
    - Use cached databases.json when it has full diagnostic data
    
    Generated 64 database pages + index page.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
---
 docs/docs/configuration/databases.mdx              | 193 --------------
 docs/docs/configuration/databases/_category_.json  |   8 +
 .../docs/configuration/databases/amazon-athena.mdx |  29 +++
 .../configuration/databases/amazon-dynamodb.mdx    |  29 +++
 .../configuration/databases/amazon-redshift.mdx    |  29 +++
 docs/docs/configuration/databases/apache-doris.mdx |  29 +++
 docs/docs/configuration/databases/apache-drill.mdx |  29 +++
 docs/docs/configuration/databases/apache-druid.mdx |  29 +++
 docs/docs/configuration/databases/apache-hive.mdx  |  29 +++
 .../docs/configuration/databases/apache-impala.mdx |  29 +++
 docs/docs/configuration/databases/apache-kylin.mdx |  29 +++
 docs/docs/configuration/databases/apache-pinot.mdx |  29 +++
 docs/docs/configuration/databases/apache-solr.mdx  |  29 +++
 .../configuration/databases/apache-spark-sql.mdx   |  29 +++
 docs/docs/configuration/databases/ascend.mdx       |  29 +++
 .../databases/aurora-mysql-data-api.mdx            |  29 +++
 .../databases/aurora-postgresql-data-api.mdx       |  29 +++
 .../docs/configuration/databases/azure-synapse.mdx |  29 +++
 docs/docs/configuration/databases/base.mdx         |  29 +++
 .../databases/clickhouse-connect-superset.mdx      |  29 +++
 docs/docs/configuration/databases/clickhouse.mdx   |  29 +++
 docs/docs/configuration/databases/cockroachdb.mdx  |  29 +++
 docs/docs/configuration/databases/couchbase.mdx    |  29 +++
 docs/docs/configuration/databases/cratedb.mdx      |  29 +++
 docs/docs/configuration/databases/databend.mdx     |  29 +++
 .../databases/databricks-interactive-cluster.mdx   |  29 +++
 .../configuration/databases/databricks-legacy.mdx  |  29 +++
 .../databases/databricks-sql-endpoint.mdx          |  29 +++
 docs/docs/configuration/databases/databricks.mdx   |  29 +++
 docs/docs/configuration/databases/denodo.mdx       |  29 +++
 docs/docs/configuration/databases/dremio.mdx       |  29 +++
 docs/docs/configuration/databases/duckdb.mdx       |  29 +++
 .../databases/elasticsearch-opendistro-sql.mdx     |  29 +++
 .../databases/elasticsearch-sql-api.mdx            |  29 +++
 docs/docs/configuration/databases/exasol.mdx       |  29 +++
 docs/docs/configuration/databases/firebird.mdx     |  29 +++
 docs/docs/configuration/databases/firebolt.mdx     |  29 +++
 .../docs/configuration/databases/google-sheets.mdx |  29 +++
 .../docs/configuration/databases/ibm-db2-for-i.mdx |  29 +++
 docs/docs/configuration/databases/ibm-db2.mdx      |  29 +++
 .../databases/ibm-netezza-performance-server.mdx   |  29 +++
 docs/docs/configuration/databases/index.mdx        |  90 +++++++
 docs/docs/configuration/databases/kustokql.mdx     |  29 +++
 docs/docs/configuration/databases/kustosql.mdx     |  29 +++
 docs/docs/configuration/databases/mariadb.mdx      |  29 +++
 .../databases/microsoft-sql-server.mdx             |  29 +++
 docs/docs/configuration/databases/motherduck.mdx   |  29 +++
 docs/docs/configuration/databases/mysql.mdx        |  29 +++
 docs/docs/configuration/databases/oceanbase.mdx    |  29 +++
 docs/docs/configuration/databases/ocient.mdx       |  29 +++
 docs/docs/configuration/databases/oracle.mdx       |  29 +++
 docs/docs/configuration/databases/parseable.mdx    |  29 +++
 docs/docs/configuration/databases/postgresql.mdx   |  29 +++
 docs/docs/configuration/databases/presto.mdx       |  29 +++
 docs/docs/configuration/databases/risingwave.mdx   |  29 +++
 docs/docs/configuration/databases/sap-hana.mdx     |  29 +++
 docs/docs/configuration/databases/shillelagh.mdx   |  29 +++
 docs/docs/configuration/databases/singlestore.mdx  |  29 +++
 docs/docs/configuration/databases/snowflake.mdx    |  29 +++
 docs/docs/configuration/databases/sqlite.mdx       |  29 +++
 docs/docs/configuration/databases/starrocks.mdx    |  29 +++
 .../databases/superset-meta-database.mdx           |  29 +++
 docs/docs/configuration/databases/tdengine.mdx     |  29 +++
 docs/docs/configuration/databases/teradata.mdx     |  29 +++
 docs/docs/configuration/databases/trino.mdx        |  29 +++
 docs/docs/configuration/databases/vertica.mdx      |  29 +++
 docs/docs/configuration/databases/ydb.mdx          |  29 +++
 docs/scripts/generate-database-docs.mjs            | 281 ++++++++++++++++++---
 docs/src/components/databases/DatabaseIndex.tsx    |  25 +-
 69 files changed, 2222 insertions(+), 231 deletions(-)

diff --git a/docs/docs/configuration/databases.mdx 
b/docs/docs/configuration/databases.mdx
deleted file mode 100644
index 447e5b7142..0000000000
--- a/docs/docs/configuration/databases.mdx
+++ /dev/null
@@ -1,193 +0,0 @@
----
-title: Connecting to Databases
-hide_title: true
-sidebar_position: 1
-version: 1
----
-
-import { DatabaseIndex, DatabasePage } from '@site/src/components/databases';
-import databaseData from '@site/src/data/databases.json';
-
-# Connecting to Databases
-
-Superset does not ship bundled with connectivity to databases. The main step 
in connecting
-Superset to a database is to **install the proper database driver(s)**
-in your environment.
-
-:::note
-You'll need to install the required packages for the database you want to use 
as your metadata database
-as well as the packages needed to connect to the databases you want to access 
through Superset.
-For information about setting up Superset's metadata database, please refer to
-installation documentations ([Docker 
Compose](/docs/installation/docker-compose), 
[Kubernetes](/docs/installation/kubernetes))
-:::
-
-This documentation tries to keep pointer to the different drivers for commonly 
used database
-engine.
-
-## Installing Database Drivers
-
-Superset requires a Python [DB-API database 
driver](https://peps.python.org/pep-0249/)
-and a [SQLAlchemy dialect](https://docs.sqlalchemy.org/en/20/dialects/) to be 
installed for
-each database engine you want to connect to.
-
-You can read more [here](#installing-drivers-in-docker-images) about how to
-install new database drivers into your Superset configuration.
-
-## Supported Databases Overview
-
-The following table shows all databases supported by Superset, along with 
their feature support
-and documentation status. Click on any database name to jump to its detailed 
documentation.
-
-<DatabaseIndex data={databaseData} />
-
----
-
-Note that many other databases are supported, the main criteria being the 
existence of a functional
-SQLAlchemy dialect and Python driver. Searching for the keyword "sqlalchemy + 
(database name)"
-should help get you to the right place.
-
-If your database or data engine isn't on the list but a SQL interface
-exists, please file an issue on the
-[Superset GitHub repo](https://github.com/apache/superset/issues), so we can 
work on documenting and
-supporting it.
-
-If you'd like to build a database connector for Superset integration,
-read the [following 
tutorial](https://preset.io/blog/building-database-connector/).
-
-## Installing Drivers in Docker Images
-
-Superset requires a Python database driver to be installed for each additional
-type of database you want to connect to.
-
-In this example, we'll walk through how to install the MySQL connector library.
-The connector library installation process is the same for all additional 
libraries.
-
-### 1. Determine the driver you need
-
-Consult the [list of database drivers](#supported-databases-overview) above
-and find the PyPI package needed to connect to your database. In this example, 
we're connecting
-to a MySQL database, so we'll need the `mysqlclient` connector library.
-
-### 2. Install the driver in the container
-
-We need to get the `mysqlclient` library installed into the Superset docker 
container
-(it doesn't matter if it's installed on the host machine). We could enter the 
running
-container with `docker exec -it <container_name> bash` and run `pip install 
mysqlclient`
-there, but that wouldn't persist permanently.
-
-To address this, the Superset `docker compose` deployment uses the convention
-of a `requirements-local.txt` file. All packages listed in this file will be 
installed
-into the container from PyPI at runtime. This file will be ignored by Git for
-the purposes of local development.
-
-Create the file `requirements-local.txt` in a subdirectory called `docker` that
-exists in the directory with your `docker-compose.yml` or 
`docker-compose-non-dev.yml` file.
-
-```bash
-# Run from the repo root:
-touch ./docker/requirements-local.txt
-```
-
-Add the driver identified in step above. You can use a text editor or do
-it from the command line like:
-
-```bash
-echo "mysqlclient" >> ./docker/requirements-local.txt
-```
-
-**If you are running a stock (non-customized) Superset image**, you are done.
-Launch Superset with `docker compose -f docker-compose-non-dev.yml up` and
-the driver should be present.
-
-You can check its presence by entering the running container with
-`docker exec -it <container_name> bash` and running `pip freeze`. The PyPI 
package should
-be present in the printed list.
-
-**If you're running a customized docker image**, rebuild your local image with 
the new
-driver baked in:
-
-```bash
-docker compose build --force-rm
-```
-
-After the rebuild of the Docker images is complete, relaunch Superset by
-running `docker compose up`.
-
-### 3. Connect to the Database
-
-Now that you've got a database driver installed in your container, you should 
be able to connect
-to your database via the Superset web UI.
-
-As an admin user, go to Settings -> Data: Database Connections and click the 
+DATABASE button.
-From there, follow the steps on the
-[Using Database Connection UI page](#connecting-through-the-ui).
-
-Consult the documentation for your specific database type below to determine
-the connection string and any other parameters you need to input.
-
-Click the "Test Connection" button, which should result in a popup message 
saying,
-"Connection looks good!".
-
-### 4. Troubleshooting
-
-If the test fails, review your docker logs for error messages. Superset uses 
SQLAlchemy
-to connect to databases; to troubleshoot the connection string for your 
database, you might
-start Python in the Superset application container or host environment and try 
to connect
-directly to the desired database and fetch data. This eliminates Superset for 
the
-purposes of isolating the problem.
-
-Repeat this process for each type of database you want Superset to connect to.
-
-## Connecting Through the UI
-
-The preferred way to add a database is via the Database Connection UI feature, 
accessible in
-the menu under Settings -> Data: Database Connections. This UI provides a 
guided flow
-for entering connection details.
-
-Here is a screenshot of the modal:
-
-<img src="/img/tutorial/tutorial_01_add_database.png" alt="Add Database" 
width="600"/>
-
-For most databases, you'll need:
-- **Display Name**: A friendly name for this connection
-- **SQLAlchemy URI**: The connection string (format depends on the database)
-- **Additional Parameters**: Optional JSON configuration
-
-### Testing Your Connection
-
-Always click "Test Connection" before saving. Common issues include:
-- Incorrect credentials
-- Network/firewall blocking the connection
-- Missing database driver
-- SSL/TLS configuration issues
-
-## Database-Specific Documentation
-
-Below is detailed documentation for each supported database, including 
connection strings,
-authentication methods, driver options, and advanced configuration.
-
-{Object.entries(databaseData.databases)
-  .sort(([a], [b]) => a.localeCompare(b))
-  .map(([name, db]) => (
-    <DatabasePage key={name} name={name} database={db} />
-  ))}
-
-## Additional Resources
-
-### Adding New Database Drivers
-
-If your database isn't listed above, you may still be able to connect if:
-1. A SQLAlchemy dialect exists for the database
-2. A Python DB-API driver is available
-
-Search for "sqlalchemy + (your database name)" to find available dialects.
-
-### Contributing Documentation
-
-To add or improve database documentation:
-1. Update the `DATABASE_DOCS` dictionary in `superset/db_engine_specs/lib.py`
-2. Run `yarn generate:database-docs` in the `docs/` directory
-3. The documentation pages will be automatically generated
-
-This ensures that documentation stays in sync with the codebase and can be
-verified programmatically.
diff --git a/docs/docs/configuration/databases/_category_.json 
b/docs/docs/configuration/databases/_category_.json
new file mode 100644
index 0000000000..1611054d64
--- /dev/null
+++ b/docs/docs/configuration/databases/_category_.json
@@ -0,0 +1,8 @@
+{
+  "label": "Databases",
+  "position": 1,
+  "link": {
+    "type": "doc",
+    "id": "configuration/databases/index"
+  }
+}
\ No newline at end of file
diff --git a/docs/docs/configuration/databases/amazon-athena.mdx 
b/docs/docs/configuration/databases/amazon-athena.mdx
new file mode 100644
index 0000000000..2bd96d0d6d
--- /dev/null
+++ b/docs/docs/configuration/databases/amazon-athena.mdx
@@ -0,0 +1,29 @@
+---
+title: Amazon Athena
+sidebar_label: Amazon Athena
+description: "Documentation for Amazon Athena database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Amazon Athena" database={databaseData.databases["Amazon 
Athena"]} />
diff --git a/docs/docs/configuration/databases/amazon-dynamodb.mdx 
b/docs/docs/configuration/databases/amazon-dynamodb.mdx
new file mode 100644
index 0000000000..eccbc03df4
--- /dev/null
+++ b/docs/docs/configuration/databases/amazon-dynamodb.mdx
@@ -0,0 +1,29 @@
+---
+title: Amazon DynamoDB
+sidebar_label: Amazon DynamoDB
+description: "Documentation for Amazon DynamoDB database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Amazon DynamoDB" database={databaseData.databases["Amazon 
DynamoDB"]} />
diff --git a/docs/docs/configuration/databases/amazon-redshift.mdx 
b/docs/docs/configuration/databases/amazon-redshift.mdx
new file mode 100644
index 0000000000..1d1a9a8666
--- /dev/null
+++ b/docs/docs/configuration/databases/amazon-redshift.mdx
@@ -0,0 +1,29 @@
+---
+title: Amazon Redshift
+sidebar_label: Amazon Redshift
+description: "Documentation for Amazon Redshift database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Amazon Redshift" database={databaseData.databases["Amazon 
Redshift"]} />
diff --git a/docs/docs/configuration/databases/apache-doris.mdx 
b/docs/docs/configuration/databases/apache-doris.mdx
new file mode 100644
index 0000000000..524003549b
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-doris.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Doris
+sidebar_label: Apache Doris
+description: "Apache Doris is a high-performance real-time analytical 
database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Doris" database={databaseData.databases["Apache 
Doris"]} />
diff --git a/docs/docs/configuration/databases/apache-drill.mdx 
b/docs/docs/configuration/databases/apache-drill.mdx
new file mode 100644
index 0000000000..9e0ae5b7b5
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-drill.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Drill
+sidebar_label: Apache Drill
+description: "Apache Drill is a schema-free SQL query engine for Hadoop and 
NoSQL."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Drill" database={databaseData.databases["Apache 
Drill"]} />
diff --git a/docs/docs/configuration/databases/apache-druid.mdx 
b/docs/docs/configuration/databases/apache-druid.mdx
new file mode 100644
index 0000000000..7a11be6269
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-druid.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Druid
+sidebar_label: Apache Druid
+description: "Apache Druid is a high performance real-time analytics database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Druid" database={databaseData.databases["Apache 
Druid"]} />
diff --git a/docs/docs/configuration/databases/apache-hive.mdx 
b/docs/docs/configuration/databases/apache-hive.mdx
new file mode 100644
index 0000000000..6a97e96236
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-hive.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Hive
+sidebar_label: Apache Hive
+description: "Apache Hive is a data warehouse infrastructure built on Hadoop."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Hive" database={databaseData.databases["Apache 
Hive"]} />
diff --git a/docs/docs/configuration/databases/apache-impala.mdx 
b/docs/docs/configuration/databases/apache-impala.mdx
new file mode 100644
index 0000000000..5171d342fe
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-impala.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Impala
+sidebar_label: Apache Impala
+description: "Apache Impala is an open-source massively parallel processing 
SQL query engine."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Impala" database={databaseData.databases["Apache 
Impala"]} />
diff --git a/docs/docs/configuration/databases/apache-kylin.mdx 
b/docs/docs/configuration/databases/apache-kylin.mdx
new file mode 100644
index 0000000000..98c387fa35
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-kylin.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Kylin
+sidebar_label: Apache Kylin
+description: "Apache Kylin is an open-source OLAP engine for big data."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Kylin" database={databaseData.databases["Apache 
Kylin"]} />
diff --git a/docs/docs/configuration/databases/apache-pinot.mdx 
b/docs/docs/configuration/databases/apache-pinot.mdx
new file mode 100644
index 0000000000..cf083771cb
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-pinot.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Pinot
+sidebar_label: Apache Pinot
+description: "Apache Pinot is a real-time distributed OLAP datastore."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Pinot" database={databaseData.databases["Apache 
Pinot"]} />
diff --git a/docs/docs/configuration/databases/apache-solr.mdx 
b/docs/docs/configuration/databases/apache-solr.mdx
new file mode 100644
index 0000000000..6260309cb9
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-solr.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Solr
+sidebar_label: Apache Solr
+description: "Apache Solr is an open-source enterprise search platform."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Solr" database={databaseData.databases["Apache 
Solr"]} />
diff --git a/docs/docs/configuration/databases/apache-spark-sql.mdx 
b/docs/docs/configuration/databases/apache-spark-sql.mdx
new file mode 100644
index 0000000000..2781f67d3c
--- /dev/null
+++ b/docs/docs/configuration/databases/apache-spark-sql.mdx
@@ -0,0 +1,29 @@
+---
+title: Apache Spark SQL
+sidebar_label: Apache Spark SQL
+description: "Apache Spark SQL is a module for structured data processing."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Apache Spark SQL" database={databaseData.databases["Apache 
Spark SQL"]} />
diff --git a/docs/docs/configuration/databases/ascend.mdx 
b/docs/docs/configuration/databases/ascend.mdx
new file mode 100644
index 0000000000..4563c1b0bc
--- /dev/null
+++ b/docs/docs/configuration/databases/ascend.mdx
@@ -0,0 +1,29 @@
+---
+title: Ascend
+sidebar_label: Ascend
+description: "Documentation for Ascend database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Ascend" database={databaseData.databases["Ascend"]} />
diff --git a/docs/docs/configuration/databases/aurora-mysql-data-api.mdx 
b/docs/docs/configuration/databases/aurora-mysql-data-api.mdx
new file mode 100644
index 0000000000..58939855cc
--- /dev/null
+++ b/docs/docs/configuration/databases/aurora-mysql-data-api.mdx
@@ -0,0 +1,29 @@
+---
+title: Aurora MySQL (Data API)
+sidebar_label: Aurora MySQL (Data API)
+description: "Documentation for Aurora MySQL (Data API) database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Aurora MySQL (Data API)" 
database={databaseData.databases["Aurora MySQL (Data API)"]} />
diff --git a/docs/docs/configuration/databases/aurora-postgresql-data-api.mdx 
b/docs/docs/configuration/databases/aurora-postgresql-data-api.mdx
new file mode 100644
index 0000000000..b7627b001a
--- /dev/null
+++ b/docs/docs/configuration/databases/aurora-postgresql-data-api.mdx
@@ -0,0 +1,29 @@
+---
+title: Aurora PostgreSQL (Data API)
+sidebar_label: Aurora PostgreSQL (Data API)
+description: "Documentation for Aurora PostgreSQL (Data API) database 
connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Aurora PostgreSQL (Data API)" 
database={databaseData.databases["Aurora PostgreSQL (Data API)"]} />
diff --git a/docs/docs/configuration/databases/azure-synapse.mdx 
b/docs/docs/configuration/databases/azure-synapse.mdx
new file mode 100644
index 0000000000..0d79774afb
--- /dev/null
+++ b/docs/docs/configuration/databases/azure-synapse.mdx
@@ -0,0 +1,29 @@
+---
+title: Azure Synapse
+sidebar_label: Azure Synapse
+description: "Documentation for Azure Synapse database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Azure Synapse" database={databaseData.databases["Azure 
Synapse"]} />
diff --git a/docs/docs/configuration/databases/base.mdx 
b/docs/docs/configuration/databases/base.mdx
new file mode 100644
index 0000000000..88a03fdfa7
--- /dev/null
+++ b/docs/docs/configuration/databases/base.mdx
@@ -0,0 +1,29 @@
+---
+title: base
+sidebar_label: base
+description: "Documentation for base database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="base" database={databaseData.databases["base"]} />
diff --git a/docs/docs/configuration/databases/clickhouse-connect-superset.mdx 
b/docs/docs/configuration/databases/clickhouse-connect-superset.mdx
new file mode 100644
index 0000000000..9f4970e2e1
--- /dev/null
+++ b/docs/docs/configuration/databases/clickhouse-connect-superset.mdx
@@ -0,0 +1,29 @@
+---
+title: ClickHouse Connect (Superset)
+sidebar_label: ClickHouse Connect (Superset)
+description: "Documentation for ClickHouse Connect (Superset) database 
connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="ClickHouse Connect (Superset)" 
database={databaseData.databases["ClickHouse Connect (Superset)"]} />
diff --git a/docs/docs/configuration/databases/clickhouse.mdx 
b/docs/docs/configuration/databases/clickhouse.mdx
new file mode 100644
index 0000000000..66ff6a0a8e
--- /dev/null
+++ b/docs/docs/configuration/databases/clickhouse.mdx
@@ -0,0 +1,29 @@
+---
+title: ClickHouse
+sidebar_label: ClickHouse
+description: "ClickHouse is an open-source column-oriented OLAP database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="ClickHouse" 
database={databaseData.databases["ClickHouse"]} />
diff --git a/docs/docs/configuration/databases/cockroachdb.mdx 
b/docs/docs/configuration/databases/cockroachdb.mdx
new file mode 100644
index 0000000000..9becdc4628
--- /dev/null
+++ b/docs/docs/configuration/databases/cockroachdb.mdx
@@ -0,0 +1,29 @@
+---
+title: CockroachDB
+sidebar_label: CockroachDB
+description: "CockroachDB is a distributed SQL database built for cloud 
applications."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="CockroachDB" 
database={databaseData.databases["CockroachDB"]} />
diff --git a/docs/docs/configuration/databases/couchbase.mdx 
b/docs/docs/configuration/databases/couchbase.mdx
new file mode 100644
index 0000000000..36ef32f098
--- /dev/null
+++ b/docs/docs/configuration/databases/couchbase.mdx
@@ -0,0 +1,29 @@
+---
+title: Couchbase
+sidebar_label: Couchbase
+description: "Couchbase is a distributed NoSQL document database with SQL 
support."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Couchbase" database={databaseData.databases["Couchbase"]} 
/>
diff --git a/docs/docs/configuration/databases/cratedb.mdx 
b/docs/docs/configuration/databases/cratedb.mdx
new file mode 100644
index 0000000000..40c7f02bdd
--- /dev/null
+++ b/docs/docs/configuration/databases/cratedb.mdx
@@ -0,0 +1,29 @@
+---
+title: CrateDB
+sidebar_label: CrateDB
+description: "CrateDB is a distributed SQL database for machine data."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="CrateDB" database={databaseData.databases["CrateDB"]} />
diff --git a/docs/docs/configuration/databases/databend.mdx 
b/docs/docs/configuration/databases/databend.mdx
new file mode 100644
index 0000000000..ba6e7983a0
--- /dev/null
+++ b/docs/docs/configuration/databases/databend.mdx
@@ -0,0 +1,29 @@
+---
+title: Databend
+sidebar_label: Databend
+description: "Databend is an open-source cloud data warehouse."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Databend" database={databaseData.databases["Databend"]} />
diff --git 
a/docs/docs/configuration/databases/databricks-interactive-cluster.mdx 
b/docs/docs/configuration/databases/databricks-interactive-cluster.mdx
new file mode 100644
index 0000000000..78e1db99c9
--- /dev/null
+++ b/docs/docs/configuration/databases/databricks-interactive-cluster.mdx
@@ -0,0 +1,29 @@
+---
+title: Databricks Interactive Cluster
+sidebar_label: Databricks Interactive Cluster
+description: "Documentation for Databricks Interactive Cluster database 
connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Databricks Interactive Cluster" 
database={databaseData.databases["Databricks Interactive Cluster"]} />
diff --git a/docs/docs/configuration/databases/databricks-legacy.mdx 
b/docs/docs/configuration/databases/databricks-legacy.mdx
new file mode 100644
index 0000000000..1f58f32cfc
--- /dev/null
+++ b/docs/docs/configuration/databases/databricks-legacy.mdx
@@ -0,0 +1,29 @@
+---
+title: Databricks (legacy)
+sidebar_label: Databricks (legacy)
+description: "Documentation for Databricks (legacy) database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Databricks (legacy)" 
database={databaseData.databases["Databricks (legacy)"]} />
diff --git a/docs/docs/configuration/databases/databricks-sql-endpoint.mdx 
b/docs/docs/configuration/databases/databricks-sql-endpoint.mdx
new file mode 100644
index 0000000000..4bc7040d77
--- /dev/null
+++ b/docs/docs/configuration/databases/databricks-sql-endpoint.mdx
@@ -0,0 +1,29 @@
+---
+title: Databricks SQL Endpoint
+sidebar_label: Databricks SQL Endpoint
+description: "Documentation for Databricks SQL Endpoint database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Databricks SQL Endpoint" 
database={databaseData.databases["Databricks SQL Endpoint"]} />
diff --git a/docs/docs/configuration/databases/databricks.mdx 
b/docs/docs/configuration/databases/databricks.mdx
new file mode 100644
index 0000000000..9cce5b85db
--- /dev/null
+++ b/docs/docs/configuration/databases/databricks.mdx
@@ -0,0 +1,29 @@
+---
+title: Databricks
+sidebar_label: Databricks
+description: "Databricks is a unified analytics platform built on Apache 
Spark."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Databricks" 
database={databaseData.databases["Databricks"]} />
diff --git a/docs/docs/configuration/databases/denodo.mdx 
b/docs/docs/configuration/databases/denodo.mdx
new file mode 100644
index 0000000000..b8258a633b
--- /dev/null
+++ b/docs/docs/configuration/databases/denodo.mdx
@@ -0,0 +1,29 @@
+---
+title: Denodo
+sidebar_label: Denodo
+description: "Denodo is a data virtualization platform."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Denodo" database={databaseData.databases["Denodo"]} />
diff --git a/docs/docs/configuration/databases/dremio.mdx 
b/docs/docs/configuration/databases/dremio.mdx
new file mode 100644
index 0000000000..79c5d24393
--- /dev/null
+++ b/docs/docs/configuration/databases/dremio.mdx
@@ -0,0 +1,29 @@
+---
+title: Dremio
+sidebar_label: Dremio
+description: "Dremio is a data lake engine for self-service analytics."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Dremio" database={databaseData.databases["Dremio"]} />
diff --git a/docs/docs/configuration/databases/duckdb.mdx 
b/docs/docs/configuration/databases/duckdb.mdx
new file mode 100644
index 0000000000..d76b580bd3
--- /dev/null
+++ b/docs/docs/configuration/databases/duckdb.mdx
@@ -0,0 +1,29 @@
+---
+title: DuckDB
+sidebar_label: DuckDB
+description: "DuckDB is an in-process analytical database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="DuckDB" database={databaseData.databases["DuckDB"]} />
diff --git a/docs/docs/configuration/databases/elasticsearch-opendistro-sql.mdx 
b/docs/docs/configuration/databases/elasticsearch-opendistro-sql.mdx
new file mode 100644
index 0000000000..52071cadc7
--- /dev/null
+++ b/docs/docs/configuration/databases/elasticsearch-opendistro-sql.mdx
@@ -0,0 +1,29 @@
+---
+title: ElasticSearch (OpenDistro SQL)
+sidebar_label: ElasticSearch (OpenDistro SQL)
+description: "Documentation for ElasticSearch (OpenDistro SQL) database 
connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="ElasticSearch (OpenDistro SQL)" 
database={databaseData.databases["ElasticSearch (OpenDistro SQL)"]} />
diff --git a/docs/docs/configuration/databases/elasticsearch-sql-api.mdx 
b/docs/docs/configuration/databases/elasticsearch-sql-api.mdx
new file mode 100644
index 0000000000..aa191d3428
--- /dev/null
+++ b/docs/docs/configuration/databases/elasticsearch-sql-api.mdx
@@ -0,0 +1,29 @@
+---
+title: ElasticSearch (SQL API)
+sidebar_label: ElasticSearch (SQL API)
+description: "Documentation for ElasticSearch (SQL API) database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="ElasticSearch (SQL API)" 
database={databaseData.databases["ElasticSearch (SQL API)"]} />
diff --git a/docs/docs/configuration/databases/exasol.mdx 
b/docs/docs/configuration/databases/exasol.mdx
new file mode 100644
index 0000000000..7080ec461f
--- /dev/null
+++ b/docs/docs/configuration/databases/exasol.mdx
@@ -0,0 +1,29 @@
+---
+title: Exasol
+sidebar_label: Exasol
+description: "Exasol is a high-performance in-memory analytics database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Exasol" database={databaseData.databases["Exasol"]} />
diff --git a/docs/docs/configuration/databases/firebird.mdx 
b/docs/docs/configuration/databases/firebird.mdx
new file mode 100644
index 0000000000..af8b8e3f32
--- /dev/null
+++ b/docs/docs/configuration/databases/firebird.mdx
@@ -0,0 +1,29 @@
+---
+title: Firebird
+sidebar_label: Firebird
+description: "Firebird is an open-source relational database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Firebird" database={databaseData.databases["Firebird"]} />
diff --git a/docs/docs/configuration/databases/firebolt.mdx 
b/docs/docs/configuration/databases/firebolt.mdx
new file mode 100644
index 0000000000..fecb6eb6ed
--- /dev/null
+++ b/docs/docs/configuration/databases/firebolt.mdx
@@ -0,0 +1,29 @@
+---
+title: Firebolt
+sidebar_label: Firebolt
+description: "Firebolt is a cloud data warehouse for sub-second analytics."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Firebolt" database={databaseData.databases["Firebolt"]} />
diff --git a/docs/docs/configuration/databases/google-sheets.mdx 
b/docs/docs/configuration/databases/google-sheets.mdx
new file mode 100644
index 0000000000..deba34876d
--- /dev/null
+++ b/docs/docs/configuration/databases/google-sheets.mdx
@@ -0,0 +1,29 @@
+---
+title: Google Sheets
+sidebar_label: Google Sheets
+description: "Query Google Sheets using SQL via the shillelagh library."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Google Sheets" database={databaseData.databases["Google 
Sheets"]} />
diff --git a/docs/docs/configuration/databases/ibm-db2-for-i.mdx 
b/docs/docs/configuration/databases/ibm-db2-for-i.mdx
new file mode 100644
index 0000000000..3eb4e96c86
--- /dev/null
+++ b/docs/docs/configuration/databases/ibm-db2-for-i.mdx
@@ -0,0 +1,29 @@
+---
+title: IBM Db2 for i
+sidebar_label: IBM Db2 for i
+description: "Documentation for IBM Db2 for i database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="IBM Db2 for i" database={databaseData.databases["IBM Db2 
for i"]} />
diff --git a/docs/docs/configuration/databases/ibm-db2.mdx 
b/docs/docs/configuration/databases/ibm-db2.mdx
new file mode 100644
index 0000000000..ab38f882ed
--- /dev/null
+++ b/docs/docs/configuration/databases/ibm-db2.mdx
@@ -0,0 +1,29 @@
+---
+title: IBM Db2
+sidebar_label: IBM Db2
+description: "IBM Db2 is a family of data management products."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="IBM Db2" database={databaseData.databases["IBM Db2"]} />
diff --git 
a/docs/docs/configuration/databases/ibm-netezza-performance-server.mdx 
b/docs/docs/configuration/databases/ibm-netezza-performance-server.mdx
new file mode 100644
index 0000000000..392760a805
--- /dev/null
+++ b/docs/docs/configuration/databases/ibm-netezza-performance-server.mdx
@@ -0,0 +1,29 @@
+---
+title: IBM Netezza Performance Server
+sidebar_label: IBM Netezza Performance Server
+description: "Documentation for IBM Netezza Performance Server database 
connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="IBM Netezza Performance Server" 
database={databaseData.databases["IBM Netezza Performance Server"]} />
diff --git a/docs/docs/configuration/databases/index.mdx 
b/docs/docs/configuration/databases/index.mdx
new file mode 100644
index 0000000000..b041cc56c7
--- /dev/null
+++ b/docs/docs/configuration/databases/index.mdx
@@ -0,0 +1,90 @@
+---
+title: Connecting to Databases
+sidebar_label: Overview
+sidebar_position: 1
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabaseIndex } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+# Connecting to Databases
+
+Superset does not ship bundled with connectivity to databases. The main step 
in connecting
+Superset to a database is to **install the proper database driver(s)** in your 
environment.
+
+:::note
+You'll need to install the required packages for the database you want to use 
as your metadata database
+as well as the packages needed to connect to the databases you want to access 
through Superset.
+For information about setting up Superset's metadata database, please refer to
+installation documentations ([Docker 
Compose](/docs/installation/docker-compose), 
[Kubernetes](/docs/installation/kubernetes))
+:::
+
+## Supported Databases
+
+Superset supports **64 databases** with varying levels of feature support.
+Click on any database name to see detailed documentation including connection 
strings,
+authentication methods, and configuration options.
+
+<DatabaseIndex data={databaseData} />
+
+## Installing Database Drivers
+
+Superset requires a Python [DB-API database 
driver](https://peps.python.org/pep-0249/)
+and a [SQLAlchemy dialect](https://docs.sqlalchemy.org/en/20/dialects/) to be 
installed for
+each database engine you want to connect to.
+
+### Installing Drivers in Docker
+
+For Docker deployments, create a `requirements-local.txt` file in the `docker` 
directory:
+
+```bash
+# Create the requirements file
+touch ./docker/requirements-local.txt
+
+# Add your driver (e.g., for PostgreSQL)
+echo "psycopg2-binary" >> ./docker/requirements-local.txt
+```
+
+Then restart your containers. The drivers will be installed automatically.
+
+### Installing Drivers with pip
+
+For non-Docker installations:
+
+```bash
+pip install <driver-package>
+```
+
+See individual database pages for the specific driver packages needed.
+
+## Connecting Through the UI
+
+1. Go to **Settings → Data: Database Connections**
+2. Click **+ DATABASE**
+3. Select your database type or enter a SQLAlchemy URI
+4. Click **Test Connection** to verify
+5. Click **Connect** to save
+
+## Contributing
+
+To add or update database documentation, edit the `DATABASE_DOCS` dictionary in
+`superset/db_engine_specs/lib.py`. Documentation pages are auto-generated from 
this data.
diff --git a/docs/docs/configuration/databases/kustokql.mdx 
b/docs/docs/configuration/databases/kustokql.mdx
new file mode 100644
index 0000000000..c1b22ad258
--- /dev/null
+++ b/docs/docs/configuration/databases/kustokql.mdx
@@ -0,0 +1,29 @@
+---
+title: KustoKQL
+sidebar_label: KustoKQL
+description: "Documentation for KustoKQL database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="KustoKQL" database={databaseData.databases["KustoKQL"]} />
diff --git a/docs/docs/configuration/databases/kustosql.mdx 
b/docs/docs/configuration/databases/kustosql.mdx
new file mode 100644
index 0000000000..e7d12636c0
--- /dev/null
+++ b/docs/docs/configuration/databases/kustosql.mdx
@@ -0,0 +1,29 @@
+---
+title: KustoSQL
+sidebar_label: KustoSQL
+description: "Documentation for KustoSQL database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="KustoSQL" database={databaseData.databases["KustoSQL"]} />
diff --git a/docs/docs/configuration/databases/mariadb.mdx 
b/docs/docs/configuration/databases/mariadb.mdx
new file mode 100644
index 0000000000..f5149d73f1
--- /dev/null
+++ b/docs/docs/configuration/databases/mariadb.mdx
@@ -0,0 +1,29 @@
+---
+title: MariaDB
+sidebar_label: MariaDB
+description: "MariaDB is a community-developed fork of MySQL."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="MariaDB" database={databaseData.databases["MariaDB"]} />
diff --git a/docs/docs/configuration/databases/microsoft-sql-server.mdx 
b/docs/docs/configuration/databases/microsoft-sql-server.mdx
new file mode 100644
index 0000000000..2f8e04b45f
--- /dev/null
+++ b/docs/docs/configuration/databases/microsoft-sql-server.mdx
@@ -0,0 +1,29 @@
+---
+title: Microsoft SQL Server
+sidebar_label: Microsoft SQL Server
+description: "Microsoft SQL Server is a relational database management system."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Microsoft SQL Server" 
database={databaseData.databases["Microsoft SQL Server"]} />
diff --git a/docs/docs/configuration/databases/motherduck.mdx 
b/docs/docs/configuration/databases/motherduck.mdx
new file mode 100644
index 0000000000..5f5aaf9384
--- /dev/null
+++ b/docs/docs/configuration/databases/motherduck.mdx
@@ -0,0 +1,29 @@
+---
+title: MotherDuck
+sidebar_label: MotherDuck
+description: "Documentation for MotherDuck database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="MotherDuck" 
database={databaseData.databases["MotherDuck"]} />
diff --git a/docs/docs/configuration/databases/mysql.mdx 
b/docs/docs/configuration/databases/mysql.mdx
new file mode 100644
index 0000000000..2f9a50ec97
--- /dev/null
+++ b/docs/docs/configuration/databases/mysql.mdx
@@ -0,0 +1,29 @@
+---
+title: MySQL
+sidebar_label: MySQL
+description: "MySQL is a popular open-source relational database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="MySQL" database={databaseData.databases["MySQL"]} />
diff --git a/docs/docs/configuration/databases/oceanbase.mdx 
b/docs/docs/configuration/databases/oceanbase.mdx
new file mode 100644
index 0000000000..76dc533d4c
--- /dev/null
+++ b/docs/docs/configuration/databases/oceanbase.mdx
@@ -0,0 +1,29 @@
+---
+title: OceanBase
+sidebar_label: OceanBase
+description: "OceanBase is a distributed relational database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="OceanBase" database={databaseData.databases["OceanBase"]} 
/>
diff --git a/docs/docs/configuration/databases/ocient.mdx 
b/docs/docs/configuration/databases/ocient.mdx
new file mode 100644
index 0000000000..e94d460f5b
--- /dev/null
+++ b/docs/docs/configuration/databases/ocient.mdx
@@ -0,0 +1,29 @@
+---
+title: Ocient
+sidebar_label: Ocient
+description: "Ocient is a hyperscale data analytics database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Ocient" database={databaseData.databases["Ocient"]} />
diff --git a/docs/docs/configuration/databases/oracle.mdx 
b/docs/docs/configuration/databases/oracle.mdx
new file mode 100644
index 0000000000..d8e4dbad40
--- /dev/null
+++ b/docs/docs/configuration/databases/oracle.mdx
@@ -0,0 +1,29 @@
+---
+title: Oracle
+sidebar_label: Oracle
+description: "Oracle Database is a multi-model database management system."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Oracle" database={databaseData.databases["Oracle"]} />
diff --git a/docs/docs/configuration/databases/parseable.mdx 
b/docs/docs/configuration/databases/parseable.mdx
new file mode 100644
index 0000000000..d2b543121f
--- /dev/null
+++ b/docs/docs/configuration/databases/parseable.mdx
@@ -0,0 +1,29 @@
+---
+title: Parseable
+sidebar_label: Parseable
+description: "Parseable is a distributed log analytics database with SQL-like 
query interface."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Parseable" database={databaseData.databases["Parseable"]} 
/>
diff --git a/docs/docs/configuration/databases/postgresql.mdx 
b/docs/docs/configuration/databases/postgresql.mdx
new file mode 100644
index 0000000000..0f9e88e8e0
--- /dev/null
+++ b/docs/docs/configuration/databases/postgresql.mdx
@@ -0,0 +1,29 @@
+---
+title: PostgreSQL
+sidebar_label: PostgreSQL
+description: "PostgreSQL is an advanced open-source relational database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="PostgreSQL" 
database={databaseData.databases["PostgreSQL"]} />
diff --git a/docs/docs/configuration/databases/presto.mdx 
b/docs/docs/configuration/databases/presto.mdx
new file mode 100644
index 0000000000..0b5cddf330
--- /dev/null
+++ b/docs/docs/configuration/databases/presto.mdx
@@ -0,0 +1,29 @@
+---
+title: Presto
+sidebar_label: Presto
+description: "Presto is a distributed SQL query engine for big data."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Presto" database={databaseData.databases["Presto"]} />
diff --git a/docs/docs/configuration/databases/risingwave.mdx 
b/docs/docs/configuration/databases/risingwave.mdx
new file mode 100644
index 0000000000..b31e14eea9
--- /dev/null
+++ b/docs/docs/configuration/databases/risingwave.mdx
@@ -0,0 +1,29 @@
+---
+title: RisingWave
+sidebar_label: RisingWave
+description: "RisingWave is a distributed streaming database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="RisingWave" 
database={databaseData.databases["RisingWave"]} />
diff --git a/docs/docs/configuration/databases/sap-hana.mdx 
b/docs/docs/configuration/databases/sap-hana.mdx
new file mode 100644
index 0000000000..9745d840a2
--- /dev/null
+++ b/docs/docs/configuration/databases/sap-hana.mdx
@@ -0,0 +1,29 @@
+---
+title: SAP HANA
+sidebar_label: SAP HANA
+description: "SAP HANA is an in-memory relational database and application 
platform."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="SAP HANA" database={databaseData.databases["SAP HANA"]} />
diff --git a/docs/docs/configuration/databases/shillelagh.mdx 
b/docs/docs/configuration/databases/shillelagh.mdx
new file mode 100644
index 0000000000..c4062d8df8
--- /dev/null
+++ b/docs/docs/configuration/databases/shillelagh.mdx
@@ -0,0 +1,29 @@
+---
+title: Shillelagh
+sidebar_label: Shillelagh
+description: "Documentation for Shillelagh database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Shillelagh" 
database={databaseData.databases["Shillelagh"]} />
diff --git a/docs/docs/configuration/databases/singlestore.mdx 
b/docs/docs/configuration/databases/singlestore.mdx
new file mode 100644
index 0000000000..184936d7b0
--- /dev/null
+++ b/docs/docs/configuration/databases/singlestore.mdx
@@ -0,0 +1,29 @@
+---
+title: SingleStore
+sidebar_label: SingleStore
+description: "SingleStore is a distributed SQL database for real-time 
analytics."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="SingleStore" 
database={databaseData.databases["SingleStore"]} />
diff --git a/docs/docs/configuration/databases/snowflake.mdx 
b/docs/docs/configuration/databases/snowflake.mdx
new file mode 100644
index 0000000000..4348e15454
--- /dev/null
+++ b/docs/docs/configuration/databases/snowflake.mdx
@@ -0,0 +1,29 @@
+---
+title: Snowflake
+sidebar_label: Snowflake
+description: "Snowflake is a cloud-native data warehouse."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Snowflake" database={databaseData.databases["Snowflake"]} 
/>
diff --git a/docs/docs/configuration/databases/sqlite.mdx 
b/docs/docs/configuration/databases/sqlite.mdx
new file mode 100644
index 0000000000..21410f6c20
--- /dev/null
+++ b/docs/docs/configuration/databases/sqlite.mdx
@@ -0,0 +1,29 @@
+---
+title: SQLite
+sidebar_label: SQLite
+description: "SQLite is a self-contained, serverless SQL database engine."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="SQLite" database={databaseData.databases["SQLite"]} />
diff --git a/docs/docs/configuration/databases/starrocks.mdx 
b/docs/docs/configuration/databases/starrocks.mdx
new file mode 100644
index 0000000000..6422e9f549
--- /dev/null
+++ b/docs/docs/configuration/databases/starrocks.mdx
@@ -0,0 +1,29 @@
+---
+title: StarRocks
+sidebar_label: StarRocks
+description: "StarRocks is a next-generation sub-second MPP database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="StarRocks" database={databaseData.databases["StarRocks"]} 
/>
diff --git a/docs/docs/configuration/databases/superset-meta-database.mdx 
b/docs/docs/configuration/databases/superset-meta-database.mdx
new file mode 100644
index 0000000000..fb9ec3b4c1
--- /dev/null
+++ b/docs/docs/configuration/databases/superset-meta-database.mdx
@@ -0,0 +1,29 @@
+---
+title: Superset meta database
+sidebar_label: Superset meta database
+description: "Documentation for Superset meta database database connection."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Superset meta database" 
database={databaseData.databases["Superset meta database"]} />
diff --git a/docs/docs/configuration/databases/tdengine.mdx 
b/docs/docs/configuration/databases/tdengine.mdx
new file mode 100644
index 0000000000..6b2b9492a6
--- /dev/null
+++ b/docs/docs/configuration/databases/tdengine.mdx
@@ -0,0 +1,29 @@
+---
+title: TDengine
+sidebar_label: TDengine
+description: "TDengine is a high-performance time-series database for IoT."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="TDengine" database={databaseData.databases["TDengine"]} />
diff --git a/docs/docs/configuration/databases/teradata.mdx 
b/docs/docs/configuration/databases/teradata.mdx
new file mode 100644
index 0000000000..b7fafa78a3
--- /dev/null
+++ b/docs/docs/configuration/databases/teradata.mdx
@@ -0,0 +1,29 @@
+---
+title: Teradata
+sidebar_label: Teradata
+description: "Teradata is an enterprise data warehouse platform."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Teradata" database={databaseData.databases["Teradata"]} />
diff --git a/docs/docs/configuration/databases/trino.mdx 
b/docs/docs/configuration/databases/trino.mdx
new file mode 100644
index 0000000000..e7c70426c5
--- /dev/null
+++ b/docs/docs/configuration/databases/trino.mdx
@@ -0,0 +1,29 @@
+---
+title: Trino
+sidebar_label: Trino
+description: "Trino is a distributed SQL query engine for big data analytics."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Trino" database={databaseData.databases["Trino"]} />
diff --git a/docs/docs/configuration/databases/vertica.mdx 
b/docs/docs/configuration/databases/vertica.mdx
new file mode 100644
index 0000000000..dec50d80a0
--- /dev/null
+++ b/docs/docs/configuration/databases/vertica.mdx
@@ -0,0 +1,29 @@
+---
+title: Vertica
+sidebar_label: Vertica
+description: "Vertica is a column-oriented analytics database."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="Vertica" database={databaseData.databases["Vertica"]} />
diff --git a/docs/docs/configuration/databases/ydb.mdx 
b/docs/docs/configuration/databases/ydb.mdx
new file mode 100644
index 0000000000..329ef8edaa
--- /dev/null
+++ b/docs/docs/configuration/databases/ydb.mdx
@@ -0,0 +1,29 @@
+---
+title: YDB
+sidebar_label: YDB
+description: "YDB is a distributed SQL database by Yandex."
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="YDB" database={databaseData.databases["YDB"]} />
diff --git a/docs/scripts/generate-database-docs.mjs 
b/docs/scripts/generate-database-docs.mjs
index 65904dbca9..9164cd3d5e 100644
--- a/docs/scripts/generate-database-docs.mjs
+++ b/docs/scripts/generate-database-docs.mjs
@@ -38,8 +38,9 @@ const __filename = fileURLToPath(import.meta.url);
 const __dirname = path.dirname(__filename);
 const ROOT_DIR = path.resolve(__dirname, '../..');
 const DOCS_DIR = path.resolve(__dirname, '..');
-const OUTPUT_DIR = path.join(DOCS_DIR, 'src/data');
-const OUTPUT_FILE = path.join(OUTPUT_DIR, 'databases.json');
+const DATA_OUTPUT_DIR = path.join(DOCS_DIR, 'src/data');
+const DATA_OUTPUT_FILE = path.join(DATA_OUTPUT_DIR, 'databases.json');
+const MDX_OUTPUT_DIR = path.join(DOCS_DIR, 'docs/configuration/databases');
 const LIB_PY_PATH = path.join(ROOT_DIR, 'superset/db_engine_specs/lib.py');
 
 /**
@@ -270,51 +271,271 @@ function categorizeDatabase(name, docs) {
 }
 
 /**
- * Main function
+ * Convert database name to a URL-friendly slug
  */
-async function main() {
-  console.log('Generating database documentation data...\n');
+function toSlug(name) {
+  return name
+    .toLowerCase()
+    .replace(/[^a-z0-9]+/g, '-')
+    .replace(/^-|-$/g, '');
+}
+
+/**
+ * Generate MDX content for a single database page
+ */
+function generateDatabaseMDX(name, db, slug) {
+  const description = db.documentation?.description || `Documentation for 
${name} database connection.`;
+  const shortDesc = description.slice(0, 160).replace(/"/g, '\\"');
+
+  return `---
+title: ${name}
+sidebar_label: ${name}
+description: "${shortDesc}"
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabasePage } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+<DatabasePage name="${name}" database={databaseData.databases["${name}"]} />
+`;
+}
+
+/**
+ * Generate the index MDX for the databases overview
+ */
+function generateIndexMDX(statistics) {
+  return `---
+title: Connecting to Databases
+sidebar_label: Overview
+sidebar_position: 1
+---
+
+{/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/}
+
+import { DatabaseIndex } from '@site/src/components/databases';
+import databaseData from '@site/src/data/databases.json';
+
+# Connecting to Databases
+
+Superset does not ship bundled with connectivity to databases. The main step 
in connecting
+Superset to a database is to **install the proper database driver(s)** in your 
environment.
+
+:::note
+You'll need to install the required packages for the database you want to use 
as your metadata database
+as well as the packages needed to connect to the databases you want to access 
through Superset.
+For information about setting up Superset's metadata database, please refer to
+installation documentations ([Docker 
Compose](/docs/installation/docker-compose), 
[Kubernetes](/docs/installation/kubernetes))
+:::
+
+## Supported Databases
+
+Superset supports **${statistics.totalDatabases} databases** with varying 
levels of feature support.
+Click on any database name to see detailed documentation including connection 
strings,
+authentication methods, and configuration options.
+
+<DatabaseIndex data={databaseData} />
+
+## Installing Database Drivers
+
+Superset requires a Python [DB-API database 
driver](https://peps.python.org/pep-0249/)
+and a [SQLAlchemy dialect](https://docs.sqlalchemy.org/en/20/dialects/) to be 
installed for
+each database engine you want to connect to.
+
+### Installing Drivers in Docker
+
+For Docker deployments, create a \`requirements-local.txt\` file in the 
\`docker\` directory:
+
+\`\`\`bash
+# Create the requirements file
+touch ./docker/requirements-local.txt
+
+# Add your driver (e.g., for PostgreSQL)
+echo "psycopg2-binary" >> ./docker/requirements-local.txt
+\`\`\`
+
+Then restart your containers. The drivers will be installed automatically.
+
+### Installing Drivers with pip
+
+For non-Docker installations:
+
+\`\`\`bash
+pip install <driver-package>
+\`\`\`
+
+See individual database pages for the specific driver packages needed.
 
-  // Ensure output directory exists
-  if (!fs.existsSync(OUTPUT_DIR)) {
-    fs.mkdirSync(OUTPUT_DIR, { recursive: true });
-    console.log(`Created directory: ${OUTPUT_DIR}\n`);
+## Connecting Through the UI
+
+1. Go to **Settings → Data: Database Connections**
+2. Click **+ DATABASE**
+3. Select your database type or enter a SQLAlchemy URI
+4. Click **Test Connection** to verify
+5. Click **Connect** to save
+
+## Contributing
+
+To add or update database documentation, edit the \`DATABASE_DOCS\` dictionary 
in
+\`superset/db_engine_specs/lib.py\`. Documentation pages are auto-generated 
from this data.
+`;
+}
+
+/**
+ * Load existing database data if available and valid
+ */
+function loadExistingData() {
+  if (!fs.existsSync(DATA_OUTPUT_FILE)) {
+    return null;
   }
 
-  // Try to run the full script first, fall back to extraction
-  let databases = tryRunFullScript();
+  try {
+    const content = fs.readFileSync(DATA_OUTPUT_FILE, 'utf-8');
+    const data = JSON.parse(content);
+
+    // Check if the data has scores (meaning it was generated with full Flask 
context)
+    const hasScores = Object.values(data.databases || {}).some(
+      (db) => db.score > 0
+    );
 
-  if (!databases) {
-    databases = extractDatabaseDocsSimple();
+    if (hasScores && Object.keys(data.databases || {}).length > 50) {
+      console.log('Using existing databases.json with full diagnostic data');
+      return data;
+    }
+  } catch (error) {
+    console.log('Could not load existing data:', error.message);
   }
 
-  if (!databases || Object.keys(databases).length === 0) {
-    console.error('Failed to generate database documentation data.');
-    console.error('Make sure superset is properly installed or lib.py is 
accessible.');
-    process.exit(1);
+  return null;
+}
+
+/**
+ * Main function
+ */
+async function main() {
+  console.log('Generating database documentation...\n');
+
+  // Ensure output directories exist
+  if (!fs.existsSync(DATA_OUTPUT_DIR)) {
+    fs.mkdirSync(DATA_OUTPUT_DIR, { recursive: true });
   }
+  if (!fs.existsSync(MDX_OUTPUT_DIR)) {
+    fs.mkdirSync(MDX_OUTPUT_DIR, { recursive: true });
+  }
+
+  // First, try to use existing data if it has full diagnostics
+  let existingData = loadExistingData();
+  let databases;
+  let statistics;
+
+  if (existingData) {
+    databases = existingData.databases;
+    statistics = existingData.statistics;
+    console.log(`Using cached data with ${Object.keys(databases).length} 
databases\n`);
+  } else {
+    // Try to run the full script first, fall back to extraction
+    databases = tryRunFullScript();
+
+    if (!databases) {
+      databases = extractDatabaseDocsSimple();
+    }
 
-  console.log(`\nProcessed ${Object.keys(databases).length} databases`);
+    if (!databases || Object.keys(databases).length === 0) {
+      console.error('Failed to generate database documentation data.');
+      console.error('Make sure superset is properly installed or lib.py is 
accessible.');
+      process.exit(1);
+    }
 
-  // Build statistics
-  const statistics = buildStatistics(databases);
+    console.log(`Processed ${Object.keys(databases).length} databases\n`);
 
-  // Create the final output structure
-  const output = {
-    generated: new Date().toISOString(),
-    statistics,
-    databases,
+    // Build statistics
+    statistics = buildStatistics(databases);
+
+    // Create the final output structure
+    const output = {
+      generated: new Date().toISOString(),
+      statistics,
+      databases,
+    };
+
+    // Write the JSON file
+    fs.writeFileSync(DATA_OUTPUT_FILE, JSON.stringify(output, null, 2));
+    console.log(`Generated: ${path.relative(DOCS_DIR, DATA_OUTPUT_FILE)}`);
+  }
+
+  // Generate individual MDX files for each database
+  console.log(`\nGenerating MDX files in ${path.relative(DOCS_DIR, 
MDX_OUTPUT_DIR)}/`);
+
+  let mdxCount = 0;
+  for (const [name, db] of Object.entries(databases)) {
+    const slug = toSlug(name);
+    const mdxContent = generateDatabaseMDX(name, db, slug);
+    const mdxPath = path.join(MDX_OUTPUT_DIR, `${slug}.mdx`);
+    fs.writeFileSync(mdxPath, mdxContent);
+    mdxCount++;
+  }
+  console.log(`  Generated ${mdxCount} database pages`);
+
+  // Generate index page
+  const indexContent = generateIndexMDX(statistics);
+  const indexPath = path.join(MDX_OUTPUT_DIR, 'index.mdx');
+  fs.writeFileSync(indexPath, indexContent);
+  console.log(`  Generated index page`);
+
+  // Generate _category_.json for sidebar ordering
+  const categoryJson = {
+    label: 'Databases',
+    position: 1,
+    link: {
+      type: 'doc',
+      id: 'configuration/databases/index',
+    },
   };
+  fs.writeFileSync(
+    path.join(MDX_OUTPUT_DIR, '_category_.json'),
+    JSON.stringify(categoryJson, null, 2)
+  );
+  console.log(`  Generated _category_.json`);
 
-  // Write the JSON file
-  fs.writeFileSync(OUTPUT_FILE, JSON.stringify(output, null, 2));
-  console.log(`\nGenerated: ${path.relative(DOCS_DIR, OUTPUT_FILE)}`);
   console.log(`\nStatistics:`);
   console.log(`  Total databases: ${statistics.totalDatabases}`);
   console.log(`  With documentation: ${statistics.withDocumentation}`);
   console.log(`  With connection strings: ${statistics.withConnectionString}`);
-  console.log(`  With multiple drivers: ${statistics.withDrivers}`);
-  console.log(`  With auth methods: ${statistics.withAuthMethods}`);
   console.log(`  Categories: ${Object.keys(statistics.byCategory).length}`);
 
   console.log('\nDone!');
diff --git a/docs/src/components/databases/DatabaseIndex.tsx 
b/docs/src/components/databases/DatabaseIndex.tsx
index bdebc4e3f5..0f8bab1d49 100644
--- a/docs/src/components/databases/DatabaseIndex.tsx
+++ b/docs/src/components/databases/DatabaseIndex.tsx
@@ -201,10 +201,16 @@ const DatabaseIndex: React.FC<DatabaseIndexProps> = ({ 
data }) => {
       .sort((a, b) => b.score - a.score);
   }, [databaseList, searchText, categoryFilter]);
 
-  // Get unique categories for filter
-  const categories = useMemo(() => {
-    const cats = new Set(databaseList.map((db) => db.category));
-    return Array.from(cats).sort();
+  // Get unique categories and counts for filter
+  const { categories, categoryCounts } = useMemo(() => {
+    const counts: Record<string, number> = {};
+    databaseList.forEach((db) => {
+      counts[db.category] = (counts[db.category] || 0) + 1;
+    });
+    return {
+      categories: Object.keys(counts).sort(),
+      categoryCounts: counts,
+    };
   }, [databaseList]);
 
   // Table columns
@@ -215,10 +221,13 @@ const DatabaseIndex: React.FC<DatabaseIndexProps> = ({ 
data }) => {
       key: 'name',
       sorter: (a: TableEntry, b: TableEntry) => a.name.localeCompare(b.name),
       render: (name: string, record: TableEntry) => {
-        // Link to parent for compatible DBs, otherwise to own section
+        // Convert name to URL slug
+        const toSlug = (n: string) => n.toLowerCase().replace(/[^a-z0-9]+/g, 
'-').replace(/^-|-$/g, '');
+
+        // Link to parent for compatible DBs, otherwise to own page
         const linkTarget = record.isCompatible && record.compatibleWith
-          ? `#${record.compatibleWith.toLowerCase().replace(/\s+/g, '-')}`
-          : `#${name.toLowerCase().replace(/\s+/g, '-')}`;
+          ? `/docs/configuration/databases/${toSlug(record.compatibleWith)}`
+          : `/docs/configuration/databases/${toSlug(name)}`;
 
         return (
           <div>
@@ -390,7 +399,7 @@ const DatabaseIndex: React.FC<DatabaseIndexProps> = ({ data 
}) => {
                     color={CATEGORY_COLORS[cat] || 'default'}
                     style={{ marginRight: 8 }}
                   >
-                    {statistics.byCategory[cat]?.length || 0}
+                    {categoryCounts[cat] || 0}
                   </Tag>
                   {cat}
                 </span>

Reply via email to