Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/.nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v20.18.3
v20.20.0
6 changes: 3 additions & 3 deletions docs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@
"react-table": "^7.8.0",
"remark-import-partial": "^0.0.2",
"reselect": "^5.1.1",
"storybook": "^8.6.15",
"swagger-ui-react": "^5.31.0",
"storybook": "^8.6.16",
"swagger-ui-react": "^5.31.1",
"swc-loader": "^0.2.7",
"tinycolor2": "^1.4.2",
"unist-util-visit": "^5.1.0"
Expand All @@ -103,7 +103,7 @@
"globals": "^17.3.0",
"prettier": "^3.8.1",
"typescript": "~5.9.3",
"typescript-eslint": "^8.55.0",
"typescript-eslint": "^8.56.0",
"webpack": "^5.105.2"
},
"browserslist": {
Expand Down
8 changes: 6 additions & 2 deletions docs/src/components/databases/DatabasePage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@ const DatabasePage: React.FC<DatabasePageProps> = ({ database, name }) => {
</div>
);

// Ensure db filename can be obtained regardless of how db doc gets generated
// by either Flask app (superset.db_engine_specs.postgres) or fallback mode (postgres)
const databaseModuleFilename = `${database.module?.split('.').pop()}.py`;

// Render driver information
const renderDrivers = () => {
if (!docs?.drivers?.length) return null;
Expand Down Expand Up @@ -770,11 +774,11 @@ const DatabasePage: React.FC<DatabasePageProps> = ({ database, name }) => {
Help improve this documentation by editing the engine spec:
</Text>
<a
href={`https://github.com/apache/superset/edit/master/superset/db_engine_specs/${database.module}.py`}
href={`https://github.com/apache/superset/edit/master/superset/db_engine_specs/${databaseModuleFilename}`}
target="_blank"
rel="noreferrer"
>
<EditOutlined /> Edit {database.module}.py
<EditOutlined /> Edit {databaseModuleFilename}
</a>
</Space>
</Card>
Expand Down
170 changes: 163 additions & 7 deletions docs/src/data/databases.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"generated": "2026-01-31T10:47:01.730Z",
"generated": "2026-02-16T04:47:37.257Z",
"statistics": {
"totalDatabases": 70,
"withDocumentation": 70,
"withConnectionString": 70,
"totalDatabases": 72,
"withDocumentation": 72,
"withConnectionString": 72,
"withDrivers": 36,
"withAuthMethods": 4,
"supportsJoins": 66,
"supportsSubqueries": 67,
"supportsJoins": 68,
"supportsSubqueries": 69,
"supportsDynamicSchema": 15,
"supportsCatalog": 9,
"averageScore": 32,
"averageScore": 31,
"maxScore": 201,
"byCategory": {
"Other Databases": [
Expand Down Expand Up @@ -74,6 +74,7 @@
"Apache Kylin",
"Azure Synapse",
"Ocient",
"Apache Phoenix",
"Amazon Redshift",
"RisingWave",
"SingleStore",
Expand Down Expand Up @@ -151,12 +152,14 @@
"Greenplum",
"Apache Hive",
"Apache Impala",
"Apache IoTDB",
"Apache Kylin",
"MariaDB",
"MonetDB",
"MySQL",
"OceanBase",
"Parseable",
"Apache Phoenix",
"Apache Pinot",
"PostgreSQL",
"Presto",
Expand Down Expand Up @@ -187,6 +190,7 @@
"Time Series Databases": [
"CrateDB",
"Apache Druid",
"Apache IoTDB",
"Apache Pinot",
"TDengine"
],
Expand All @@ -197,7 +201,9 @@
"Apache Druid",
"Apache Hive",
"Apache Impala",
"Apache IoTDB",
"Apache Kylin",
"Apache Phoenix",
"Apache Pinot",
"Apache Solr",
"Apache Spark SQL"
Expand Down Expand Up @@ -2890,6 +2896,47 @@
"query_cost_estimation": false,
"sql_validation": false
},
"Apache IoTDB": {
"engine": "apache_iotdb",
"engine_name": "Apache IoTDB",
"module": "iotdb",
"documentation": {
"description": "Apache IoTDB is a time series database designed for IoT data, with efficient storage and query capabilities for massive time series data.",
"logo": "apache-iotdb.svg",
"homepage_url": "https://iotdb.apache.org/",
"categories": [
"APACHE_PROJECTS",
"TIME_SERIES",
"OPEN_SOURCE"
],
"pypi_packages": [
"apache-iotdb"
],
"connection_string": "iotdb://{username}:{password}@{hostname}:{port}",
"default_port": 6667,
"parameters": {
"username": "Database username (default: root)",
"password": "Database password (default: root)",
"hostname": "IP address or hostname",
"port": "Default 6667"
},
"notes": "The IoTDB SQLAlchemy dialect was written to integrate with Apache Superset. IoTDB uses a hierarchical data model, which is reorganized into a relational model for SQL queries."
},
"time_grains": {},
"score": 0,
"max_score": 0,
"joins": true,
"subqueries": true,
"supports_dynamic_schema": false,
"supports_catalog": false,
"supports_dynamic_catalog": false,
"ssh_tunneling": false,
"query_cancelation": false,
"supports_file_upload": false,
"user_impersonation": false,
"query_cost_estimation": false,
"sql_validation": false
},
"Azure Data Explorer": {
"engine": "azure_data_explorer",
"engine_name": "Azure Data Explorer",
Expand Down Expand Up @@ -4039,6 +4086,41 @@
"query_cost_estimation": false,
"sql_validation": false
},
"Apache Phoenix": {
"engine": "apache_phoenix",
"engine_name": "Apache Phoenix",
"module": "phoenix",
"documentation": {
"description": "Apache Phoenix is a relational database layer over Apache HBase, providing low-latency SQL queries over HBase data.",
"logo": "apache-phoenix.png",
"homepage_url": "https://phoenix.apache.org/",
"categories": [
"APACHE_PROJECTS",
"ANALYTICAL_DATABASES",
"OPEN_SOURCE"
],
"pypi_packages": [
"phoenixdb"
],
"connection_string": "phoenix://{hostname}:{port}/",
"default_port": 8765,
"notes": "Phoenix provides a SQL interface to Apache HBase. The phoenixdb driver connects via the Phoenix Query Server and supports a subset of SQLAlchemy."
},
"time_grains": {},
"score": 0,
"max_score": 0,
"joins": true,
"subqueries": true,
"supports_dynamic_schema": false,
"supports_catalog": false,
"supports_dynamic_catalog": false,
"ssh_tunneling": false,
"query_cancelation": false,
"supports_file_upload": false,
"user_impersonation": false,
"query_cost_estimation": false,
"sql_validation": false
},
"Apache Pinot": {
"engine": "apache_pinot",
"engine_name": "Apache Pinot",
Expand Down Expand Up @@ -4207,6 +4289,80 @@
"OPEN_SOURCE"
]
},
{
"name": "Supabase",
"description": "Open-source Firebase alternative built on top of PostgreSQL, providing a full backend-as-a-service with a hosted Postgres database.",
"logo": "supabase.svg",
"homepage_url": "https://supabase.com/",
"pypi_packages": [
"psycopg2"
],
"connection_string": "postgresql://{username}:{password}@{host}:{port}/{database}",
"connection_examples": [
{
"description": "Supabase project (connection pooler)",
"connection_string": "postgresql://{username}.{project_ref}:{password}@aws-0-{region}.pooler.supabase.com:6543/{database}"
}
],
"parameters": {
"username": "Database user (default: postgres)",
"password": "Database password",
"host": "Supabase project host (from project settings)",
"port": "Default 5432 (direct) or 6543 (pooler)",
"database": "Database name (default: postgres)",
"project_ref": "Supabase project reference (from project settings)",
"region": "Supabase project region (e.g., us-east-1)"
},
"notes": "Find connection details in your Supabase project dashboard under Settings > Database. Use the connection pooler (port 6543) for better connection management.",
"docs_url": "https://supabase.com/docs/guides/database/connecting-to-postgres",
"categories": [
"HOSTED_OPEN_SOURCE"
]
},
{
"name": "Google AlloyDB",
"description": "Google Cloud's PostgreSQL-compatible database service for demanding transactional and analytical workloads.",
"logo": "alloydb.png",
"homepage_url": "https://cloud.google.com/alloydb",
"pypi_packages": [
"psycopg2"
],
"connection_string": "postgresql://{username}:{password}@{host}:{port}/{database}",
"parameters": {
"username": "Database user (default: postgres)",
"password": "Database password",
"host": "AlloyDB instance IP or Auth Proxy address",
"port": "Default 5432",
"database": "Database name"
},
"notes": "For public IP connections, use the AlloyDB Auth Proxy for secure access. Private IP connections can connect directly.",
"docs_url": "https://cloud.google.com/alloydb/docs",
"categories": [
"CLOUD_GCP",
"HOSTED_OPEN_SOURCE"
]
},
{
"name": "Neon",
"description": "Serverless PostgreSQL with branching, scale-to-zero, and bottomless storage.",
"logo": "neon.png",
"homepage_url": "https://neon.tech/",
"pypi_packages": [
"psycopg2"
],
"connection_string": "postgresql://{username}:{password}@{host}/{database}?sslmode=require",
"parameters": {
"username": "Neon role name",
"password": "Neon role password",
"host": "Neon hostname (e.g., ep-cool-name-123456.us-east-2.aws.neon.tech)",
"database": "Database name (default: neondb)"
},
"notes": "SSL is required for all connections. Find connection details in the Neon console under Connection Details.",
"docs_url": "https://neon.tech/docs/connect/connect-from-any-app",
"categories": [
"HOSTED_OPEN_SOURCE"
]
},
{
"name": "Amazon Aurora PostgreSQL",
"description": "Amazon Aurora PostgreSQL is a fully managed, PostgreSQL-compatible relational database with up to 5x the throughput of standard PostgreSQL.",
Expand Down
Loading
Loading