From 7642d851810e3bf78b98eb2a52a419b2ff9b36ca Mon Sep 17 00:00:00 2001 From: Superset Dev Date: Fri, 17 Apr 2026 09:27:43 -0700 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20Superset=206.1=20documentation=20ca?= =?UTF-8?q?tch-up=20=E2=80=94=20batch=204?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - theming.mdx: document ECharts array property overrides (PR #37965) — array values like color palettes are fully supported and replaced entirely (not merged); adds Array Property Overrides section with color palette example - configuring-superset.mdx: document PKCE support for database OAuth2 (PR #37067) — add PKCE section under Custom OAuth2 with code_challenge_method config and when to use it - cache.mdx: document ETag support for thumbnail/screenshot endpoints (PR #37663) — conditional GET with If-None-Match to avoid downloading unchanged images - exploring-data.mdx: document SQL Lab UX improvements (PRs #37298, #37694, #37756) — treeview table browser, Ctrl+F find widget, resizable panels; also adds time range natural language expressions section (PR #37098) - creating-your-first-dashboard.mdx: document Table chart features — boolean and categorical conditional formatting (PRs #36338, #37756), gradient toggle (PR #36280), HTML cell rendering with security note (PR #37685), column header tooltips from dataset descriptions (PR #37179), Display Controls modal in dashboard view (PR #36062) - databases.json: update StarRocks supports_catalog and supports_dynamic_catalog to true — the engine spec (PR #37026) already implemented full catalog support with get_catalog_names(), get_default_catalog(), and SHOW CATALOGS; the committed JSON was stale and did not reflect this Co-Authored-By: Claude Sonnet 4.6 --- docs/admin_docs/configuration/cache.mdx | 14 +++++++++ .../configuration/configuring-superset.mdx | 20 +++++++++++++ docs/admin_docs/configuration/theming.mdx | 16 +++++++++- .../creating-your-first-dashboard.mdx | 29 +++++++++++++++++++ docs/docs/using-superset/exploring-data.mdx | 19 ++++++++++++ docs/src/data/databases.json | 4 +-- 6 files changed, 99 insertions(+), 3 deletions(-) diff --git a/docs/admin_docs/configuration/cache.mdx b/docs/admin_docs/configuration/cache.mdx index be1459f09f1a..b715e46c0b33 100644 --- a/docs/admin_docs/configuration/cache.mdx +++ b/docs/admin_docs/configuration/cache.mdx @@ -159,6 +159,20 @@ Then on configuration: WEBDRIVER_AUTH_FUNC = auth_driver ``` +## ETag Support for Thumbnails + +Thumbnail and screenshot endpoints return `ETag` response headers based on the cached content digest. Clients can use conditional requests to avoid downloading unchanged images: + +``` +GET /api/v1/chart/42/thumbnail/ +If-None-Match: "abc123..." + +→ 304 Not Modified (if unchanged) +→ 200 OK (with new image if changed) +``` + +This is particularly useful for embedded dashboards and external integrations that periodically poll for updated screenshots — unchanged thumbnails return immediately with no payload. + ## Distributed Coordination Backend Superset supports an optional distributed coordination (`DISTRIBUTED_COORDINATION_CONFIG`) for diff --git a/docs/admin_docs/configuration/configuring-superset.mdx b/docs/admin_docs/configuration/configuring-superset.mdx index 657d5d4dc75e..c237b15e3ba8 100644 --- a/docs/admin_docs/configuration/configuring-superset.mdx +++ b/docs/admin_docs/configuration/configuring-superset.mdx @@ -364,6 +364,26 @@ CUSTOM_SECURITY_MANAGER = CustomSsoSecurityManager ] ``` +### PKCE Support + +For public OAuth2 clients that cannot securely store a client secret, enable Proof Key for Code Exchange (PKCE) by adding `code_challenge_method` to the `remote_app` configuration: + +```python +OAUTH_PROVIDERS = [ + { + 'name': 'myProvider', + 'remote_app': { + 'client_id': 'myClientId', + 'client_secret': 'mySecret', # may be empty for pure public clients + 'code_challenge_method': 'S256', # enables PKCE + 'server_metadata_url': 'https://myAuthorizationServer/.well-known/openid-configuration' + } + } +] +``` + +PKCE (`S256`) is recommended for all OAuth2 flows, even when a client secret is present, as it protects against authorization code interception attacks. + ## LDAP Authentication FAB supports authenticating user credentials against an LDAP server. diff --git a/docs/admin_docs/configuration/theming.mdx b/docs/admin_docs/configuration/theming.mdx index 8f88ec8fda36..834a7c60985b 100644 --- a/docs/admin_docs/configuration/theming.mdx +++ b/docs/admin_docs/configuration/theming.mdx @@ -312,11 +312,25 @@ Available chart types for `echartsOptionsOverridesByChartType`: - `echarts_heatmap` - Heatmaps - `echarts_mixed_timeseries` - Mixed time series +### Array Property Overrides + +Array properties (such as color palettes) are fully supported in overrides. Arrays are **replaced entirely** rather than merged, so specify the complete array: + +```python +THEME_DEFAULT = { + "token": { ... }, + "echartsOptionsOverrides": { + # Replace the default color palette for all ECharts visualizations + "color": ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b"] + } +} +``` + ### Best Practices 1. **Start with global overrides** for consistent styling across all charts 2. **Use chart-specific overrides** for unique requirements per visualization type -3. **Test thoroughly** as overrides use deep merge - nested objects are combined, but arrays are completely replaced +3. **Test thoroughly** as overrides use deep merge for objects, but arrays are completely replaced — always specify the full array value 4. **Document your overrides** to help team members understand custom styling 5. **Consider performance** - complex overrides may impact chart rendering speed diff --git a/docs/docs/using-superset/creating-your-first-dashboard.mdx b/docs/docs/using-superset/creating-your-first-dashboard.mdx index febf3395a6f2..216b40126bdc 100644 --- a/docs/docs/using-superset/creating-your-first-dashboard.mdx +++ b/docs/docs/using-superset/creating-your-first-dashboard.mdx @@ -234,6 +234,35 @@ For example, when running the local development build, the following will disabl Top Nav and remove the Filter Bar: `http://localhost:8088/superset/dashboard/my-dashboard/?standalone=1&show_filters=0` +### Table Chart Features + +The **Table** chart type has several advanced capabilities worth knowing: + +#### Conditional Formatting + +Conditional formatting rules highlight cells based on their values. Rules can be applied to: +- **Numeric columns** — color cells above/below a threshold, or use a gradient across a range +- **String columns** — highlight cells matching specific text values or patterns +- **Boolean columns** — color cells that are `true` or `false`, or `null`/`not null` + +Each rule has a **"Use gradient"** toggle: enabled applies a varying opacity (lighter = further from threshold), disabled applies a solid fill at full opacity regardless of value. + +#### HTML Rendering in Table Cells + +Table chart cells can render raw HTML, enabling rich formatting such as hyperlinks, colored badges, and icons directly in the data. Enable this per-column in the chart's **Column Configuration** panel by toggling **Render HTML**. + +:::caution +Only enable HTML rendering for columns sourced from data you control. Rendering untrusted HTML can expose users to cross-site scripting (XSS) risks. +::: + +#### Column Header Tooltips + +Column headers display a tooltip with the column's **Description** from the dataset editor when the user hovers over them. Keep dataset column descriptions up to date to improve chart discoverability. + +#### Display Controls + +In dashboard view mode (without entering Edit mode), charts with configurable display options expose a **Display Controls** panel accessible from the chart's context menu. This surfaces controls such as Time Grain, Time Column, and layer visibility for applicable chart types — making it easy to adjust a chart's view without going to Explore. + :::resources - [Dashboard Customization](https://docs.preset.io/docs/dashboard-customization) - Advanced dashboard styling and layout options - [Blog: BI Dashboard Best Practices](https://preset.io/blog/bi-dashboard-best-practices/) diff --git a/docs/docs/using-superset/exploring-data.mdx b/docs/docs/using-superset/exploring-data.mdx index 0cc812382aa1..e68393b1131e 100644 --- a/docs/docs/using-superset/exploring-data.mdx +++ b/docs/docs/using-superset/exploring-data.mdx @@ -329,6 +329,25 @@ various options in this section, refer to the Lastly, save your chart as Tutorial Resample and add it to the Tutorial Dashboard. Go to the tutorial dashboard to see the four charts side by side and compare the different outputs. +### SQL Lab Tips + +**Schema and table browser**: The left-side table browser uses a collapsible treeview — click a schema to expand its tables, and click a table to see its columns and sample data inline. This makes navigating large schemas much faster than the previous flat list. + +**Find in editor**: Press **Ctrl+F** (or **Cmd+F** on Mac) to open the Monaco find/replace widget inside the SQL editor without leaving the editor. + +**Resizable panels**: The dividers between the SQL editor, schema browser, and results pane are draggable. Adjust them to match your workflow and screen size. + +### Time Range Natural Language Expressions + +The **Custom** time range picker accepts natural language expressions alongside specific dates: + +- **Relative**: `Last 7 days`, `Last month`, `Last quarter`, `Last year` +- **Anchored**: `previous calendar week`, `previous calendar month` +- **"First of" expressions**: `first day of this week`, `first day of this month`, `first day of this quarter`, `first day of this year`, `first week of this year` +- **Offsets**: `30 days ago`, `1 year ago`, `next week` + +These expressions are evaluated at query time, so saved charts always display data relative to the current date. + :::resources - [Chart Walkthroughs](https://docs.preset.io/docs/chart-walkthroughs) - Detailed guides for most chart types - [Blog: Why Apache ECharts is the Future of Apache Superset](https://preset.io/blog/2021-4-1-why-echarts/) diff --git a/docs/src/data/databases.json b/docs/src/data/databases.json index 38914dd78682..f15611823723 100644 --- a/docs/src/data/databases.json +++ b/docs/src/data/databases.json @@ -5493,8 +5493,8 @@ "joins": true, "subqueries": true, "supports_dynamic_schema": true, - "supports_catalog": false, - "supports_dynamic_catalog": false, + "supports_catalog": true, + "supports_dynamic_catalog": true, "ssh_tunneling": true, "query_cancelation": true, "supports_file_upload": true, From 9d9f27d646cc6c541039df21f6ce6547eba30f6f Mon Sep 17 00:00:00 2001 From: Superset Dev Date: Fri, 17 Apr 2026 10:45:06 -0700 Subject: [PATCH 2/2] revert(docs): remove databases.json change from batch 4 The StarRocks catalog flag fix (supports_catalog, supports_dynamic_catalog) is now handled by the separate generator fix PR (#39449), which regenerates databases.json from Python engine spec class attributes. Removing the manual edit here avoids a merge conflict and keeps the source of truth in the generator. Co-Authored-By: Claude Sonnet 4.6 --- docs/src/data/databases.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/src/data/databases.json b/docs/src/data/databases.json index f15611823723..38914dd78682 100644 --- a/docs/src/data/databases.json +++ b/docs/src/data/databases.json @@ -5493,8 +5493,8 @@ "joins": true, "subqueries": true, "supports_dynamic_schema": true, - "supports_catalog": true, - "supports_dynamic_catalog": true, + "supports_catalog": false, + "supports_dynamic_catalog": false, "ssh_tunneling": true, "query_cancelation": true, "supports_file_upload": true,