This is an automated email from the ASF dual-hosted git repository. hainenber pushed a commit to branch fix/resolve-oom-issues-when-building-docs-with-docusaurus-faster in repository https://gitbox.apache.org/repos/asf/superset.git
commit b03eb090d6b42dbec3ec4f93bd1223c5bba8c4f2 Author: hainenber <[email protected]> AuthorDate: Sat Mar 7 14:04:36 2026 +0700 fix(ci): resolve OOM issues when building docs locally with Docusaurus Faster Also sync docs with latest build result Signed-off-by: hainenber <[email protected]> --- docs/developer_docs/api.mdx | 36 +++--- docs/developer_docs/components/index.mdx | 24 ++-- docs/developer_docs/components/ui/button.mdx | 6 +- docs/developer_docs/components/ui/progressbar.mdx | 2 +- docs/developer_docs/components/ui/slider.mdx | 2 +- .../components/ui/tablecollection.mdx | 2 +- docs/developer_docs/components/ui/tabs.mdx | 2 +- docs/developer_docs/components/ui/tree.mdx | 2 +- docs/docusaurus.config.ts | 2 +- docs/src/data/databases.json | 135 +++++++++++++++++++-- 10 files changed, 160 insertions(+), 53 deletions(-) diff --git a/docs/developer_docs/api.mdx b/docs/developer_docs/api.mdx index 09f3843087f..ff563805a8e 100644 --- a/docs/developer_docs/api.mdx +++ b/docs/developer_docs/api.mdx @@ -68,14 +68,14 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | `POST` | [Create a new dashboard](./api/create-a-new-dashboard) | `/api/v1/dashboard/` | | `GET` | [Get metadata information about this API resource (dashboard--info)](./api/get-metadata-information-about-this-api-resource-dashboard-info) | `/api/v1/dashboard/_info` | | `GET` | [Get a dashboard detail information](./api/get-a-dashboard-detail-information) | `/api/v1/dashboard/{id_or_slug}` | -| `GET` | [Get a dashboard's chart definitions.](./api/get-a-dashboard-s-chart-definitions) | `/api/v1/dashboard/{id_or_slug}/charts` | +| `GET` | [Get a dashboard's chart definitions.](./api/get-a-dashboards-chart-definitions) | `/api/v1/dashboard/{id_or_slug}/charts` | | `POST` | [Create a copy of an existing dashboard](./api/create-a-copy-of-an-existing-dashboard) | `/api/v1/dashboard/{id_or_slug}/copy/` | -| `GET` | [Get dashboard's datasets](./api/get-dashboard-s-datasets) | `/api/v1/dashboard/{id_or_slug}/datasets` | -| `DELETE` | [Delete a dashboard's embedded configuration](./api/delete-a-dashboard-s-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | -| `GET` | [Get the dashboard's embedded configuration](./api/get-the-dashboard-s-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | -| `POST` | [Set a dashboard's embedded configuration](./api/set-a-dashboard-s-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | +| `GET` | [Get dashboard's datasets](./api/get-dashboards-datasets) | `/api/v1/dashboard/{id_or_slug}/datasets` | +| `DELETE` | [Delete a dashboard's embedded configuration](./api/delete-a-dashboards-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | +| `GET` | [Get the dashboard's embedded configuration](./api/get-the-dashboards-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | +| `POST` | [Set a dashboard's embedded configuration](./api/set-a-dashboards-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | | `PUT` | [Update dashboard by id_or_slug embedded](./api/update-dashboard-by-id-or-slug-embedded) | `/api/v1/dashboard/{id_or_slug}/embedded` | -| `GET` | [Get dashboard's tabs](./api/get-dashboard-s-tabs) | `/api/v1/dashboard/{id_or_slug}/tabs` | +| `GET` | [Get dashboard's tabs](./api/get-dashboards-tabs) | `/api/v1/dashboard/{id_or_slug}/tabs` | | `DELETE` | [Delete a dashboard](./api/delete-a-dashboard) | `/api/v1/dashboard/{pk}` | | `PUT` | [Update a dashboard](./api/update-a-dashboard) | `/api/v1/dashboard/{pk}` | | `POST` | [Compute and cache a screenshot (dashboard-pk-cache-dashboard-screenshot)](./api/compute-and-cache-a-screenshot-dashboard-pk-cache-dashboard-screenshot) | `/api/v1/dashboard/{pk}/cache_dashboard_screenshot/` | @@ -84,7 +84,7 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | `POST` | [Mark the dashboard as favorite for the current user](./api/mark-the-dashboard-as-favorite-for-the-current-user) | `/api/v1/dashboard/{pk}/favorites/` | | `PUT` | [Update native filters configuration for a dashboard.](./api/update-native-filters-configuration-for-a-dashboard) | `/api/v1/dashboard/{pk}/filters` | | `GET` | [Get a computed screenshot from cache (dashboard-pk-screenshot-digest)](./api/get-a-computed-screenshot-from-cache-dashboard-pk-screenshot-digest) | `/api/v1/dashboard/{pk}/screenshot/{digest}/` | -| `GET` | [Get dashboard's thumbnail](./api/get-dashboard-s-thumbnail) | `/api/v1/dashboard/{pk}/thumbnail/{digest}/` | +| `GET` | [Get dashboard's thumbnail](./api/get-dashboards-thumbnail) | `/api/v1/dashboard/{pk}/thumbnail/{digest}/` | | `GET` | [Download multiple dashboards as YAML files](./api/download-multiple-dashboards-as-yaml-files) | `/api/v1/dashboard/export/` | | `GET` | [Check favorited dashboards for current user](./api/check-favorited-dashboards-for-current-user) | `/api/v1/dashboard/favorite_status/` | | `POST` | [Import dashboard(s) with associated charts/datasets/databases](./api/import-dashboard-s-with-associated-charts-datasets-databases) | `/api/v1/dashboard/import/` | @@ -177,7 +177,7 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | `GET` | [Get names of databases currently available](./api/get-names-of-databases-currently-available) | `/api/v1/database/available/` | | `GET` | [Download database(s) and associated dataset(s) as a zip file](./api/download-database-s-and-associated-dataset-s-as-a-zip-file) | `/api/v1/database/export/` | | `POST` | [Import database(s) with associated datasets](./api/import-database-s-with-associated-datasets) | `/api/v1/database/import/` | -| `GET` | [Receive personal access tokens from OAuth2](./api/receive-personal-access-tokens-from-oauth2) | `/api/v1/database/oauth2/` | +| `GET` | [Receive personal access tokens from OAuth2](./api/receive-personal-access-tokens-from-o-auth-2) | `/api/v1/database/oauth2/` | | `GET` | [Get related fields data (database-related-column-name)](./api/get-related-fields-data-database-related-column-name) | `/api/v1/database/related/{column_name}` | | `POST` | [Test a database connection](./api/test-a-database-connection) | `/api/v1/database/test_connection/` | | `POST` | [Upload a file and returns file metadata](./api/upload-a-file-and-returns-file-metadata) | `/api/v1/database/upload_metadata/` | @@ -201,7 +201,7 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | Method | Endpoint | Description | |--------|----------|-------------| -| `GET` | [Get the bootstrap data for SqlLab page](./api/get-the-bootstrap-data-for-sqllab-page) | `/api/v1/sqllab/` | +| `GET` | [Get the bootstrap data for SqlLab page](./api/get-the-bootstrap-data-for-sql-lab-page) | `/api/v1/sqllab/` | | `POST` | [Estimate the SQL query execution cost](./api/estimate-the-sql-query-execution-cost) | `/api/v1/sqllab/estimate/` | | `POST` | [Execute a SQL query](./api/execute-a-sql-query) | `/api/v1/sqllab/execute/` | | `GET` | [Export the SQL query results to a CSV](./api/export-the-sql-query-results-to-a-csv) | `/api/v1/sqllab/export/{client_id}/` | @@ -249,7 +249,7 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | Method | Endpoint | Description | |--------|----------|-------------| -| `GET` | [Return an AdvancedDataTypeResponse](./api/return-an-advanceddatatyperesponse) | `/api/v1/advanced_data_type/convert` | +| `GET` | [Return an AdvancedDataTypeResponse](./api/return-an-advanced-data-type-response) | `/api/v1/advanced_data_type/convert` | | `GET` | [Return a list of available advanced data types](./api/return-a-list-of-available-advanced-data-types) | `/api/v1/advanced_data_type/types` | </details> @@ -324,8 +324,8 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | Method | Endpoint | Description | |--------|----------|-------------| -| `POST` | [Create a new dashboard's permanent link](./api/create-a-new-dashboard-s-permanent-link) | `/api/v1/dashboard/{pk}/permalink` | -| `GET` | [Get dashboard's permanent link state](./api/get-dashboard-s-permanent-link-state) | `/api/v1/dashboard/permalink/{key}` | +| `POST` | [Create a new dashboard's permanent link](./api/create-a-new-dashboards-permanent-link) | `/api/v1/dashboard/{pk}/permalink` | +| `GET` | [Get dashboard's permanent link state](./api/get-dashboards-permanent-link-state) | `/api/v1/dashboard/permalink/{key}` | </details> @@ -335,7 +335,7 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | Method | Endpoint | Description | |--------|----------|-------------| | `POST` | [Create a new permanent link (explore-permalink)](./api/create-a-new-permanent-link-explore-permalink) | `/api/v1/explore/permalink` | -| `GET` | [Get chart's permanent link state](./api/get-chart-s-permanent-link-state) | `/api/v1/explore/permalink/{key}` | +| `GET` | [Get chart's permanent link state](./api/get-charts-permanent-link-state) | `/api/v1/explore/permalink/{key}` | </details> @@ -345,7 +345,7 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | Method | Endpoint | Description | |--------|----------|-------------| | `POST` | [Create a new permanent link (sqllab-permalink)](./api/create-a-new-permanent-link-sqllab-permalink) | `/api/v1/sqllab/permalink` | -| `GET` | [Get permanent link state for SQLLab editor.](./api/get-permanent-link-state-for-sqllab-editor) | `/api/v1/sqllab/permalink/{key}` | +| `GET` | [Get permanent link state for SQLLab editor.](./api/get-permanent-link-state-for-sql-lab-editor) | `/api/v1/sqllab/permalink/{key}` | </details> @@ -363,10 +363,10 @@ curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ | Method | Endpoint | Description | |--------|----------|-------------| -| `POST` | [Create a dashboard's filter state](./api/create-a-dashboard-s-filter-state) | `/api/v1/dashboard/{pk}/filter_state` | -| `DELETE` | [Delete a dashboard's filter state value](./api/delete-a-dashboard-s-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | -| `GET` | [Get a dashboard's filter state value](./api/get-a-dashboard-s-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | -| `PUT` | [Update a dashboard's filter state value](./api/update-a-dashboard-s-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | +| `POST` | [Create a dashboard's filter state](./api/create-a-dashboards-filter-state) | `/api/v1/dashboard/{pk}/filter_state` | +| `DELETE` | [Delete a dashboard's filter state value](./api/delete-a-dashboards-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | +| `GET` | [Get a dashboard's filter state value](./api/get-a-dashboards-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | +| `PUT` | [Update a dashboard's filter state value](./api/update-a-dashboards-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | </details> diff --git a/docs/developer_docs/components/index.mdx b/docs/developer_docs/components/index.mdx index 26cf64e1cdc..270e24163c4 100644 --- a/docs/developer_docs/components/index.mdx +++ b/docs/developer_docs/components/index.mdx @@ -23,7 +23,16 @@ sidebar_position: 0 under the License. --> -# Superset Design System +import { ComponentIndex } from '@site/src/components/ui-components'; +import componentData from '@site/static/data/components.json'; + +# UI Components + +<ComponentIndex data={componentData} /> + +--- + +## Design System A design system is a complete set of standards intended to manage design at scale using reusable components and patterns. @@ -35,19 +44,6 @@ The Superset Design System uses [Atomic Design](https://bradfrost.com/blog/post/ <img src="/img/atomic-design.png" alt="Atoms = Foundations, Molecules = Components, Organisms = Patterns, Templates = Templates, Pages / Screens = Features" style={{maxWidth: '100%'}} /> ---- - -## Component Library - -Interactive documentation for Superset's UI component library. **53 components** documented across 2 categories. - -### [Core Components](./ui/) -46 components — Buttons, inputs, modals, selects, and other fundamental UI elements. - -### [Layout Components](./design-system/) -7 components — Grid, Layout, Table, Flex, Space, and container components for page structure. - - ## Usage All components are exported from `@superset-ui/core/components`: diff --git a/docs/developer_docs/components/ui/button.mdx b/docs/developer_docs/components/ui/button.mdx index d36acbbf680..05e0a1fe4b1 100644 --- a/docs/developer_docs/components/ui/button.mdx +++ b/docs/developer_docs/components/ui/button.mdx @@ -43,7 +43,7 @@ The Button component from Superset's UI library. <StoryWithControls component="Button" props={{ - buttonStyle: "default", + buttonStyle: "primary", buttonSize: "default", children: "Button!" }} @@ -111,7 +111,7 @@ Edit the code below to experiment with the component: function Demo() { return ( <Button - buttonStyle="default" + buttonStyle="primary" buttonSize="default" > Button! @@ -124,7 +124,7 @@ function Demo() { | Prop | Type | Default | Description | |------|------|---------|-------------| -| `buttonStyle` | `string` | `"default"` | The style variant of the button. | +| `buttonStyle` | `string` | `"primary"` | The style variant of the button. | | `buttonSize` | `string` | `"default"` | The size of the button. | | `children` | `string` | `"Button!"` | The button text or content. | diff --git a/docs/developer_docs/components/ui/progressbar.mdx b/docs/developer_docs/components/ui/progressbar.mdx index 7bfd4d17491..b73ae47d14b 100644 --- a/docs/developer_docs/components/ui/progressbar.mdx +++ b/docs/developer_docs/components/ui/progressbar.mdx @@ -195,7 +195,7 @@ function CustomColors() { ## Import ```tsx -import { ProgressBar } from '@superset/components'; +import ProgressBar from '@superset/components'; ``` --- diff --git a/docs/developer_docs/components/ui/slider.mdx b/docs/developer_docs/components/ui/slider.mdx index bbcbbbffc4a..e92e20badd5 100644 --- a/docs/developer_docs/components/ui/slider.mdx +++ b/docs/developer_docs/components/ui/slider.mdx @@ -242,7 +242,7 @@ function VerticalDemo() { ## Import ```tsx -import { Slider } from '@superset/components'; +import Slider from '@superset/components'; ``` --- diff --git a/docs/developer_docs/components/ui/tablecollection.mdx b/docs/developer_docs/components/ui/tablecollection.mdx index 83d7ca23933..ed131be8e77 100644 --- a/docs/developer_docs/components/ui/tablecollection.mdx +++ b/docs/developer_docs/components/ui/tablecollection.mdx @@ -55,7 +55,7 @@ function Demo() { ## Import ```tsx -import { TableCollection } from '@superset/components'; +import TableCollection from '@superset/components'; ``` --- diff --git a/docs/developer_docs/components/ui/tabs.mdx b/docs/developer_docs/components/ui/tabs.mdx index aa31a094801..2f93d77aabf 100644 --- a/docs/developer_docs/components/ui/tabs.mdx +++ b/docs/developer_docs/components/ui/tabs.mdx @@ -212,7 +212,7 @@ function IconTabs() { ## Import ```tsx -import { Tabs } from '@superset/components'; +import Tabs from '@superset/components'; ``` --- diff --git a/docs/developer_docs/components/ui/tree.mdx b/docs/developer_docs/components/ui/tree.mdx index 6ea5caf46a8..f3a067b2238 100644 --- a/docs/developer_docs/components/ui/tree.mdx +++ b/docs/developer_docs/components/ui/tree.mdx @@ -257,7 +257,7 @@ function LinesAndIcons() { ## Import ```tsx -import { Tree } from '@superset/components'; +import Tree from '@superset/components'; ``` --- diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 898bf3ff1c8..4e286affb73 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -243,7 +243,7 @@ const config: Config = { useCssCascadeLayers: false, }, experimental_faster: { - swcJsLoader: true, + swcJsLoader: false, swcJsMinimizer: true, swcHtmlMinimizer: true, lightningCssMinimizer: true, diff --git a/docs/src/data/databases.json b/docs/src/data/databases.json index 38914dd7868..ff8e04886d7 100644 --- a/docs/src/data/databases.json +++ b/docs/src/data/databases.json @@ -1,13 +1,13 @@ { - "generated": "2026-02-24T20:28:17.222Z", + "generated": "2026-03-07T07:00:05.886Z", "statistics": { - "totalDatabases": 72, - "withDocumentation": 72, - "withConnectionString": 72, + "totalDatabases": 73, + "withDocumentation": 73, + "withConnectionString": 73, "withDrivers": 36, - "withAuthMethods": 4, - "supportsJoins": 68, - "supportsSubqueries": 69, + "withAuthMethods": 5, + "supportsJoins": 69, + "supportsSubqueries": 70, "supportsDynamicSchema": 15, "supportsCatalog": 9, "averageScore": 31, @@ -23,6 +23,7 @@ "Amazon Athena", "Google BigQuery", "Databend", + "Google Datastore", "IBM Db2", "Denodo", "Dremio", @@ -177,10 +178,12 @@ ], "Cloud - Google": [ "Google BigQuery", + "Google Datastore", "Google Sheets" ], "Search & NoSQL": [ "Couchbase", + "Google Datastore", "Amazon DynamoDB", "Elasticsearch", "MongoDB", @@ -751,14 +754,14 @@ "OPEN_SOURCE" ], "pypi_packages": [ - "clickhouse-connect>=0.6.8" + "clickhouse-connect>=0.13.0" ], "connection_string": "clickhousedb://{username}:{password}@{host}:{port}/{database}", "default_port": 8123, "drivers": [ { "name": "clickhouse-connect (Recommended)", - "pypi_package": "clickhouse-connect>=0.6.8", + "pypi_package": "clickhouse-connect>=0.13.0", "connection_string": "clickhousedb://{username}:{password}@{host}:{port}/{database}", "is_recommended": true, "notes": "Official ClickHouse Python driver with native protocol support." @@ -781,7 +784,7 @@ "connection_string": "clickhousedb://localhost/default" } ], - "install_instructions": "echo \"clickhouse-connect>=0.6.8\" >> ./docker/requirements-local.txt", + "install_instructions": "echo \"clickhouse-connect>=0.13.0\" >> ./docker/requirements-local.txt", "compatible_databases": [ { "name": "ClickHouse Cloud", @@ -794,7 +797,7 @@ "HOSTED_OPEN_SOURCE" ], "pypi_packages": [ - "clickhouse-connect>=0.6.8" + "clickhouse-connect>=0.13.0" ], "connection_string": "clickhousedb://{username}:{password}@{host}:8443/{database}?secure=true", "parameters": { @@ -816,7 +819,7 @@ "HOSTED_OPEN_SOURCE" ], "pypi_packages": [ - "clickhouse-connect>=0.6.8" + "clickhouse-connect>=0.13.0" ], "connection_string": "clickhousedb://{username}:{password}@{host}/{database}?secure=true", "docs_url": "https://docs.altinity.com/" @@ -1296,6 +1299,114 @@ "query_cost_estimation": false, "sql_validation": false }, + "Google Datastore": { + "engine": "google_datastore", + "engine_name": "Google Datastore", + "module": "datastore", + "documentation": { + "description": "Google Cloud Datastore is a highly scalable NoSQL database for your applications.", + "logo": "datastore.png", + "homepage_url": "https://cloud.google.com/datastore/", + "categories": [ + "CLOUD_GCP", + "SEARCH_NOSQL", + "PROPRIETARY" + ], + "pypi_packages": [ + "python-datastore-sqlalchemy" + ], + "connection_string": "datastore://{project_id}/?database={database_id}", + "authentication_methods": [ + { + "name": "Service Account JSON", + "description": "Upload service account credentials JSON or paste in Secure Extra", + "secure_extra": { + "credentials_info": { + "type": "service_account", + "project_id": "...", + "private_key_id": "...", + "private_key": "...", + "client_email": "...", + "client_id": "...", + "auth_uri": "...", + "token_uri": "..." + } + } + } + ], + "notes": "Create a Service Account via GCP console with access to datastore datasets.", + "docs_url": "https://github.com/splasky/Python-datastore-sqlalchemy", + "custom_errors": [ + { + "regex_name": "CONNECTION_DATABASE_PERMISSIONS_REGEX", + "message_template": "Unable to connect. Verify that the following roles are set on the service account: \"Cloud Datastore Viewer\", \"Cloud Datastore User\", \"Cloud Datastore Creator\"", + "error_type": "CONNECTION_DATABASE_PERMISSIONS_ERROR", + "category": "Permissions", + "description": "Insufficient permissions", + "issue_codes": [ + 1017 + ] + }, + { + "regex_name": "TABLE_DOES_NOT_EXIST_REGEX", + "message_template": "The table \"%(table)s\" does not exist. A valid table must be used to run this query.", + "error_type": "TABLE_DOES_NOT_EXIST_ERROR", + "category": "Query", + "description": "Table not found", + "issue_codes": [ + 1003, + 1005 + ] + }, + { + "regex_name": "COLUMN_DOES_NOT_EXIST_REGEX", + "message_template": "We can't seem to resolve column \"%(column)s\" at line %(location)s.", + "error_type": "COLUMN_DOES_NOT_EXIST_ERROR", + "category": "Query", + "description": "Column not found", + "issue_codes": [ + 1003, + 1004 + ] + }, + { + "regex_name": "SCHEMA_DOES_NOT_EXIST_REGEX", + "message_template": "The schema \"%(schema)s\" does not exist. A valid schema must be used to run this query.", + "error_type": "SCHEMA_DOES_NOT_EXIST_ERROR", + "category": "Query", + "description": "Schema not found", + "issue_codes": [ + 1003, + 1016 + ] + }, + { + "regex_name": "SYNTAX_ERROR_REGEX", + "message_template": "Please check your query for syntax errors at or near \"%(syntax_error)s\". Then, try running your query again.", + "error_type": "SYNTAX_ERROR", + "category": "Query", + "description": "SQL syntax error", + "issue_codes": [ + 1030 + ] + } + ] + }, + "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 + }, "IBM Db2": { "engine": "ibm_db2", "engine_name": "IBM Db2",
