Compare commits

...

1898 Commits

Author SHA1 Message Date
Joe Li
01c84a3bf1 fix(embedded-e2e): pass dashboard ID as string to guest token API
The Marshmallow ResourceSchema uses fields.String(required=True) for
the resource id, which rejects numeric values. The previous refactor
removed the String() wrapper around dashboardId, causing the guest
token request to fail validation silently and the embedded dashboard
to never authenticate or render.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 08:56:55 -07:00
Joe Li
701eea222a fix(embedded-e2e): add CI SDK build step, align with conventions, improve test assertions
- Add build-embedded-sdk to bashlib.sh and wire into both Playwright CI
  workflows (tests were silently skipping because the SDK bundle was
  never built)
- Move getDashboardIdBySlug to dashboard.ts as getDashboardBySlug using
  rison.encode(), extract shared getDashboardByFilter helper
- Convert getIframeLocator() to getter (get iframe) per POM convention
- Add setupEmbeddedPage() and createAdminContext() helpers to reduce
  test setup duplication
- Strengthen hideTitle test with actual isTitleVisible() assertion and
  baseline check in first test
- Rename misleading "native filters" test to "charts render inside
  embedded iframe"
- Remove broken cross-origin waitForResponse(), rely on not.toBeVisible
- Fix EmbeddedConfig.dashboard_id type (string -> number), add JSDoc
  @param/@returns tags, remove unused APIResponse import
- Fix getStatus() null coalescing, destructure {page, browser} in test

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 08:56:55 -07:00
sadpandajoe
3536adf340 fix: resolve prettier and oxlint lint errors in embedded E2E tests
Fix arrow-body-style violations (oxlint) by using implicit return
in arrow functions. Fix prettier formatting in EmbeddedPage.ts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:56:55 -07:00
sadpandajoe
98e89e6e5d fix: address CI failures in embedded E2E tests
- Run tests serially (test.describe.configure({ mode: 'serial' }))
  to prevent parallel workers from conflicting on port 9000
- Replace ++ operator with += 1 to satisfy oxlint no-plusplus rule
- Skip all embedded tests if SDK bundle is not built, with clear
  message pointing to the build command
- Apply prettier formatting to match project style

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:56:55 -07:00
sadpandajoe
2e3ae7a061 feat: add embedded dashboard E2E tests to Playwright CI
Add end-to-end tests for the embedded dashboard flow, validating the
complete path from external app through the @superset-ui/embedded-sdk
to dashboard rendering in an iframe with guest token authentication.

New test infrastructure:
- Minimal static HTML test app served by Node.js http server in fixture
- EmbeddedPage page object for iframe interaction
- API helpers for embedded config and guest token management
- chromium-embedded Playwright project with dedicated test matching

Tests cover:
- Dashboard rendering in embedded iframe via SDK
- UI config options (hideTitle, hideTab, hideChartControls)
- Native filter functionality in embedded mode
- allowed_domains referrer validation (403 for unauthorized origins)
- Guest token authentication and data access

Config changes:
- Enable EMBEDDED_SUPERSET feature flag in test config
- Add CORS config for embedded test app origin (localhost:9000)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 08:56:55 -07:00
Mehmet Salih Yavuz
7c76fd3d81 fix(SelectFilter): auto clear search input (#39157) 2026-04-16 18:54:34 +03:00
Luiz Otavio
0b419a07f5 fix: add comments to SQL clause validation (#39167) 2026-04-16 09:19:39 -03:00
JUST.in DO IT
0b51e9cd5e fix(sqllab): format_sql to apply db dialect by database_id (#39393) 2026-04-16 08:27:51 -03:00
Amin Ghadersohi
e7b9fb277e fix(mcp): always push fresh app context per tool call to prevent g.user race (#39385) 2026-04-15 20:48:21 -04:00
Amin Ghadersohi
838ee870d0 fix(mcp): update instructions to use correct request wrapper and identifier params (#39392) 2026-04-15 20:17:07 -04:00
dependabot[bot]
84af6c9f29 chore(deps-dev): bump @docusaurus/tsconfig from 3.9.2 to 3.10.0 in /docs (#39189)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 15:28:40 -07:00
dependabot[bot]
05227e8a80 chore(deps): bump caniuse-lite from 1.0.30001786 to 1.0.30001788 in /docs (#39376)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 15:12:46 -07:00
dependabot[bot]
76a209663d chore(deps-dev): bump baseline-browser-mapping from 2.10.13 to 2.10.16 in /superset-frontend (#39150)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 14:56:40 -07:00
dependabot[bot]
61c45e3dd8 chore(deps-dev): bump @docusaurus/module-type-aliases from 3.9.2 to 3.10.0 in /docs (#39194)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 14:53:37 -07:00
dependabot[bot]
e11a50bedf chore(deps): bump @docusaurus/faster from 3.9.2 to 3.10.0 in /docs (#39195)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 14:53:05 -07:00
dependabot[bot]
f4a6ea0fde chore(deps): bump actions/github-script from 8.0.0 to 9.0.0 (#39267)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 14:52:48 -07:00
dependabot[bot]
e542e9f840 chore(deps): bump actions/cache from 5.0.4 to 5.0.5 (#39368)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 14:52:32 -07:00
dependabot[bot]
e0dcb2908d chore(deps): bump swagger-ui-react from 5.32.1 to 5.32.4 in /docs (#39377)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 14:51:42 -07:00
innovark
eaccb2e471 fix(EmptyState): prevent SVG cropping in empty state images (#37287)
Co-authored-by: Joe Li <joe@preset.io>
2026-04-15 14:49:18 -07:00
Laurent Ouattara
c1a1f2e7e7 docs: add Hifadih Business & Technology to In the Wild (#38824) 2026-04-15 14:48:58 -07:00
Robert A
45d5501aa7 fix(documentation): FAQ grammar for SQL query wording (#38923) 2026-04-15 14:48:41 -07:00
dependabot[bot]
388596e4fe chore(deps): bump baseline-browser-mapping from 2.10.13 to 2.10.16 in /docs (#39148)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 14:48:25 -07:00
Grégoire Gailly
b11d4f3ef0 fix(i18n): typo in fr language (#36982)
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com>
2026-04-15 16:20:01 -04:00
Michael S. Molina
998b9e387b fix(ListView): empty state not filling available width (#39387)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 16:32:12 -03:00
Maxime Beauchemin
b3e88db87e fix(table): use column label instead of SQL expression for orderby in downloads (#39332)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 11:20:54 -07:00
Abdul Rehman
8471e82342 fix(css-templates): add missing height to CSS editor in CssTemplateModal (#39221)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 15:01:27 -03:00
Richard Fogaca Nienkotter
c3a0f2749b fix(dashboard): apply dynamic groupby display controls to scoped charts (#39356) 2026-04-15 14:57:29 -03:00
Maxime Beauchemin
c2d96e0dce fix(table): fix cross-filter not clearing on second click in Interactive Table (#39253)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 10:30:36 -07:00
Abdul Rehman
44e77fdf2b fix(explore): dispatch onChange immediately on NumberControl stepper arrow clicks (#39220)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 10:15:37 -07:00
Gabriel Torres Ruiz
18d6feb499 feat(mcp): add create_virtual_dataset tool to save SQL queries as datasets (#39279) 2026-04-15 13:04:32 -03:00
dependabot[bot]
0d91f5e982 chore(deps): bump markdown-to-jsx from 9.7.13 to 9.7.15 in /superset-frontend (#39217)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 22:29:01 +07:00
dependabot[bot]
5661fc9128 chore(deps): bump anthropics/claude-code-action from 1.0.93 to 1.0.96 + temporarily stop Dependabot PR for claude-code-action due to high release frequency but low usage(#39360)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-04-15 22:26:44 +07:00
dependabot[bot]
a6156676c8 chore(deps): bump fuse.js from 7.1.0 to 7.3.0 in /superset-frontend (#39146)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 22:25:17 +07:00
dependabot[bot]
b2bd2329bc chore(deps-dev): bump wait-on from 9.0.4 to 9.0.5 in /superset-frontend (#39322)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 22:24:09 +07:00
Amin Ghadersohi
724f1484b9 chore(mcp): update CLAUDE.md to reflect current codebase patterns (#39348)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 11:11:21 -04:00
Beto Dealmeida
84f7b4a973 fix: do_ping takes a connection, not engine (#39013) 2026-04-15 11:10:24 -04:00
Michael S. Molina
ddcb9be9a7 fix(sqllab): show schema refresh icon only on hover (#39367)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 11:37:33 -03:00
dependabot[bot]
8d9b5bd479 chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /docs (#39352)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 21:32:26 +07:00
dependabot[bot]
4b88fc57b4 chore(deps-dev): bump prettier from 3.8.2 to 3.8.3 in /superset-websocket (#39358)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-15 21:31:56 +07:00
Hugh A. Miles II
b76080e291 feat(security): add granular export controls - Phase 2 + 3 (#38581)
Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
Co-authored-by: Daniel Vaz Gaspar <danielvazgaspar@gmail.com>
2026-04-15 10:24:59 -04:00
Alexandru Soare
411f769896 feat(filters): Adding empty state for filter modal (#38909) 2026-04-15 15:59:11 +03:00
Alexandru Soare
ffcc6e8b63 fix(MCP): fix MCP logs (#39159) 2026-04-15 15:57:04 +03:00
Luiz Otavio
86575e129b fix(native-filters): prevent infinite recursion in filter scope tree traversal (#39355) 2026-04-15 08:16:12 -03:00
Joe Li
3e25f02da9 test(sqllab): migrate Cypress E2E tests to Playwright (#39071) 2026-04-14 10:31:37 -07:00
dependabot[bot]
002d8ad1e4 chore(deps-dev): bump @types/node from 25.5.0 to 25.6.0 in /superset-frontend (#39265)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 23:18:15 +07:00
dependabot[bot]
6287a07912 chore(deps): bump anthropics/claude-code-action from 1.0.89 to 1.0.93 (#39318)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 23:14:11 +07:00
dependabot[bot]
fa97d0357f chore(deps-dev): bump globals from 17.4.0 to 17.5.0 in /superset-websocket (#39310)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 23:02:05 +07:00
dependabot[bot]
f836c3eccd chore(deps-dev): bump typescript-eslint from 8.58.0 to 8.58.2 in /superset-websocket (#39337)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-14 22:59:44 +07:00
JUST.in DO IT
499e27ea54 fix(native-filter): infinite filter loading by deps (#39175) 2026-04-14 09:06:36 -03:00
Alexandru Soare
c2a35e2eea fix(popup): Dropdown popup width doesn't match input width when tags collapse in oneLine mode (#39136) 2026-04-14 11:09:26 +03:00
Alexandru Soare
5138aa2c11 fix(select): select all button cutoff (#39005) 2026-04-14 11:07:10 +03:00
Alexandru Soare
66a9e2e16e fix(explore): Prevent error toast when navigating away from Explore page (#39065) 2026-04-14 11:05:03 +03:00
Richard Fogaca Nienkotter
0f417f0040 fix(dashboard): preserve dynamic group by column order (#39333) 2026-04-13 21:39:04 -03:00
Alexandru Soare
1462ac9282 fix(dashboard): Ensure screenshot downloads always generate fresh images/pdfs (#38880) 2026-04-13 14:17:46 -07:00
Richard Fogaca Nienkotter
da371217ef fix: revert and restore server-side sorting for value axis sorts (#39331) 2026-04-13 18:07:15 -03:00
Richard Fogaca Nienkotter
c971ea3ec6 fix(heatmap): skip orderby for value-based axis sorts (#39290)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-13 14:29:26 -03:00
Richard Fogaca Nienkotter
de98fdc37b test(heatmap): restore buildQuery coverage on master (#39329) 2026-04-13 13:50:11 -03:00
Maxime Beauchemin
fa1f12a0b5 fix(explore): replace TableView with virtualized GridTable, add row limit controls, restore sample filters (#39212)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-13 08:19:49 -07:00
Maxime Beauchemin
de40b58e10 fix(tests): fix async teardown leak in FiltersConfigModal.test.tsx (#39281)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 12:48:01 -07:00
Mike Bridge
eea3557f61 fix(dashboard): hide "Filters out of scope" section when empty (#39201)
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io>
2026-04-10 15:42:41 -04:00
Mike Bridge
7a243d329e fix(dashboard): allow filter list to scroll in filter config modal sidebar (#39203)
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io>
2026-04-10 15:42:16 -04:00
Maxime Beauchemin
98146251c4 fix(tests): improve ShareMenuItems test isolation to fix intermittent suite failure (#39280)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 12:30:38 -07:00
Maxime Beauchemin
0aa8cace1b fix(dataset-editor): fix SQL expression editor extra spaces and height expansion (#39248)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 12:12:26 -07:00
Maxime Beauchemin
450701ecec fix(SqlLab): improve SQL diff modal — responsive width, padding, tabs, and copy button (#39246)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 12:11:05 -07:00
Richard Fogaca Nienkotter
e9911fbac4 fix(echarts): prevent tooltip crash during dashboard auto-refresh (#39277)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-10 14:36:44 -03:00
Gabriel Torres Ruiz
69c8eef78e fix(ag-grid): jpeg export of ag-grid tables (#38781) 2026-04-10 12:54:59 -03:00
dependabot[bot]
2ff50667e7 chore(deps): bump axios from 1.13.5 to 1.15.0 in /superset-frontend (#39258)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 20:55:13 +07:00
dependabot[bot]
f1cf274751 chore(deps): bump axios from 1.13.5 to 1.15.0 in /docs (#39259)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 20:48:35 +07:00
dependabot[bot]
b65396ccd4 chore(deps-dev): bump @types/node from 25.5.2 to 25.6.0 in /superset-websocket (#39262)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 20:46:57 +07:00
dependabot[bot]
1ad76e847e chore(deps-dev): bump prettier from 3.8.1 to 3.8.2 in /superset-websocket (#39260)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 20:46:34 +07:00
dependabot[bot]
4583ef93a4 chore(deps-dev): bump prettier from 3.8.1 to 3.8.2 in /superset-frontend (#39263)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 20:40:46 +07:00
dependabot[bot]
f632d2474b chore(deps-dev): bump webpack from 5.105.4 to 5.106.0 in /superset-frontend (#39268)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-10 20:40:03 +07:00
Evan Rusackas
b1d69f5b39 docs(api): add Theme API endpoints to OpenAPI spec (#37943)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-04-10 00:17:06 -07:00
Enzo Martellucci
aba7e6dae4 fix(table): cross-filtering breaks after renaming column labels via Custom SQL (#38858) 2026-04-10 06:02:18 +02:00
Mike Bridge
8bcc90c766 fix(dashboard): Vertical filter bar gradient is extending past the filter bar area (#39204)
Co-authored-by: Mike Bridge <michael.bridge@ext.preset.io>
2026-04-09 18:30:47 -07:00
venkateshwaran shanmugham
e39dd1afce fix: implement native browser fullscreen for dashboard charts (#38819)
Signed-off-by: Venkateshwaran Shanmugham <venkateshwaracholan@gmail.com>
Co-authored-by: Michael S. Molina <70410625+michael-s-molina@users.noreply.github.com>
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
Co-authored-by: Richard Fogaça <richardfogaca@gmail.com>
Co-authored-by: Richard Fogaca Nienkotter <63572350+richardfogaca@users.noreply.github.com>
2026-04-09 21:49:36 -03:00
Amin Ghadersohi
680cef0ee0 fix(mcp): strip json_metadata and position_json from get_dashboard_info response (#39101) 2026-04-09 17:30:57 -04:00
Amin Ghadersohi
e17cf3c808 fix(mcp): wire up compact schema serialization for search_tools results (#39229) 2026-04-09 17:25:46 -04:00
Shaitan
f49310b8ff fix(sql-lab): apply access check in SqlExecutionResultsCommand (#38952)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 16:47:15 -04:00
Vitor Avila
c7955a38ef fix: Drill to Detail for Embedded (#39214)
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 17:01:48 -03:00
Amin Ghadersohi
68067d7f44 fix(mcp): handle OAuth-authenticated databases in execute_sql (#39166) 2026-04-09 15:47:00 -04:00
Daniel Vaz Gaspar
5815665cc6 feat: role/user CRUD events and login/logout tracking in the action log (#39121)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 15:55:25 +01:00
Enzo Martellucci
6649f35a0d fix(reports): escape SQL LIKE wildcards in find_by_extra_metadata (#38738)
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
2026-04-09 12:58:06 +03:00
Mehmet Salih Yavuz
5263abdc60 fix(AlertsReports): untie filters from alerts reports tabs flag (#38722)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 11:11:43 +03:00
Birk Skyum
c49641538d feat: modernize deck.gl and map plugins with MapLibre/Mapbox dual renderer (#38035)
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2026-04-08 20:14:59 -04:00
Maxime Beauchemin
d915e4f3ff fix(tags): fix Bulk tag modal dropdown clipping and stale tag cache (#39210)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 16:28:13 -07:00
Maxime Beauchemin
bad5a35fce fix(explore): constrain Edit Dataset modal height to prevent footer cutoff (#39211)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 16:19:10 -07:00
Amin Ghadersohi
1bde6f3bfd fix(mcp): resolve null fields in list_datasets, list_databases, and save_sql_query (#39206) 2026-04-08 18:39:56 -04:00
Deadman
4e0890ee1f feat(api): Add filter_dashboard_id parameter to apply dashboard filters to chart/data endpoint (#38638)
Co-authored-by: Matthew Deadman <matthewdeadman@Matthews-MacBook-Pro-2.local>
Co-authored-by: Matthew Deadman <matthewdeadman@matthews-mbp-2.lan>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-04-08 15:32:46 -07:00
Maxime Beauchemin
d63308ca37 fix(frontend): fix loading spinner positioning in Save modal and filters panel (#39205)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: yousoph <sophieyou12@gmail.com>
2026-04-08 13:23:30 -07:00
Maxime Beauchemin
63cceb6a79 refactor(plugins): replace react-icons with antd icons, remove 83MB dependency (#39184)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 13:21:34 -07:00
Maxime Beauchemin
b8b2bdedf9 fix(ace-editor): style bracket matching to blend with theme (#39182)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 13:09:14 -07:00
Maxime Beauchemin
d5017e60c3 fix(sqllab): fix table navigator schema list, pin/unpin UX, copy actions, icons, and toolbar colors (#39173)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 13:06:29 -07:00
Luiz Otavio
2e80f2a473 fix: add template_processor so Jinja gets rendered before SQLGlot parse (#39207) 2026-04-08 16:58:15 -03:00
JUST.in DO IT
4c2dd63464 fix(sqllab): Update style for code viewer container (#39075) 2026-04-08 12:42:06 -07:00
Maxime Beauchemin
62302ad8c3 perf(webpack): reduce watch mode memory usage and fix docker-compose-light env (#39183)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 12:26:49 -07:00
Maxime Beauchemin
ed659958f3 fix(sqllab): use monospace font for SQL in database error messages (#39181)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 12:26:25 -07:00
Maxime Beauchemin
36de05fe36 fix(plugin-chart-handlebars): improve CSS sanitization tooltip and hide when not needed (#39180)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 12:25:54 -07:00
Maxime Beauchemin
a64609f4f3 fix(explore): add left-indentation to control panel hierarchy (#39177)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 12:25:36 -07:00
Maxime Beauchemin
140f0001f2 fix(sqllab): demote "Save as new" button from primary to secondary (#39179)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-08 12:03:44 -07:00
Elizabeth Thompson
587fe4af63 fix(reports): propagate PlaywrightTimeout so execution transitions to ERROR state (#39176)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 11:00:03 -07:00
Michael S. Molina
3a3a6536b7 fix(explore): Unnecessary scroll bars appearing on charts in Explore (#39160)
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
2026-04-08 08:33:20 -03:00
Alexandru Soare
4f695e1b4d fix(filterReports): _generate_native_filter() crashes on null/empty filterValues (#38954) 2026-04-08 13:53:18 +03:00
Maxime Beauchemin
6ba9096870 fix(explore): handle boolean false values correctly in control rendering (#39172)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 18:23:03 -07:00
dependabot[bot]
5106afb07f chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39145)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:16:28 -07:00
dependabot[bot]
2bd4131636 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39134)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:15:18 -07:00
dependabot[bot]
7e452df1cc chore(deps): bump anthropics/claude-code-action from 1.0.87 to 1.0.89 (#39132)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:14:30 -07:00
dependabot[bot]
a626d06415 chore(deps): bump caniuse-lite from 1.0.30001784 to 1.0.30001786 in /docs (#39128)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:11:13 -07:00
dependabot[bot]
d159edc9a6 chore(deps-dev): bump @swc/core from 1.15.21 to 1.15.24 in /superset-frontend (#39127)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:10:17 -07:00
dependabot[bot]
96fa2cbd2b chore(deps): update @deck.gl/aggregation-layers requirement from ~9.2.9 to ~9.2.11 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#39126)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:09:49 -07:00
dependabot[bot]
9750881193 chore(deps-dev): bump @types/node from 25.5.0 to 25.5.2 in /superset-websocket (#39125)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:09:25 -07:00
dependabot[bot]
3db92021c7 chore(deps-dev): bump eslint from 10.1.0 to 10.2.0 in /superset-websocket (#39123)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 15:08:46 -07:00
dependabot[bot]
5ccfc530b2 chore(deps): bump geolib from 3.3.4 to 3.3.14 in /superset-frontend (#39092)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 14:48:08 -07:00
Amin Ghadersohi
5f9fc31ae2 feat(mcp): add get_chart_type_schema tool for on-demand schema discovery (#39142) 2026-04-07 12:07:45 -04:00
dependabot[bot]
8e811de564 chore(deps): bump hot-shots from 14.2.0 to 14.3.1 in /superset-websocket (#39147)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 22:43:50 +07:00
dependabot[bot]
027de6339b chore(deps-dev): bump jsdom from 29.0.1 to 29.0.2 in /superset-frontend (#39155)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 21:39:04 +07:00
Amin Ghadersohi
bf9aff19b5 fix(mcp): compress chart config schemas to reduce search_tools token usage (#39018) 2026-04-06 19:52:03 -04:00
SBIN2010
b05764d070 feat: Add currencies controls in country map (#39016) 2026-04-06 23:20:03 +03:00
Amin Ghadersohi
7be2acb2f3 fix(mcp): add description and certification fields to default list tool columns (#39017) 2026-04-06 13:37:52 -04:00
Amin Ghadersohi
83ad1eca26 fix(mcp): add dynamic response truncation for oversized info tool responses (#39107) 2026-04-06 12:36:03 -04:00
Amin Ghadersohi
92747246fc fix(mcp): remove JWT ValueError g.user fallback in auth layer (#39106) 2026-04-06 12:35:46 -04:00
Amin Ghadersohi
7380a59ab8 fix(mcp): fix form_data null, dataset URL, ASCII preview, and chart rename (#39109) 2026-04-06 12:34:26 -04:00
Ville Brofeldt
e56f8cc4fb fix(security_manager): custom auth_view issue (#39098) 2026-04-06 09:04:59 -07:00
Ville Brofeldt
7c79b9ab61 fix(migrations): check pre-existing foreign keys on create util (#39099) 2026-04-06 09:04:22 -07:00
Maxime Beauchemin
a62be684a0 feat(mcp): add database connection listing and info tools (#39111)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Amin Ghadersohi <amin.ghadersohi@gmail.com>
2026-04-06 11:34:10 -04:00
Michael S. Molina
a3dfbd7bff fix(deps): revert simple-zstd from 2.1.0 back to 1.4.2 (#39139)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 11:28:28 -03:00
Sam Firke
12eb40db01 fix(SQL Lab): handle columns without names (#38986) 2026-04-06 10:09:16 -04:00
dependabot[bot]
d796543f5a chore(deps): update @deck.gl/react requirement from ~9.2.9 to ~9.2.11 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#39033)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 15:07:42 -07:00
dependabot[bot]
e5ae626433 chore(deps): bump dawidd6/action-download-artifact from 19 to 20 (#39081)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 15:06:06 -07:00
dependabot[bot]
8195574345 chore(deps): bump anthropics/claude-code-action from 1.0.85 to 1.0.87 (#39083)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 15:04:43 -07:00
dependabot[bot]
6b029997d9 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39087)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 15:04:04 -07:00
dependabot[bot]
7a64483e6b chore(deps-dev): bump @swc/plugin-emotion from 14.7.0 to 14.8.0 in /superset-frontend (#39088)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 15:03:44 -07:00
dependabot[bot]
e424b55036 chore(deps-dev): bump babel-loader from 10.1.0 to 10.1.1 in /superset-frontend (#39090)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 15:02:57 -07:00
dependabot[bot]
613e6d6cde chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39093)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 15:02:11 -07:00
Amin Ghadersohi
b3a402d936 fix(mcp): handle stale SSL connections, heatmap duplicate labels, and session rollback (#39015) 2026-04-03 16:07:29 -04:00
JUST.in DO IT
c7d175b842 fix(dashboard): remove opacity on filter dropdown (#39074) 2026-04-03 09:31:23 -07:00
Amin Ghadersohi
851bbeea48 fix(mcp): improve execute_sql response-too-large error to suggest limit parameter (#39003) 2026-04-03 10:57:31 -04:00
dependabot[bot]
c5bce756f0 chore(deps): bump yeoman-generator from 7.5.1 to 8.1.2 in /superset-frontend (#38671)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 22:13:20 -07:00
dependabot[bot]
3239f058c8 chore(deps-dev): bump baseline-browser-mapping from 2.10.10 to 2.10.13 in /superset-frontend (#39044)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 22:10:35 -07:00
dependabot[bot]
7e0c634c3a chore(deps-dev): bump typescript-eslint from 8.56.1 to 8.58.0 in /superset-websocket (#38997)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 21:46:19 -07:00
dependabot[bot]
a9ced5c881 chore(deps): bump lodash-es from 4.17.23 to 4.18.1 in /superset-frontend (#39026)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 21:45:55 -07:00
dependabot[bot]
ace5f9d8c2 chore(deps): bump lodash from 4.17.23 to 4.18.1 in /superset-frontend/cypress-base (#39027)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 21:45:28 -07:00
dependabot[bot]
0452d1515a chore(deps-dev): bump @babel/preset-env from 7.29.0 to 7.29.2 in /superset-frontend (#39028)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 21:44:57 -07:00
dependabot[bot]
0330fdeb00 chore(deps-dev): bump ts-jest from 29.4.6 to 29.4.9 in /superset-websocket (#39029)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 21:44:32 -07:00
dependabot[bot]
f2ff24d811 chore(deps): bump @ant-design/icons from 5.6.1 to 6.1.1 in /superset-frontend (#39050)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 21:42:10 -07:00
dependabot[bot]
c51132f824 chore(deps): bump aws-actions/amazon-ecr-login from 2.1.1 to 2.1.2 (#39042)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 09:43:40 +07:00
dependabot[bot]
b4cb815ebf chore(deps): bump anthropics/claude-code-action from 1.0.83 to 1.0.85 (#39037)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 09:43:05 +07:00
dependabot[bot]
08d1ddd9fb chore(deps-dev): bump mini-css-extract-plugin from 2.10.1 to 2.10.2 in /superset-frontend (#39054)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 09:33:50 +07:00
dependabot[bot]
23ac4cb3a4 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39051)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-03 09:32:55 +07:00
Joe Li
5662ecab15 chore(tests): promote Playwright experimental tests to stable (#38924)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:00:06 -07:00
Joe Li
9e27d682f6 test(alerts/reports): close backend and frontend test coverage gaps (#38591)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 11:55:24 -07:00
Joe Li
f0fcdcc76a chore: package bumps (#39014) 2026-04-02 11:53:07 -07:00
Kamil Gabryjelski
135e0f8099 fix(mcp): Created dashboard should be in draft state by default (#39011) 2026-04-02 19:28:51 +02:00
Geidō
25eea295f6 fix(reports): log exception traceback in _get_csv_data (#39069)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 18:37:57 +02:00
dependabot[bot]
c372f5980c chore(deps): bump lodash from 4.17.23 to 4.18.1 in /superset-frontend (#39043)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-04-02 23:36:36 +07:00
dependabot[bot]
3802acb1e0 chore(deps-dev): bump jest-html-reporter from 4.3.0 to 4.4.0 in /superset-frontend (#39053)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 22:08:48 +07:00
dependabot[bot]
bdb0030cf8 chore(deps-dev): bump @swc/core from 1.15.18 to 1.15.21 in /superset-frontend (#39045)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 22:07:44 +07:00
dependabot[bot]
87f0540acd chore(deps-dev): bump ts-jest from 29.4.6 to 29.4.9 in /superset-frontend (#39049)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 22:06:54 +07:00
dependabot[bot]
985d7b6a79 chore(deps-dev): bump @types/node from 25.3.5 to 25.5.0 in /superset-frontend (#39055)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 22:06:13 +07:00
dependabot[bot]
59f92f979a chore(deps-dev): bump eslint-plugin-testing-library from 7.16.1 to 7.16.2 in /superset-frontend (#39056)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 22:03:50 +07:00
dependabot[bot]
5cc286e383 chore(deps-dev): bump @playwright/test from 1.58.2 to 1.59.1 in /superset-frontend (#39057)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 21:59:29 +07:00
dependabot[bot]
26f4a5acad chore(deps): bump azure/setup-helm from 4.3.1 to 5.0.0 (#38815)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-04-02 01:28:56 -04:00
dependabot[bot]
fdd08d3b70 chore(deps): bump ws from 8.19.0 to 8.20.0 in /superset-websocket (#38994)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-02 01:28:52 -04:00
dependabot[bot]
1aac6c9474 chore(deps): update @deck.gl/react requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38150)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 14:38:12 -07:00
dependabot[bot]
7acb0c6d05 chore(deps-dev): bump @types/node from 25.3.3 to 25.3.5 in /superset-frontend (#38510)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Joe Li <joe@preset.io>
2026-04-01 14:27:54 -07:00
dependabot[bot]
00eb86d03f chore(deps-dev): bump @swc/plugin-emotion from 14.6.0 to 14.7.0 in /superset-frontend (#38333)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-04-01 14:27:11 -07:00
dependabot[bot]
1d0e836a29 chore(deps): update @deck.gl/extensions requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38149)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-04-01 13:30:26 -07:00
dependabot[bot]
ec6640b188 chore(deps-dev): update fs-extra requirement from ^11.3.3 to ^11.3.4 in /superset-frontend/packages/generator-superset (#38383)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-04-01 13:29:47 -07:00
Rayan Salhab
ff3b8d8398 fix(ace-editor): fix cursor misalignment in markdown editor (#38928) 2026-04-01 12:03:28 -07:00
Michael S. Molina
022342839a fix(echarts): fix stacked horizontal bar chart clipping and duplicate x-axis labels (#39012) 2026-04-01 15:50:08 -03:00
Michael S. Molina
38f0dc74f7 fix(dataset-editor): improve modal layout and fix Settings tab horizontal scroll (#39009)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-04-01 15:36:17 -03:00
Amin Ghadersohi
0bae05d4a9 fix(mcp): handle table chart raw mode in query builders and sanitize dashboard titles (#38990) 2026-04-01 13:42:59 -04:00
dependabot[bot]
1bb41a6e60 chore(deps): bump anthropics/claude-code-action from 1.0.82 to 1.0.83 (#39001)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 10:20:18 -07:00
dependabot[bot]
4423134739 chore(deps): bump ioredis from 5.10.0 to 5.10.1 in /superset-websocket (#38993)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 10:19:26 -07:00
Amin Ghadersohi
190f1a59c5 fix(mcp): fix dashboard owners Pydantic crash and preserve chart preview filters (#38987) 2026-04-01 13:18:28 -04:00
dependabot[bot]
5f99d613a0 chore(deps): bump markdown-to-jsx from 9.7.6 to 9.7.8 in /superset-frontend (#38507)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 09:34:47 -07:00
dependabot[bot]
6adc816805 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#38438)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-04-01 09:34:01 -07:00
dependabot[bot]
aa97679327 chore(deps): update @deck.gl/aggregation-layers requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38148)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-04-01 09:32:38 -07:00
Michael S. Molina
94d8735d4b fix(query): pass datasource table to template processor for schema-aware Jinja rendering (#38984)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-01 13:08:12 -03:00
dependabot[bot]
64c8d652e1 chore(deps-dev): bump @types/node from 25.3.5 to 25.5.0 in /superset-websocket (#38995)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 22:48:45 +07:00
dependabot[bot]
d30c5b4eee chore(deps): bump caniuse-lite from 1.0.30001782 to 1.0.30001784 in /docs (#38998)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 22:37:29 +07:00
dependabot[bot]
8ed75787cb chore(deps-dev): bump jsdom from 28.1.0 to 29.0.1 in /superset-frontend (#38999)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 17:39:08 +07:00
michaelkremmel
4ee391e0d7 docs(db): Update crate.py with new Homepage URL (#39002) 2026-04-01 17:37:51 +07:00
dependabot[bot]
a67ca052d6 chore(deps-dev): bump babel-loader from 10.0.0 to 10.1.0 in /superset-frontend (#38505)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Joe Li <joe@preset.io>
2026-03-31 21:59:02 -07:00
dependabot[bot]
6b6e3803d1 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.56.1 to 8.57.0 in /superset-websocket (#38540)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:58:30 -07:00
dependabot[bot]
51ec61c675 chore(deps-dev): bump eslint from 10.0.2 to 10.0.3 in /superset-websocket (#38500)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:58:11 -07:00
dependabot[bot]
424f99efdf chore(deps): bump anthropics/claude-code-action from 1.0.80 to 1.0.82 (#38946)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:38:37 -07:00
dependabot[bot]
070be3de8b chore(deps-dev): bump webpack-bundle-analyzer from 5.2.0 to 5.3.0 in /superset-frontend (#38940)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:38:24 -07:00
dependabot[bot]
bd98269628 chore(deps): bump hot-shots from 14.1.1 to 14.2.0 in /superset-websocket (#38663)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:37:24 -07:00
dependabot[bot]
7ce371080c chore(deps-dev): bump @types/node from 25.3.3 to 25.3.5 in /superset-websocket (#38462)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-31 21:35:32 -07:00
dependabot[bot]
872632aca0 chore(deps): bump fs-extra from 11.3.2 to 11.3.4 in /superset-frontend (#38437)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:35:08 -07:00
dependabot[bot]
64bd03bd70 chore(deps): bump caniuse-lite from 1.0.30001781 to 1.0.30001782 in /docs (#38941) 2026-04-01 07:55:19 +07:00
madhushreeag
1e2d0faa55 fix(dashboard): dashboard filters not inherited in charts in Safari sometimes due to race condition (#38851)
Co-authored-by: madhushree agarwal <madhushree_agarwal@apple.com>
2026-03-31 12:46:05 -07:00
Michael S. Molina
8559786cc2 fix(mixed-timeseries): apply same axis formatting options as timeseries charts (#38979)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 15:00:46 -03:00
Michael S. Molina
d4d22909cb fix(dashboard): live CSS preview in PropertiesModal (#38960)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 15:00:20 -03:00
dependabot[bot]
4fae5758d5 chore(deps): bump baseline-browser-mapping from 2.10.11 to 2.10.12 in /docs (#38942)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-01 00:42:28 +07:00
dependabot[bot]
f85efe6139 chore(build): remove eslint-plugin-file-progress usage + correct newlines for npm run check:custom-rules (#38938)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-04-01 00:35:02 +07:00
Kamil Gabryjelski
6ea9f2ade9 chore(mcp): clarify saved metrics vs columns in MCP instructions (#38981)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 19:31:02 +02:00
dependabot[bot]
4036b784ed chore(deps): bump serialize-javascript and terser-webpack-plugin in /superset-embedded-sdk (#38920)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:30:40 -07:00
dependabot[bot]
08a4ad662a chore(deps): bump brace-expansion from 1.1.11 to 1.1.13 in /superset-frontend/cypress-base (#38919)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:30:06 -07:00
dependabot[bot]
e4021fb6e7 fix(sec): resolve 50+ Dependabot alerts + bump core-js (#38939)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-04-01 00:28:42 +07:00
Rui Zhao
53b1d1097c fix(presto): Fix presto timestamp (#26467)
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Rui Zhao <zhaorui@dropbox.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-03-31 10:28:06 -07:00
Mehmet Salih Yavuz
55aa36fef8 docs(developer): add celery to testing section for alerts&reports (#38888) 2026-03-31 10:24:58 -07:00
dependabot[bot]
3abcfb797a chore(deps-dev): bump open-cli from 8.0.0 to 9.0.0 in /superset-frontend (#38875)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:23:29 -07:00
dependabot[bot]
a741ddc03c chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /superset-embedded-sdk (#38864)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:19:48 -07:00
dependabot[bot]
7d26e33346 chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /superset-websocket (#38861)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 10:19:10 -07:00
Jessica Morris
f6cd8066ab fix(bubble): Fix Bubble chart axis label rotation (#38917) 2026-03-31 10:13:54 -07:00
Amin Ghadersohi
daefedebcd fix(mcp): batch fix for execute_sql crashes, null timestamps, and deck.gl errors (#38977) 2026-03-31 12:50:20 -04:00
Amin Ghadersohi
c37a3ec292 fix(mcp): add TEMPORAL_RANGE filter for temporal x-axis in generate_chart (#38978) 2026-03-31 12:39:08 -04:00
Amin Ghadersohi
4245720851 feat(mcp): add Big Number chart type support to MCP service (#38403)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-31 11:53:53 -04:00
Enzo Martellucci
f0b20dc445 fix(echarts): adapt y-axis ticks and padding for compact timeseries charts (#38673) 2026-03-31 17:44:42 +02:00
dependabot[bot]
e6f1209318 chore(deps): bump aws-actions/amazon-ecr-login from 2.0.2 to 2.1.1 (#38944)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:34:58 +07:00
dependabot[bot]
944944c49e chore(deps): bump antd from 6.3.4 to 6.3.5 in /docs (#38967)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:33:18 +07:00
dependabot[bot]
ecbf396d4a chore(deps): bump path-to-regexp from 8.2.0 to 8.4.0 in /superset-websocket/utils/client-ws-app (#38935)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 22:16:26 +07:00
RACZ Andras
b1474aaa60 docs: Fix misleading links in UPDATING.md (#38947) 2026-03-31 22:09:31 +07:00
dependabot[bot]
b49e899974 chore(deps-dev): bump typescript-eslint from 8.57.2 to 8.58.0 in /docs (#38968)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-31 21:59:46 +07:00
Đỗ Trọng Hải
11f2140c37 fix(AlteredSliceTag): not display undefined filter value for chart change record (#38883)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-31 10:38:22 -03:00
Michael S. Molina
f1cd1ae710 fix(pivot-table): safely cast numeric strings to numbers for date formatting (#38953)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 08:19:22 -03:00
Enzo Martellucci
e0a0a22542 fix(charts): add X Axis Number Format control for numeric X-axis columns (#38809)
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-03-31 13:38:07 +03:00
Amin Ghadersohi
2c9cf0bd55 fix(mcp): enforce MAX_PAGE_SIZE limit on list tools to prevent oversized responses (#38959) 2026-03-30 16:48:03 -04:00
Amin Ghadersohi
38fdfb4ca2 fix(mcp): prevent stale g.user from causing user impersonation across tool calls (#38747) 2026-03-30 14:23:46 -04:00
Kamil Gabryjelski
15bab227bb feat(mcp): support saved metrics from datasets in chart generation (#38955)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 16:38:31 +02:00
Amin Ghadersohi
d331a043a3 fix(mcp): prevent PendingRollbackError from poisoned sessions after SSL drops (#38934)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 10:30:15 -04:00
Enzo Martellucci
41d401a879 fix(select): ensure filter dropdown matches input field width (#38886) 2026-03-30 15:52:37 +02:00
Amin Ghadersohi
89f7e5e7ba fix(mcp): validate dataset exists in generate_explore_link before generating URL (#38951) 2026-03-30 09:29:29 -04:00
Amin Ghadersohi
aa1a69555b fix(mcp): prevent GRID_ID injection into ROOT_ID on tabbed dashboards (#38890)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 11:26:58 +02:00
Amin Ghadersohi
d1903afc69 fix(mcp): remove @parse_request decorator for cleaner tool schemas (#38918) 2026-03-29 16:09:51 -04:00
Đỗ Trọng Hải
dbc25dc555 fix(ci): resolve failed CodeCov upload for backend tests (#38885)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-27 18:33:02 -04:00
JUST.in DO IT
a5d2324e21 fix(sqllab): invalid treeview folder expansion (#38897) 2026-03-27 14:54:45 -07:00
dependabot[bot]
38e82e4084 chore(deps): bump yaml from 1.10.2 to 1.10.3 in /superset-frontend/cypress-base (#38856)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 13:58:26 -07:00
dependabot[bot]
6bcc8bf2b2 chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /superset-frontend/cypress-base (#38862)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 13:58:06 -07:00
Mehmet Salih Yavuz
f832f9b0d5 fix(Timeseries): dedup x axis labels (#38733) 2026-03-27 22:13:02 +03:00
Kamil Gabryjelski
fc705d94e3 fix(explore): migrate from window.history to React Router history API (#38887) 2026-03-27 16:49:54 +01:00
JUST.in DO IT
65eae027fa fix(sqllab): long cell content overflooding (#38855) 2026-03-27 09:46:10 -03:00
Krishna Chaitanya
ac96f46c76 fix(dataset): add email field to owners_data for Chart Explore path (#38836) 2026-03-27 09:44:11 -03:00
Alexandru Soare
5c782397bb refactor(passwords): accept passwords via YAML file (#38059)
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
2026-03-27 14:37:34 +02:00
Enzo Martellucci
40387d5daa fix(reports): PUT with empty recipients list does not persist the change (#38711) 2026-03-27 12:54:13 +01:00
dependabot[bot]
7f3351011d chore(deps): bump anthropics/claude-code-action from 1.0.78 to 1.0.80 (#38901)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:52:31 +07:00
dependabot[bot]
d6a6b6db14 chore(deps): bump yaml from 1.10.2 to 1.10.3 in /superset-frontend (#38905)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:51:06 +07:00
dependabot[bot]
388a1fd0be chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /superset-frontend (#38906)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:47:12 +07:00
dependabot[bot]
c2c929bf94 chore(deps-dev): bump speed-measure-webpack-plugin from 1.5.0 to 1.6.0 in /superset-frontend (#38871)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:46:12 +07:00
dependabot[bot]
41473a520e chore(deps): bump handlebars from 4.7.8 to 4.7.9 in /superset-frontend (#38894)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:45:21 +07:00
dependabot[bot]
50a5bb0671 chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9 in /superset-websocket (#38895)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:44:48 +07:00
dependabot[bot]
20d0cfd156 chore(deps): bump codecov/codecov-action from 5.5.3 to 6.0.0 (#38903)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:44:26 +07:00
dependabot[bot]
5ad91fbb09 chore(deps): bump baseline-browser-mapping from 2.10.10 to 2.10.11 in /docs (#38902)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:43:58 +07:00
dependabot[bot]
6229c99050 chore(deps): bump @ant-design/icons from 6.1.0 to 6.1.1 in /docs (#38904)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:43:38 +07:00
dependabot[bot]
7e69d5d839 chore(deps): bump node-forge from 1.3.2 to 1.4.0 in /docs (#38907)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-27 14:42:11 +07:00
dagecko
8700ec4e6d fix: pin 2 unpinned action(s),extract 21 unsafe expression(s) to env vars (#38893) 2026-03-27 14:38:20 +07:00
dependabot[bot]
8cbf5fb8df chore(deps-dev): bump lerna from 8.2.4 to 9.0.4 in /superset-frontend (#37914)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
2026-03-27 14:29:19 +07:00
Richard Fogaca Nienkotter
9c288d66b5 fix(dataset): add missing currency_code_column to DatasetPostSchema (#38853) 2026-03-26 16:58:04 -03:00
Beto Dealmeida
8983edea66 fix: type probing (#38889) 2026-03-26 13:06:49 -04:00
Shaitan
95820fb9e6 docs: improve SQL templating guidance and examples (#38777)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Daniel Vaz Gaspar <danielvazgaspar@gmail.com>
2026-03-26 16:47:14 +00:00
Amin Ghadersohi
6dc3d7ad9f fix(mcp): add try/except around DAO re-fetch to handle session errors in multi-tenant (#38859) 2026-03-26 12:43:21 -04:00
JUST.in DO IT
cfa1aba1e0 fix(sqllab): inactive leftbar selector on empty state (#38833) 2026-03-26 08:57:16 -07:00
dependabot[bot]
43816d7528 chore(deps): bump aws-actions/amazon-ecs-deploy-task-definition from 2.6.0 to 2.6.1 (#38874)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-26 21:59:45 +07:00
dependabot[bot]
6dd82afb0b chore(deps): bump dayjs from 1.11.19 to 1.11.20 in /superset-frontend (#38840)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
2026-03-26 21:52:42 +07:00
JUST.in DO IT
e045f49787 fix(echart): multiple time shift line pattern (#38866) 2026-03-26 08:56:05 -03:00
Joe Li
38d3a39c06 test(sqllab): add SQL Lab SDK API contract tests (#38860)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 08:52:14 -03:00
Amin Ghadersohi
23a5e95884 fix(mcp): add permission checks to generate_dashboard and update_chart tools (#38845) 2026-03-25 16:37:48 -04:00
Kamil Gabryjelski
16f5a2a41a fix(mcp): detect unknown chart config fields and suggest correct ones (#38848)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 18:38:23 +01:00
Joe Li
04e07acf98 fix(tests): resolve flakey SouthPane extension test caused by nwsapi (#38832)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 09:54:44 -07:00
Đỗ Trọng Hải
3506773f51 fix(ci): install missing msgcat used for Babel translation update (#38830)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-25 23:40:40 +07:00
dependabot[bot]
d32e975eb9 chore(deps): bump anthropics/claude-code-action from 1.0.76 to 1.0.78 (#38842)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 23:38:08 +07:00
dependabot[bot]
21fb5a27e9 chore(deps): bump google-auth-library from 10.6.1 to 10.6.2 in /superset-frontend (#38841)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 23:35:50 +07:00
Mayank Aggarwal
403f4ad78c fix(dashboard): larger JSON metadata editor for better editing UX (#38728) (#38745) 2026-03-25 23:25:47 +07:00
dependabot[bot]
ba5820b088 chore(deps): bump antd from 6.3.3 to 6.3.4 in /docs (#38843)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-25 23:09:16 +07:00
Shaitan
a93e319716 fix(datasource): align access validation in legacy views (#38647)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Daniel Vaz Gaspar <danielvazgaspar@gmail.com>
2026-03-25 14:56:59 +00:00
Richard Fogaca Nienkotter
12aca72074 fix(echarts): prevent plain legend clipping in dashboards (#38675) 2026-03-25 09:38:31 -03:00
Michael S. Molina
3fb903fdc6 fix(embedded-sdk): wire hideTab to actually hide the dashboard tab (#38846) 2026-03-25 09:19:56 -03:00
Joe Li
4b26f8c712 fix(models): correct TabState.latest_query_id column type to match FK target (#38837)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-25 04:24:53 -04:00
Alexandru Soare
37c4a36fdb fix(report): raise warning when filter type not recognized (#38676) 2026-03-24 16:06:44 -07:00
Amin Ghadersohi
811dcb3715 feat(api-keys): add API key authentication via FAB SecurityManager (#37973)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
2026-03-24 13:37:26 -04:00
Joe Li
ccaac306e5 test(sqllab): add extension slot contract tests for all 7 host components (#38776)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 10:01:52 -07:00
Amin Ghadersohi
c596df9294 feat(mcp): add Handlebars chart type support to MCP service (#38402)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-24 12:25:39 -04:00
Michael S. Molina
6852349d24 fix(extensions-cli): remove publisher prefix from bundle filename (#38823) 2026-03-24 13:09:10 -03:00
JUST.in DO IT
7c9d75b69e fix(sqllab): FilterText does not apply accordingly (#38813) 2026-03-24 09:04:41 -07:00
dependabot[bot]
42201a98a1 chore(deps): bump pug from 3.0.3 to 3.0.4 in /superset-websocket/utils/client-ws-app (#38664) 2026-03-24 22:40:17 +07:00
Amin Ghadersohi
09594b32f9 fix(mcp): fix generate_dashboard cross-session SQLAlchemy error (#38827) 2026-03-24 11:39:37 -04:00
dependabot[bot]
e2bb20121e chore(deps-dev): bump typescript-eslint from 8.57.1 to 8.57.2 in /docs (#38818)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-24 22:07:07 +07:00
Francesco.Castaldi
56ebfb7848 feat(i18n): update Italian messages.po (#38821) 2026-03-24 22:06:11 +07:00
Beto Dealmeida
5d9f53ff0c feat: prevent Postgres connection to Redshift (#38693) 2026-03-24 10:44:38 -04:00
Alexandru Soare
89d1b80ce7 fix(keys): Unsafe dict access in get_native_filters_params() crashes execution (#38272) 2026-03-24 15:43:27 +02:00
Shaitan
962abf6904 fix(sqllab): add authorization check to query cost estimation (#38648)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 12:57:02 +00:00
Amin Ghadersohi
ed3c5280a9 fix(mcp): prevent encoding errors and fix tool bugs on MCP client transports (#38786) 2026-03-24 05:41:24 -04:00
Mehmet Salih Yavuz
7222327992 fix(Matrixify): readd matrixify_enable guard missing (#38759) 2026-03-23 23:29:09 +03:00
Beto Dealmeida
e0b524fff2 chore: docs on Redshift auth with access key (#38810) 2026-03-23 16:07:36 -04:00
Levis Mbote
e67bc5bee5 fix(explore): display actual data type instead of "column" in column tooltip (#38554) 2026-03-23 09:06:54 -07:00
Mehmet Salih Yavuz
86a260e39b feat(theming): Custom label tokens (#38679) 2026-03-23 18:21:47 +03:00
Mehmet Salih Yavuz
fdcb942f3c fix(MainNav): display all menu items on smaller screens (#38732) 2026-03-23 18:21:13 +03:00
dependabot[bot]
7a5c07b99c chore(deps): bump @babel/runtime from 7.28.6 to 7.29.2 in /superset-frontend (#38804)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 22:21:07 +07:00
dependabot[bot]
6d93eeb533 chore(deps): bump baseline-browser-mapping from 2.10.9 to 2.10.10 in /docs (#38799)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 22:20:36 +07:00
Mehmet Salih Yavuz
44179199ba chore(Reports): remove unused and incorrect field (#38724) 2026-03-23 18:20:21 +03:00
Mehmet Salih Yavuz
100ad7d9ee fix(AlertsReports): validate anchor_list is a list (#38723) 2026-03-23 18:19:57 +03:00
dependabot[bot]
c96c817ef5 chore(deps-dev): bump eslint-plugin-testing-library from 7.16.0 to 7.16.1 in /superset-frontend (#38795)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 22:10:30 +07:00
dependabot[bot]
519a64da82 chore(deps): bump @swc/core from 1.15.18 to 1.15.21 in /docs (#38798)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 22:09:00 +07:00
dependabot[bot]
24be9cd515 chore(deps): bump caniuse-lite from 1.0.30001780 to 1.0.30001781 in /docs (#38801)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 21:58:15 +07:00
dependabot[bot]
1987e816a5 chore(deps-dev): bump baseline-browser-mapping from 2.10.7 to 2.10.10 in /superset-frontend (#38805)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 21:57:57 +07:00
dependabot[bot]
0f4aa1ceea chore(deps): bump nanoid from 5.1.6 to 5.1.7 in /superset-frontend (#38803)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 21:56:54 +07:00
dependabot[bot]
601fb45142 chore(deps-dev): bump oxlint from 1.53.0 to 1.56.0 in /superset-frontend (#38802)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 21:52:51 +07:00
dependabot[bot]
c9ebb13fa1 chore(deps-dev): bump @babel/runtime-corejs3 from 7.29.0 to 7.29.2 in /superset-frontend (#38800)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 21:50:52 +07:00
dependabot[bot]
618113079f chore(deps): bump anthropics/claude-code-action from 0.0.63 to 1.0.76 (#38797)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-23 21:48:46 +07:00
Mehmet Salih Yavuz
cc34d19d24 fix(DropdownContainer): add fresh to avoid stale data (#38702) 2026-03-23 14:32:11 +03:00
João Pedro Alves Barbosa
02ffb52f4a fix(table): improve conditional formatting text contrast (#38705) 2026-03-22 18:59:15 -03:00
dependabot[bot]
361afff798 chore(deps-dev): bump copy-webpack-plugin from 13.0.1 to 14.0.0 in /superset-frontend (#38504) 2026-03-22 23:49:45 +07:00
dependabot[bot]
2a6b0215f0 chore(deps): bump simple-zstd from 1.4.2 to 2.1.0 in /superset-frontend (#38662) 2026-03-22 23:49:00 +07:00
dependabot[bot]
c1c296233f chore(deps-dev): bump terser-webpack-plugin from 5.3.17 to 5.4.0 in /superset-frontend (#38669)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-22 11:23:47 +07:00
dependabot[bot]
e05fdd8acd chore(deps): bump mapbox-gl from 3.19.0 to 3.20.0 in /superset-frontend (#38670)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
2026-03-22 10:58:08 +07:00
Đỗ Trọng Hải
83823911b5 feat(sec): harden GHA ref by using its SHA ID to prevent accidental usage of compromised actions (#38782)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-21 21:27:30 +07:00
Đỗ Trọng Hải
7004369c68 fix(sec): remove compromised Trivy actions (#38780)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-21 12:24:24 +07:00
dependabot[bot]
f5d7ce0f86 chore(deps-dev): bump flatted from 3.4.1 to 3.4.2 in /superset-frontend (#38771)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
2026-03-21 11:44:13 +07:00
dependabot[bot]
32eb8c8263 chore(deps): bump flatted from 3.3.3 to 3.4.2 in /docs (#38772)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-21 09:27:03 +07:00
Amin Ghadersohi
44c2c765ae fix(mcp): convert adhoc filters to QueryObject format before query compilation (#38774) 2026-03-20 20:43:09 +01:00
Amin Ghadersohi
0d5721910e fix(mcp): normalize call_tool proxy arguments to prevent encoding TypeError (#38775) 2026-03-20 20:42:40 +01:00
dependabot[bot]
28d67d59cd chore(deps-dev): bump flatted from 3.2.2 to 3.4.2 in /superset-frontend/cypress-base (#38761)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 10:32:21 -07:00
Kamil Gabryjelski
1d72480c17 fix(mcp): fix detached Slice instance error in chart/dashboard serialization (#38767)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 18:23:51 +01:00
dependabot[bot]
1af5da6aad chore(deps): bump baseline-browser-mapping from 2.10.7 to 2.10.9 in /docs (#38756)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 10:12:39 -07:00
dependabot[bot]
ea1c6ee30f chore(deps): bump geostyler-openlayers-parser from 5.4.0 to 5.4.1 in /superset-frontend (#38755)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 10:12:07 -07:00
dependabot[bot]
97ea479cdc chore(deps-dev): bump flatted from 3.3.1 to 3.4.2 in /superset-websocket (#38752)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-20 10:11:41 -07:00
Enzo Martellucci
e088979fbe fix(reports): validate nativeFilters on report create/update and deactivate on dashboard filter deletion (#38715) 2026-03-20 17:20:02 +01:00
Kamil Gabryjelski
5e5c05362c fix(mcp): use correct permission class for save_sql_query tool (#38764)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 17:15:19 +01:00
Amin Ghadersohi
c2a21915ff fix(mcp): fix dashboard slug null and execute_sql encoding error (#38710) 2026-03-20 14:41:54 +01:00
Enzo Martellucci
cbb2b2f3c2 feat(themes): add JSON formatting to theme modal editor (#38739) 2026-03-20 13:48:00 +01:00
Alexandru Soare
82a74c88aa fix(button): Theming configurations for button elements is not consistent (#38604) 2026-03-20 12:37:04 +02:00
Levis Mbote
6b9dd23e3a fix(timeseries-table): enable proper column sorting in timeseries-table chart (#38579) 2026-03-19 12:01:40 -07:00
Levis Mbote
b754f2d173 fix(theme): persist local theme id so "Local" tag remains after navigation (#38527) 2026-03-19 12:01:24 -07:00
Levis Mbote
ee233d16d6 fix(dashboard): correct tab underline width for newly added dashboard tabs. (#38524) 2026-03-19 12:01:08 -07:00
Levis Mbote
65f13f773e fix(theme): ensure colorLink follows colorPrimary when not explicitly set (#38517) 2026-03-19 12:00:41 -07:00
Shaitan
d4646d43a7 docs(security): update vulnerability reporting policy and admin trust boundary (#38653)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 10:57:57 -07:00
Alexandru Soare
6465450b64 fix(firebolt): Firebolt SQL entered with EXCLUDE is rewritten to EXCEPT (#38742) 2026-03-19 10:21:50 -07:00
dependabot[bot]
01aa4d3281 chore(deps): bump match-sorter from 6.3.4 to 8.2.0 in /superset-frontend (#36470)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-03-19 23:28:20 +07:00
Kamil Gabryjelski
211f29b723 fix(mcp): Chart schema followups - DRY extraction, template fix, alias and test gaps (#38746)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 16:50:42 +01:00
Đỗ Trọng Hải
d6bfc98a61 feat(ci): use zstd for faster saving and loading superset-node-ci image (#38645)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-19 22:43:16 +07:00
dependabot[bot]
5457c2da67 chore(deps): bump dawidd6/action-download-artifact from 17 to 19 (#38735)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-19 22:42:39 +07:00
Kamil Gabryjelski
14b1b456e1 fix: Add aliases and groupby list to chart schemas (#38740) 2026-03-19 16:15:58 +01:00
Luiz Otavio
972e15e601 fix(sql): remove WHERE 1 = 1 when temporal filter has "No filter" selected (#38704) 2026-03-19 08:29:53 -03:00
Joe Li
03de7e1ec6 fix(dashboard): use inline theme data to prevent 403 for non-admin users (#38384)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 16:17:03 -07:00
dependabot[bot]
3edf75123a chore(deps): bump swagger-ui-react from 5.32.0 to 5.32.1 in /docs (#38708)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-18 10:12:47 -07:00
Michael S. Molina
fd1c423826 fix(chart): prevent chart list from failing when a datasource lacks explore_url (#38721) 2026-03-18 10:23:57 -03:00
Kamil Gabryjelski
a314e5b35e fix: Row limit support for chart mcp tools (#38717) 2026-03-18 13:40:47 +01:00
Amin Ghadersohi
e02ca8871d fix(mcp): expose individual tool parameters when MCP_PARSE_REQUEST_ENABLED=False (#38714)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 11:38:22 +01:00
dependabot[bot]
834d2abe70 chore(deps): bump antd from 6.3.2 to 6.3.3 in /docs (#38686)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-17 16:01:02 -07:00
Evan Rusackas
91986fff02 fix(tests): restore 100% TypeScript coverage for core packages (#38682)
Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Joe Li <joe@preset.io>
2026-03-17 15:28:51 -03:00
João Pedro Alves Barbosa
05b9970aa6 fix(map-box): prevent clusters from being smaller than individual points (#38458)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-17 15:08:05 -03:00
Michael S. Molina
6f301707f9 fix: Simplify extension folder name (#38690) 2026-03-17 14:00:19 -03:00
mcdogg17
5865176f36 fix(dashboard): overload issue in dashboard export to excel (#29418)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 09:29:32 -07:00
dependabot[bot]
461037f645 chore(deps-dev): bump typescript-eslint from 8.56.1 to 8.57.1 in /docs (#38684)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-17 21:54:27 +07:00
dependabot[bot]
c980f39aab chore(deps): bump caniuse-lite from 1.0.30001778 to 1.0.30001780 in /docs (#38688)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-17 21:51:39 +07:00
Beto Dealmeida
a854fa60a2 feat: apply RLS conservatively (#38683) 2026-03-17 10:20:09 -04:00
Amin Ghadersohi
1c8224f4c6 feat(mcp): Add tool annotations for MCP directory compliance (#38641) 2026-03-16 19:09:25 -07:00
Đỗ Trọng Hải
ca403dc45d fix(ci): allow docs testing to run despite absence of db diagnostics data (#38655)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-17 08:01:43 +07:00
João Pedro Alves Barbosa
96705c156a fix(map-box): make opacity, lon, lat, and zoom controls functional (#38374)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-03-16 21:55:49 -03:00
endimonan
7909095ff3 feat(native-filters): add configurable LIKE/ILIKE operators to Select filter (#38470)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Richard Fogaca Nienkotter <63572350+richardfogaca@users.noreply.github.com>
2026-03-16 21:11:53 -03:00
Joe Li
aa5adb0fce fix(embedded): default to light theme instead of system preference (#38644)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 09:33:33 -07:00
Ville Brofeldt
dcb414aa06 feat(extensions): add update command to extensions cli (#38651) 2026-03-16 07:02:42 -07:00
Đỗ Trọng Hải
afe093f1ca fix(FilterBar): reduce padded space between filter header and first filter (#38646)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-16 10:00:52 -03:00
Mayank Aggarwal
cc066b3576 fix(docs): use absolute API doc links in developer docs (#38649) 2026-03-14 22:50:14 +07:00
dependabot[bot]
39cd1cdd43 chore(deps): bump dawidd6/action-download-artifact from 16 to 17 (#38620)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 12:40:25 +07:00
dependabot[bot]
176bf00c16 chore(deps-dev): bump baseline-browser-mapping from 2.10.0 to 2.10.7 + sync lockfile + run npm audit fix in /superset-frontend (#38621)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-03-14 12:28:47 +07:00
dependabot[bot]
68e38c8893 chore(deps): bump undici from 7.22.0 to 7.24.1 in /superset-frontend (#38642)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-14 11:13:50 +07:00
Amin Ghadersohi
48220fb33f feat(mcp): add save_sql_query tool for SQL Lab saved queries (#38414)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 14:02:04 -07:00
Mehmet Salih Yavuz
ed622e254a feat(matrixify): Revamp control panel (#38519) 2026-03-13 21:51:53 +03:00
amaannawab923
6e7d6a85b4 fix(ag-grid-table): fix failing buildQuery test expectation (#38636) 2026-03-14 00:59:52 +07:00
Luiz Otavio
e8061a9c2b style(metadata-bar): use bold font weight for metadata bar title (#38608) 2026-03-13 14:24:14 -03:00
Amin Ghadersohi
97a66f7a64 feat(mcp): add BM25 tool search transform to reduce initial context size (#38562)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 18:06:11 +01:00
Amin Ghadersohi
b6c3b3ef46 fix(mcp): return all statement results for multi-statement SQL queries (#38388)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:53:52 +01:00
dependabot[bot]
f4a57a13bc chore(deps): bump dompurify from 3.3.2 to 3.3.3 in /superset-frontend (#38592)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Đỗ Trọng Hải <41283691+hainenber@users.noreply.github.com>
2026-03-13 22:07:09 +07:00
dependabot[bot]
242636b36b chore(deps): bump baseline-browser-mapping from 2.10.0 to 2.10.7 in /docs (#38622)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 22:06:43 +07:00
dependabot[bot]
ba7d7dcec0 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#38619)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 22:06:21 +07:00
Rafael Benitez
ba7271b4d8 fix(world-map): add fallback fill color when colorFn returns null (#38602)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:02:03 -03:00
amaannawab923
ca2d26a1e2 fix(ag-grid-table): fix AND filter conditions not applied (#38369) 2026-03-13 19:42:14 +05:30
Alexandru Soare
f6106cd26f fix(timeshiftcolor): Time shift color to match the original color (#38473) 2026-03-13 15:24:56 +02:00
Michael S. Molina
1867336907 fix(editor): implement missing methods, fix cursor position clearing (#38603) 2026-03-13 09:06:55 -03:00
Ville Brofeldt
f5383263bc fix(extensions): fix gitignore template and bump version (#38614) 2026-03-13 08:50:10 -03:00
Amin Ghadersohi
d5cf77cd60 fix(mcp): fix crashes in list tools, dataset info, chart preview, and add owner/favorite filters (#38277)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:46:52 +01:00
Amin Ghadersohi
f458e2d484 feat(mcp): add extra_form_data param to get_chart_data for dashboard filters (#38531)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 12:13:47 +01:00
Kamil Gabryjelski
af5e05db2e fix(mcp): Support form_data_key without chart identifier for unsaved charts (#38628) 2026-03-13 11:58:12 +01:00
Enzo Martellucci
32a64d02c7 fix(deckgl): polygon chart not rendering when boundary column contains nested geometry JSON (#38595) 2026-03-13 11:54:05 +01:00
Enzo Martellucci
9516d1a306 fix(explore/dashboard): fix CSV/Excel downloads for legacy chart types (#38513)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-03-13 11:49:34 +01:00
Kamil Gabryjelski
d91b96814e fix(mcp): Improve validation errors and field aliases to reduce failed LLM tool calls (#38625) 2026-03-13 11:16:50 +01:00
Daniel Vaz Gaspar
56d6bb1913 feat(auth): add SAML login support to frontend (#38606) 2026-03-13 09:00:07 +00:00
Amin Ghadersohi
fc156d0014 fix(mcp): replace uuid with url and changed_on_humanized in default list columns (#38566)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 09:53:30 +01:00
Đỗ Trọng Hải
0b8df8d3f2 build(deps): update geostyler-* deps to latest major versions (#38151)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-13 01:18:59 -07:00
Amin Ghadersohi
83955e87ac refactor(mcp): use serialize_user_object in get_instance_info (#38613) 2026-03-13 08:59:21 +01:00
dependabot[bot]
4a9db243a1 chore(deps): bump caniuse-lite from 1.0.30001777 to 1.0.30001778 in /docs (#38593)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-13 09:35:13 +07:00
Amin Ghadersohi
d4f1f8db00 fix(mcp): extract role names as strings in UserInfo serialization (#38612) 2026-03-12 16:20:53 -07:00
Mehmet Salih Yavuz
95f61bd223 fix: add parent_slice_id for multilayer charts to embed (#38243) 2026-03-12 21:21:43 +03:00
Mehmet Salih Yavuz
7f476a79b3 fix: add embedded box sizing rule for layout (#38351)
Co-authored-by: Joe Li <joe@preset.io>
2026-03-12 21:20:14 +03:00
Amin Ghadersohi
65e21cf13c docs: move MCP deployment guide to admin docs, add user-facing AI guide (#38585) 2026-03-12 10:30:51 -07:00
Amin Ghadersohi
7943af359c feat(mcp): implement RBAC permission checking for MCP tools (#38407)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 17:35:07 +01:00
Yuriy Krasilnikov
09e9c6a522 fix(embedded): prevent double RLS application in virtual datasets (#37395) 2026-03-12 14:12:59 +01:00
Ville Brofeldt
a9def2fc15 fix: support nested function calls in cache_key_wrapper (#38569) 2026-03-12 08:08:58 -03:00
Alexandru Soare
27197faba9 fix(matrixify): Matrixify to not override slice id (#38515)
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-12 11:39:29 +02:00
dependabot[bot]
ffe60bd960 chore(deps-dev): bump oxlint from 1.51.0 to 1.53.0 in /superset-frontend (#38571)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 23:41:41 +07:00
dependabot[bot]
d752be5f74 chore(deps): bump dompurify from 3.3.1 to 3.3.2 in /superset-frontend (#38455)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-11 08:51:40 -07:00
dependabot[bot]
3056c41507 chore(deps): bump caniuse-lite from 1.0.30001775 to 1.0.30001777 in /docs (#38463)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-11 08:51:21 -07:00
dependabot[bot]
d42e9c4d1b chore(deps): bump acorn from 8.9.0 to 8.16.0 in /superset-frontend (#38466)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-11 08:51:10 -07:00
dependabot[bot]
5912941942 chore(deps-dev): bump @typescript-eslint/parser from 8.56.1 to 8.57.0 in /superset-websocket (#38570)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 22:50:11 +07:00
dependabot[bot]
9b8106b382 chore(deps-dev): bump mini-css-extract-plugin from 2.10.0 to 2.10.1 in /superset-frontend (#38573)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-11 22:23:08 +07:00
amaannawab923
9215eb5e45 fix(ag-grid): persist AG Grid column filters in explore permalinks (#38393) 2026-03-11 01:56:24 +05:30
Amin Ghadersohi
fe7f220c21 fix(charts): set reasonable default y-axis title margin to prevent label overlap (#38389)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 19:09:09 +01:00
Amin Ghadersohi
3bb9704cd5 fix(mcp): honor target_tab parameter when adding charts to tabbed dashboards (#38409)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:57:15 -07:00
Amin Ghadersohi
eb77452857 feat(mcp): auto-generate dashboard title from chart names when omitted (#38410)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:56:58 -07:00
Amin Ghadersohi
6d7cfac8b2 fix(mcp): wrap LoggingMiddleware.on_message event_logger in try/except (#38560) 2026-03-10 17:48:08 +01:00
Đỗ Trọng Hải
31754a39c9 fix(i18n): correct variable name for translated SQL Lab query message (#38494)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-10 21:50:14 +07:00
Michael S. Molina
bde48e563e fix: SQL Lab tab content padding (#38561) 2026-03-10 11:44:31 -03:00
Amin Ghadersohi
0cfd760a36 fix(mcp): improve default chart names with descriptive format (#38406)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 10:53:05 +01:00
dependabot[bot]
13fe88000a chore(deps-dev): bump lightningcss from 1.31.1 to 1.32.0 in /superset-frontend (#38511)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-10 16:51:58 +07:00
dependabot[bot]
cc8ad23d6f chore(deps): bump react-diff-viewer-continued from 3.4.0 to 4.2.0 in /superset-frontend (#38552)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-03-10 15:57:32 +07:00
Amin Ghadersohi
5c2cbb58bc fix(mcp): add missing __init__.py for chart, dashboard, dataset packages (#38400) 2026-03-10 09:52:48 +01:00
Amin Ghadersohi
6342c4f338 feat(mcp): add horizontal bar chart orientation support to generate_chart (#38390)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:52:12 +01:00
Amin Ghadersohi
5fa70bdbd8 fix(mcp): add guardrails to prevent LLM artifact generation (#38391)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:51:23 +01:00
Amin Ghadersohi
2a876e8b86 fix(mcp): add missing command.validate() to MCP chart data tools (#38521)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:50:41 +01:00
Amin Ghadersohi
0533ca9941 feat(mcp): register GlobalErrorHandlerMiddleware and LoggingMiddleware (#38523)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 09:48:38 +01:00
dependabot[bot]
5f20d2e15a chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#38548)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 15:21:18 +07:00
dependabot[bot]
6d1d5d64d1 chore(deps): bump antd from 6.3.1 to 6.3.2 in /docs (#38547)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 15:21:00 +07:00
dependabot[bot]
06d6b513cd chore(deps-dev): bump jest from 30.2.0 to 30.3.0 in /superset-frontend (#38549)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-10 14:39:05 +07:00
dependabot[bot]
afa51125de chore(deps): bump the storybook group in /docs with 11 updates (#38501)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-10 10:09:40 +07:00
dependabot[bot]
26c07b1ffb chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.9.1 to 0.9.2 in /superset-frontend (#38509)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-10 08:54:43 +07:00
Đỗ Trọng Hải
9ecca47e69 feat(ci): only run precommit on changed files (#38155)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-10 08:49:38 +07:00
dependabot[bot]
6c1df93215 chore(deps): bump aquasecurity/trivy-action from 0.34.2 to 0.35.0 (#38502)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-10 08:46:19 +07:00
dependabot[bot]
06fd0658ae chore(deps-dev): bump prettier-plugin-packagejson from 3.0.0 to 3.0.2 in /superset-frontend (#38508)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-10 08:46:01 +07:00
Enzo Martellucci
a17f38a4e2 fix(embedded): add CurrentUserRestApi read permission to Public role defaults (#38474) 2026-03-10 00:08:37 +01:00
Amin Ghadersohi
6ef4794778 fix(mcp): resolve chatbot tool call flakiness with URL and instruction fixes (#38532) 2026-03-09 23:35:50 +01:00
Amin Ghadersohi
4cd3ce164d fix(mcp): make fastmcp truly optional during Superset startup (#38534) 2026-03-09 15:32:27 -07:00
Evan Rusackas
8e3e57c1c8 fix(docs): swizzle MethodEndpoint to fix SSG crash on all API pages (#38533)
Co-authored-by: Superset Dev <dev@superset.apache.org>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 14:18:59 -07:00
Hugh A. Miles II
61fbfda501 feat(security): add granular export controls (Phase 1) (#38361) 2026-03-09 16:44:56 -04:00
Evan Rusackas
9017b9a74f chore: enable allow_update_branch in .asf.yaml (#38530)
Co-authored-by: Superset Dev <dev@superset.apache.org>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 13:42:09 -07:00
Gabriel Torres Ruiz
bc99b710bd fix(dashboard): ensure clear all respects required filter validation (#37681) 2026-03-09 13:02:57 -07:00
Michael S. Molina
bf55f1e438 chore(extensions): bump superset-core and superset-extensions-cli to 0.1.0rc1 (#38516) 2026-03-09 14:40:08 -03:00
Gabriel Torres Ruiz
dca41f9a7b fix(theme): prevent background color flash on page load (#38399) 2026-03-09 09:53:38 -07:00
yousoph
62cebc8a0e fix(dashboard): prevent Apply button from disabling when required filters are auto-applied (#38479)
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 09:29:43 -07:00
Michael S. Molina
e70c7944b7 fix(tests): achieve 100% TypeScript coverage for core packages (#38518) 2026-03-09 13:25:39 -03:00
yousoph
577654cd02 fix(heatmap): correct tooltip display to show axis values instead of indices (#38487) 2026-03-09 08:54:47 -07:00
Enzo Martellucci
c7a1f57487 fix(sqla): parenthesize extras where/having clauses in query generation (#38183)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:05:55 +01:00
yousoph
9983e255f8 fix(charts): revert: improve negative stacked bar label positioning and accessibility (#37405) (#38484)
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 00:09:09 -07:00
Vitor Avila
d9a91f99db feat: support for import/export masked_encrypted_extra (frontend) (#38078) 2026-03-09 01:59:54 -03:00
dependabot[bot]
60577bcd97 chore(deps-dev): bump webpack from 5.105.3 to 5.105.4 in /docs (#38380)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-06 16:54:50 -08:00
HY Chang
3cb00bf116 feat(database): add Google Cloud Datastore db engine spec (#37677)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-06 16:40:17 -08:00
Michael S. Molina
a6c0d6321f chore(extensions): simplify backend package structure by removing superset_extensions namespace (#38476) 2026-03-06 14:49:49 -03:00
Michael S. Molina
5fb9e17721 refactor(extensions): align editors API naming with commands/views, add description to all contribution types (#38475) 2026-03-06 14:18:49 -03:00
Beto Dealmeida
03ad1789f0 feat(alerts/reports): external URL warning (#35021) 2026-03-06 11:57:03 -05:00
Michael S. Molina
296bd7e56b docs(extensions): fix extension developer documentation and CLI scaffolding (#38472) 2026-03-06 13:10:41 -03:00
Daniel Vaz Gaspar
5c4bf0f6ea fix(deps): bump Python dependencies to fix 7 security vulnerabilities (#38447)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 09:44:13 +00:00
Amin Ghadersohi
db7665c0bc feat(mcp): add user roles to MCP response and permission-aware instructions (#38367) 2026-03-06 08:16:51 +01:00
Amin Ghadersohi
84a53eab31 feat(mcp): add pie, pivot table, and mixed timeseries chart creation support (#38375) 2026-03-06 08:13:47 +01:00
Amin Ghadersohi
3609cd9544 feat(mcp): add compile check to validate chart queries before returning (#38408) 2026-03-06 08:10:58 +01:00
Amin Ghadersohi
7d2efd8c1a fix(mcp): suppress third-party deprecation warnings from client responses (#38401) 2026-03-06 08:02:25 +01:00
Evan Rusackas
0d5ade6dd3 fix(ColorPicker): restore alpha input visibility hidden by geostyler CSS (#38169)
Co-authored-by: Superset Dev <dev@superset.apache.org>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 17:45:11 -08:00
Joe Li
17df85b5ed fix(roles): convert permissions/groups dropdowns to AsyncSelect with server-side search (#38387)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 16:54:16 -08:00
Joe Li
664c465d80 fix(test): use correct @apache-superset/core/theme import in Menu test (#38457)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 15:50:35 -08:00
Jonas Scholz
884db9347d feat(docs): Adding VTG GmbH in INTHEWILD.yaml (#38359)
Co-authored-by: Joe Li <joe@preset.io>
2026-03-05 14:41:17 -08:00
Joe Li
6c359733e1 fix(frontend): preserve absolute and protocol-relative URLs in ensureAppRoot (#38316)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-05 14:06:16 -08:00
Michael S. Molina
357e35dc62 refactor(core): reorganize superset-core packages into feature-based structure (#38448) 2026-03-05 17:41:15 -03:00
Joe Li
5f0efd2be9 test: fix CI OOM crashes in DatasourceControl test and flaky FileHandleer test (#38430)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 12:05:58 -08:00
Amin Ghadersohi
0dbd4c5b90 docs(mcp): add MCP server deployment and authentication guide (#38415) 2026-03-05 17:52:04 +01:00
Enzo Martellucci
f0416eff78 fix(dashboard): fix multiple drag-and-drop and edit mode issues (#37891) 2026-03-05 16:47:11 +01:00
Đỗ Trọng Hải
a513406239 feat!: upgrade project's Node version to v22 (#37223)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-03-05 22:20:18 +07:00
dependabot[bot]
f6f734f0d1 chore(deps): bump google-auth-library from 10.5.0 to 10.6.1 in /superset-frontend (#38436)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 21:25:04 +07:00
dependabot[bot]
a2c23a2a58 chore(deps-dev): bump css-minimizer-webpack-plugin from 7.0.4 to 8.0.0 in /superset-frontend (#38434)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 21:17:41 +07:00
Antonio Rivero
20cc3345d8 chore(playwright): Using warning for timeouts (#38441) 2026-03-05 14:15:10 +01:00
Alexandru Soare
880cab58c3 fix(bug): Error when adding a filter using custom sql (#38246) 2026-03-05 11:39:21 +02:00
dependabot[bot]
4dfb0e66cb chore(deps-dev): bump webpack from 5.105.3 to 5.105.4 in /superset-frontend (#38385)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 09:26:50 +07:00
dependabot[bot]
fdf19db5e6 chore(deps): bump svgo from 3.3.2 to 3.3.3 in /superset-frontend (#38421)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 09:16:28 +07:00
dependabot[bot]
5a2a72cf31 chore(deps): bump svgo from 3.3.2 to 3.3.3 in /docs (#38422)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-05 09:16:01 +07:00
Ville Brofeldt
0d5827ac42 chore(extensions): unified contribution api and automatic prefixing (#38412) 2026-03-04 14:51:22 -08:00
Joe Li
939e4194c6 fix(alerts): fix error toast when editing report with saved tab selection (#38198)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 13:01:26 -08:00
dependabot[bot]
a79dcbbb66 chore(deps): update d3-cloud requirement from ^1.2.8 to ^1.2.9 in /superset-frontend/plugins/plugin-chart-word-cloud (#38381)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 11:30:48 -08:00
dependabot[bot]
88241d3e71 chore(deps-dev): bump oxlint from 1.50.0 to 1.51.0 in /superset-frontend (#38353)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 11:30:34 -08:00
dependabot[bot]
1bfd41df0c chore(deps): bump aquasecurity/trivy-action from 0.34.1 to 0.34.2 (#38352)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 11:30:15 -08:00
dependabot[bot]
8f28a8734a chore(deps): bump flask from 2.3.3 to 3.1.3 (#38168)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 11:28:23 -08:00
dependabot[bot]
dc995328a8 chore(deps): bump cryptography from 44.0.3 to 46.0.5 (#37912)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 11:27:57 -08:00
Vitor Avila
8c9efe5659 feat: support for import/export masked_encrypted_extra (backend) (#38077) 2026-03-04 11:26:28 -08:00
Mehmet Salih Yavuz
63e7ee70bf fix(echarts): adaptive formatting labels (#38017) 2026-03-04 11:26:18 -08:00
Varun Chawla
796c206ee7 fix(charts): apply resample before rolling window in post-processing pipeline (#37987)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:25:42 -08:00
Đỗ Trọng Hải
27d54f8421 fix(build/backend): migrate to deps-free pygeohash with pre-built wheels at runtime (#37524)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-04 11:24:43 -08:00
Joe Li
e2ebc135e4 test(playwright): add dashboard list E2E tests (#38377)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:15:16 -08:00
Joe Li
c25adbc395 test(DashboardList): migrate Cypress E2E tests to RTL (#38368)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:13:13 -08:00
Evan Rusackas
3b656f9cc2 fix(dashboard): restore filterState prop for cross-filter functionality (#38349)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:05:21 -08:00
Đỗ Trọng Hải
3d5694ee0f chore: regular npm audit fix (#38248)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-03-04 10:42:14 -08:00
Đỗ Trọng Hải
aff6e26089 build(deps): replace monolithic googleapis with lightweight @googleapis/sheet sub-package (#38124)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-03-04 10:22:17 -08:00
Michael S. Molina
19f949276c refactor(config): SIGNAL_CACHE_CONFIG → DISTRIBUTED_COORDINATION_CONFIG (#38395) 2026-03-04 09:40:21 -08:00
Michael S. Molina
832fee3ff8 refactor(mcp): move superset_core MCP module from mcp to api/mcp (#38394) 2026-03-04 09:38:17 -08:00
Michael S. Molina
69732d9dca fix(superset-ui-core): achieve 100% coverage for npm run core:cover (#38397) 2026-03-04 13:56:51 -03:00
JUST.in DO IT
35d0aad854 feat(explore): Add Echarts option editor (#37868) 2026-03-04 08:34:34 -08:00
dependabot[bot]
80a29cd6fe chore(deps-dev): bump terser-webpack-plugin from 5.3.16 to 5.3.17 in /superset-frontend (#38386)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 21:29:36 +07:00
Evan Rusackas
51ac758b80 fix(tags): expire tag relationship after deleting all tagged objects (#38163)
Co-authored-by: Claude <noreply@anthropic.com>
2026-03-04 10:37:19 -03:00
Evan Rusackas
7815afb24d fix(charts): improve minor gridline visibility in dark themes (#38371)
Co-authored-by: Kamil Gabryjelski <kamil.gabryjelski@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 10:33:29 -03:00
Evan Rusackas
ef4b1d674b feat(docs): add filterable UI Components table and improve build performance (#38253)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 10:32:25 -03:00
madhushreeag
983b633972 feat(bar-chart): add option to color bars by primary axis when no dimensions are set (#37531)
Co-authored-by: madhushree agarwal <madhushree_agarwal@apple.com>
2026-03-03 16:11:04 -08:00
dependabot[bot]
f10cb14d92 chore(deps-dev): bump @types/node from 25.3.2 to 25.3.3 in /superset-websocket (#38319)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-03 12:49:48 -08:00
dependabot[bot]
1136e86cf7 chore(deps): bump ioredis from 5.9.3 to 5.10.0 in /superset-websocket (#38318)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-03 12:49:37 -08:00
Vitor Avila
fa34609952 feat: Support OAuth2 single-use refresh tokens (#38364) 2026-03-03 16:07:15 -03:00
Gabriel Torres Ruiz
2ab9d37a00 fix(templates): restore css_bundle calls in spa.html for production builds (#38350) 2026-03-03 10:27:39 -08:00
Ville Brofeldt
c35bf344a9 chore(extensions): clean up backend entrypoints and file globs (#38360) 2026-03-03 09:45:35 -08:00
Enzo Martellucci
016417f793 fix(explore): prevent TypeError when chart dimension returns empty string (#38276) 2026-03-03 15:06:02 +01:00
Ville Brofeldt
f2f55591ec chore: remove redundant service-worker.js placeholder (#38348) 2026-03-03 01:43:17 -08:00
Đỗ Trọng Hải
1bd054684e chore(lint): remove unused ESLint plugins after migrating rules to Oxlint (#38110) 2026-03-03 13:33:58 +07:00
Evan Rusackas
0681df3d02 feat(theme): enable generalized ECharts theme overrides for array properties (#37965)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-03-02 19:51:09 -08:00
Đỗ Trọng Hải
6e84d29707 fix(build): disable moby in dev container based on Debian 13 Trixie distro for usability (#37227) 2026-03-03 09:09:05 +07:00
Đỗ Trọng Hải
fc5fda3d1a fix(db-modal): update doc refs for DB connection modal (#38091) 2026-03-03 09:08:46 +07:00
Levis Mbote
3e10ab7dd0 refactor(Filter components): migrate from react-dnd to dnd-kit (#37445) 2026-03-02 16:49:57 -08:00
Michael S. Molina
a74d32ab44 feat(extensions): code-first frontend contributions (#38346) 2026-03-02 13:51:29 -08:00
Amin Ghadersohi
01d5245cd2 fix: silence deprecation warnings causing noisy production logs (#38128)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 10:55:00 -08:00
dependabot[bot]
00a1487705 chore(deps): bump hot-shots from 14.0.0 to 14.1.1 in /superset-websocket (#38320)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 10:51:34 -08:00
dependabot[bot]
adc5a2cbdb chore(deps-dev): bump globals from 17.3.0 to 17.4.0 in /superset-websocket (#38321)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 10:51:17 -08:00
dependabot[bot]
23200e8ce9 chore(deps): bump caniuse-lite from 1.0.30001774 to 1.0.30001775 in /docs (#38322)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 10:51:03 -08:00
dependabot[bot]
d738431e73 chore(deps): bump swagger-ui-react from 5.31.2 to 5.32.0 in /docs (#38324)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 10:50:47 -08:00
dependabot[bot]
00c62cf820 chore(deps-dev): bump yeoman-test from 11.2.0 to 11.3.1 in /superset-frontend (#38326)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 10:50:20 -08:00
dependabot[bot]
1025e3729b chore(deps-dev): bump globals from 17.3.0 to 17.4.0 in /docs (#38325)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 23:13:55 +07:00
dependabot[bot]
b57c864e98 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#38330)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 23:13:32 +07:00
dependabot[bot]
ec33d6a421 chore(deps-dev): bump @types/node from 25.3.1 to 25.3.3 in /superset-frontend (#38331)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 21:46:16 +07:00
dependabot[bot]
e80311a795 chore(deps-dev): bump @swc/core from 1.15.17 to 1.15.18 in /superset-frontend (#38335)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-02 21:44:52 +07:00
Amin Ghadersohi
985c3d12a1 fix(screenshots): downgrade screenshot timeout logs from ERROR to WARNING (#38130)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 10:03:07 +01:00
Mehmet Salih Yavuz
ac2914486f fix(Select): select all buttons to inherit font (#38313) 2026-03-02 10:12:06 +02:00
dependabot[bot]
d31a2f96c9 chore(deps-dev): bump webpack from 5.105.2 to 5.105.3 in /superset-frontend (#38294)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 15:25:33 -08:00
dependabot[bot]
0d9db04df0 chore(deps-dev): bump @swc/core from 1.15.13 to 1.15.17 in /superset-frontend (#38295)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 12:36:55 +07:00
Kamil Gabryjelski
1d141b2948 fix: Warning toasts when user drops folder item outside of dnd context (#38304) 2026-02-27 21:23:19 -08:00
Mehmet Salih Yavuz
7f280f5de9 fix(Dataset Folders): improve search-collapse (#38188) 2026-02-27 21:21:29 -08:00
dependabot[bot]
d039172013 chore(deps-dev): bump webpack from 5.105.2 to 5.105.3 in /docs (#38271)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-28 12:16:54 +07:00
Vitor Avila
6fe69fc81c chore: Support specifying app_root via superset_config.py (#38284) 2026-02-28 01:35:08 -03:00
dependabot[bot]
3794591d28 chore(deps): bump caniuse-lite from 1.0.30001770 to 1.0.30001774 in /docs (#38180)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:38:04 -08:00
dependabot[bot]
a849802a2b chore(deps): bump minimatch in /superset-websocket (#38282)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:37:47 -08:00
dependabot[bot]
a162b02123 chore(deps-dev): bump @types/node from 25.3.1 to 25.3.2 in /superset-websocket (#38288)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:37:34 -08:00
dependabot[bot]
1f41777800 chore(deps): bump actions/download-artifact from 7 to 8 (#38289)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:37:21 -08:00
dependabot[bot]
848cce7b2e chore(deps): bump actions/upload-artifact from 6 to 7 (#38290)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:37:08 -08:00
dependabot[bot]
b1b10ec329 chore(deps): bump @swc/core from 1.15.13 to 1.15.17 in /docs (#38292)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:36:51 -08:00
dependabot[bot]
287a94f46c chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#38296)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-27 15:36:38 -08:00
Andy
15d7538435 fix(sqllab): pass queryLimit on data preview queries and fix Decimal TypeError in results handler (#37614)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-27 15:35:44 -08:00
Shaitan
a410b76f99 docs: add Apache Superset CVEs for February 2026 release (#38278) 2026-02-27 14:46:44 -08:00
Kamil Gabryjelski
63f1d9eb98 feat(folders-editor): drag entire folder block as single unit (#38122)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 20:02:21 +01:00
Kamil Gabryjelski
5e890a8cf7 fix(folders): remove stale column/metric refs from folders on delete (#38302)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 17:25:06 +01:00
amaannawab923
e5cbc98482 fix(ag-grid): render boolean columns as checkboxes instead of blank cells (#38279) 2026-02-27 17:52:51 +05:30
Alexandru Soare
761cee2d85 fix(componentParent): Newly created tabs don't show up in Scoping tab (#37807) 2026-02-27 11:34:32 +02:00
Alexandru Soare
7743183401 fix(bugs): fixing bugs for world map chart (#38030) 2026-02-27 11:33:35 +02:00
Kamil Gabryjelski
11dfda11d3 fix(folders): expand collapsed folders on Select All and add selection counter (#38270)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 07:28:07 +01:00
Kamil Gabryjelski
0827ec3811 fix(dataset-modal): include nested folders when dragging all their children (#38275)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-27 07:27:37 +01:00
Amin Ghadersohi
7f061a3764 fix(bigquery): pass dialect instead of engine to select_star in get_extra_table_metadata (#38281) 2026-02-27 02:11:40 +01:00
Joe Spadola
bb6ee9e722 fix(clickhouse): remove _mutate_label workaround and bump clickhouse-connect to >=0.13.0 (#38280) 2026-02-26 16:12:54 -08:00
Evan Rusackas
6589ee48f9 docs: bifurcate documentation into user and admin sections (#38196)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-26 13:29:08 -08:00
Kamil Gabryjelski
8a053bbe07 fix(dataset-modal): fix drag overlay shift caused by modal transform containing block (#38274)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 20:48:48 +01:00
Enzo Martellucci
bbafae5f62 fix(save-chart): fix info icon alignment in save chart modal (#37708)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2026-02-26 18:11:07 +01:00
Enzo Martellucci
5a134170a0 fix(chart): prevent x-axis date labels from disappearing when rotated (#37755) 2026-02-26 18:10:44 +01:00
Enzo Martellucci
c1c012fb52 fix(chart): make chart error banners non-dismissible (#38014) 2026-02-26 17:01:02 +01:00
jaymasiwal
f5d489da29 fix(actionlog): restore full name display in Action Logs user column (#37985) 2026-02-26 16:36:24 +01:00
dependabot[bot]
ca48663c59 chore(deps): bump dawidd6/action-download-artifact from 15 to 16 (#38261)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 22:17:19 +07:00
Kamil Gabryjelski
660357c76b feat: Persist default folders location when repositioned in folders editor (#38105)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:58:25 +01:00
dependabot[bot]
8c58b998b1 chore(deps): pin currencyformatter.js to v1 in /superset-frontend (#38242)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-26 21:38:42 +07:00
dependabot[bot]
0e7a9febdf chore(deps): bump minimatch from 3.1.2 to 3.1.3 in /superset-frontend/cypress-base (#38228)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 21:36:22 +07:00
dependabot[bot]
e42202e5ed chore(deps-dev): bump @types/node from 25.2.3 to 25.3.1 in /superset-websocket (#38260)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 21:35:19 +07:00
dependabot[bot]
dcbe77818a chore(deps-dev): bump @types/node from 25.3.0 to 25.3.1 in /superset-frontend (#38263)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 21:26:42 +07:00
dependabot[bot]
dce0e5f4e6 chore(deps): bump mapbox-gl from 3.18.1 to 3.19.0 in /superset-frontend (#38264)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-26 21:24:56 +07:00
Kamil Gabryjelski
7f72c747f5 fix(dataset-modal): prevent shift-select from selecting search-hidden items (#38255)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 15:07:02 +01:00
Kamil Gabryjelski
2ecfb3406c fix(dataset-modal): show warning toast when dropping items outside folders (#38257)
Co-authored-by: Claude Opus 4 <noreply@anthropic.com>
2026-02-26 15:06:41 +01:00
Amin Ghadersohi
ae99b19422 feat(mcp): add detailed JWT error messages and default auth factory fallback (#37972)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 14:21:40 +01:00
Đỗ Trọng Hải
2b6c745444 fix(ci): use OIDC auth token for successful Codecov upload (#38218) 2026-02-26 10:34:24 +07:00
Enzo Martellucci
26053a8b5d fix(alert-modal): show the add filter button on firefox (#38093) 2026-02-25 23:42:05 +01:00
Amin Ghadersohi
abf0b7cf4b fix(mcp): use broad Exception in outermost tool-level handlers (#38254) 2026-02-25 22:08:56 +01:00
Amin Ghadersohi
eef4d95c22 fix(mcp): add dataset validation for chart tools (#37185)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 18:54:47 +01:00
Amin Ghadersohi
cc1128a404 feat(mcp): add response size guard to prevent oversized responses (#37200) 2026-02-25 09:43:14 -08:00
Amin Ghadersohi
c54b21ef98 fix(mcp): add eager loading to get_info tools to prevent N+1 query timeouts (#38129)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 17:28:58 +01:00
dependabot[bot]
438a927420 chore(deps-dev): bump oxlint from 1.49.0 to 1.50.0 in /superset-frontend (#38240)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 23:10:37 +07:00
dependabot[bot]
37a4637018 chore(deps-dev): bump typescript-eslint from 8.56.0 to 8.56.1 in /superset-websocket (#38203)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 23:09:41 +07:00
dependabot[bot]
79b2647481 chore(deps): bump @swc/core from 1.15.11 to 1.15.13 in /docs (#38207)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 23:00:21 +07:00
dependabot[bot]
1b605c4dda chore(deps): bump fs-extra from 11.3.2 to 11.3.3 in /superset-frontend (#38234)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 22:59:44 +07:00
dependabot[bot]
b543358d2f chore(deps-dev): bump @swc/core from 1.15.11 to 1.15.13 in /superset-frontend (#38237)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 22:59:14 +07:00
Amin Ghadersohi
a1312a86e8 fix(mcp): normalize column names to fix time series filter prompt issue (#37187)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 15:27:53 +01:00
Amin Ghadersohi
3084907931 feat(mcp): support unsaved state in Explore and Dashboard tools (#37183)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-25 15:25:23 +01:00
Amin Ghadersohi
1cd35bb102 feat(mcp): dynamic feature availability via menus and feature flags (#37964) 2026-02-25 12:01:44 +01:00
Joe Li
5eb35a4795 fix(reports): validate database field on PUT report schedule (#38084)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 16:58:19 -08:00
dependabot[bot]
01c1b2eb8f chore(deps-dev): bump @types/lodash from 4.17.23 to 4.17.24 in /superset-frontend (#38224)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 07:52:22 +07:00
dependabot[bot]
9e4a88dfa2 chore(deps): bump antd from 6.3.0 to 6.3.1 in /docs (#38221)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 07:51:39 +07:00
dependabot[bot]
4809903bb8 chore(deps): bump markdown-to-jsx from 9.7.4 to 9.7.6 in /superset-frontend (#38225)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-25 07:51:11 +07:00
Đỗ Trọng Hải
76a2559b2b fix(ci): revert "chore(deps): bump JustinBeckwith/linkinator-action from 2.3 to 2.4" (#38164) 2026-02-24 13:22:29 -08:00
Mehmet Salih Yavuz
e4a7cd30c3 fix(GAQ): don't use async queries when cache timeout is -1 (#38089) 2026-02-24 23:21:37 +03:00
dependabot[bot]
aa475734ef chore(deps-dev): bump eslint from 9.39.2 to 10.0.2 in /superset-websocket (#38204)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-24 10:30:17 -08:00
dependabot[bot]
97b8585fe5 chore(deps-dev): bump typescript-eslint from 8.56.0 to 8.56.1 in /docs (#38209)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-24 10:30:05 -08:00
Đỗ Trọng Hải
0d66accc37 chore(build): prevent opening Dependabot PRs for @rjsf/* deps due to React 18 constraint (#37976)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-24 10:28:05 -08:00
Ville Brofeldt
35c135852e feat(extensions): add mandatory publisher field to extension metadata (#38200) 2026-02-24 09:42:17 -08:00
Evan Rusackas
7b04d251d6 fix(build): restore automatic .d.ts generation in dev mode (#38202)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:27:25 -08:00
Michael S. Molina
974bee14c3 fix(extensions): make LOCAL_EXTENSIONS loading resilient to individual failures (#38217) 2026-02-24 13:17:27 -03:00
Richard Fogaca Nienkotter
fca8a49561 feat: auto refresh dashboard (#37459)
Co-authored-by: Richard <richard@ip-192-168-1-32.sa-east-1.compute.internal>
Co-authored-by: richard <richard@richards-MacBook-Pro-2.local>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-02-24 11:37:28 -03:00
Vitor Avila
f60432e34c fix: Allow non-owners to fave/unfave charts (#38095) 2026-02-24 11:28:32 -03:00
dependabot[bot]
b8459c15b8 chore(deps-dev): bump @typescript-eslint/parser from 8.56.0 to 8.56.1 in /docs (#38211)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-24 20:06:14 +07:00
Evan Rusackas
8eb3046888 fix(docs): guard window reference in logging.ts for SSR compatibility (#38201) 2026-02-23 18:41:49 -08:00
Evan Rusackas
615f13419c fix(jest): ignore storybook-static and package __mocks__ directories (#37946)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 16:18:14 -08:00
Evan Rusackas
8a74424545 fix(types): add explicit types for extendedDayjs plugin methods (#37923) 2026-02-24 06:58:46 +07:00
madhushreeag
8f070169a5 perf(datasource): add pagination to datasource editor tables to prevent browser freeze (#37555)
Co-authored-by: madhushree agarwal <madhushree_agarwal@apple.com>
2026-02-23 15:19:33 -08:00
Richard Fogaca Nienkotter
e06427d1ef feat(embedded): add feature flag to disable logout button in embedded contexts (#37537)
Co-authored-by: richard <richard@richards-MacBook-Pro-2.local>
2026-02-23 17:56:02 -03:00
Evan Rusackas
c4eb7de6de fix(excel): remove unwanted index column from Excel exports (#38176)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 08:28:40 -08:00
Vitor Avila
228b598409 feat: Labels for encrypted fields (#38075) 2026-02-23 13:23:33 -03:00
Ville Brofeldt
40f609fdce fix(extensions): enforce correct naming conventions (#38167) 2026-02-23 08:21:35 -08:00
Amin Ghadersohi
6e94a6c21a fix(mcp): fix dashboard chart placement with proper COLUMN layout and tab support (#37970)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 16:41:10 +01:00
Evan Rusackas
50cc1b93d2 fix(security): fix Guest Token API 422 error by disabling JWT sub claim verification (#38177)
Co-authored-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 21:58:01 +07:00
Evan Rusackas
131a97b657 fix(handlebars): add missing currencyformatter.js dependency (#38173)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-23 21:56:50 +07:00
dependabot[bot]
6f3a200c19 chore(deps-dev): bump @types/lodash from 4.17.23 to 4.17.24 in /superset-websocket (#38179)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 21:54:18 +07:00
Michael S. Molina
cbb80f0462 refactor(extensions): simplify registerEditorProvider API (#38127) 2026-02-23 09:04:31 -03:00
Amin Ghadersohi
2a3567d2f1 fix(mcp): Remove unsupported thumbnail/preview URLs and internal fields from MCP schemas (#38109) 2026-02-23 12:44:12 +01:00
Evan Rusackas
3f64ad3da5 fix(i18n): wrap untranslated frontend strings and add i18n lint rule (#37776)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-22 21:27:37 -08:00
Evan Rusackas
672a380587 chore(frontend): enable additional oxlint rules for better code hygiene (#38145) 2026-02-23 10:36:24 +07:00
Rohan Santhosh
a87a006aae ci: declare explicit permissions in maintenance workflows (#38159)
Co-authored-by: rohan436 <rohan.santhoshkumar@googlemail.com>
2026-02-22 12:05:58 +07:00
dependabot[bot]
159fb5d6f4 chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 in /superset-frontend/cypress-base (#38131)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-21 17:34:27 -08:00
dependabot[bot]
6424194c87 chore(deps): bump underscore from 1.13.7 to 1.13.8 in /superset-frontend (#38142)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-21 13:25:26 +07:00
dependabot[bot]
5bee32ea93 chore(deps): bump aquasecurity/trivy-action from 0.34.0 to 0.34.1 (#38138)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-21 11:45:40 +07:00
dependabot[bot]
82fce8d7de chore(deps-dev): bump @types/node from 25.2.3 to 25.3.0 in /superset-frontend (#38143)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-21 11:45:06 +07:00
dependabot[bot]
5e6524954c chore(deps): pin react-icons to 5.4.0 in /superset-frontend (#38144)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-21 11:44:46 +07:00
dependabot[bot]
987b6a6f04 chore(deps): bump swagger-ui-react from 5.31.1 to 5.31.2 in /docs (#38140)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-21 07:43:21 +07:00
Đỗ Trọng Hải
3d6644864d build(deps): migrate to lighter and modern react-icons (#38125)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-20 16:19:01 -08:00
dependabot[bot]
577b965a60 chore(deps-dev): bump ajv from 6.12.6 to 6.14.0 in /superset-frontend (#38132)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-21 06:51:28 +07:00
Enzo Martellucci
b565128fe7 fix(charts): improve error display for failed charts in dashboards (#37939) 2026-02-20 15:14:48 -08:00
madhushreeag
b290f71245 fix(explore): prevent theme object from being passed to ReactAce in TextAreaControl (#38117)
Co-authored-by: madhushree agarwal <madhushree_agarwal@apple.com>
2026-02-20 14:16:07 -08:00
dependabot[bot]
cff854b06e chore(deps-dev): bump oxlint from 1.48.0 to 1.49.0 in /superset-frontend (#38115)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-20 14:13:37 -08:00
Manoj S
44d6b6a513 fix(table): preserve line breaks in cell content modal (#37036) 2026-02-20 14:12:14 -08:00
Ujjwaljain16
2d44f52ad1 fix(encryption): resolve SECRET_KEY lazily to fix silent re-encrypt-secrets failures (#37982) 2026-02-20 14:10:09 -08:00
wuqicyber
6f34ba7d4a fix(table-chart): support orderby adhoc columns with server-side pagination (#37521) 2026-02-21 00:29:34 +03:00
Damian Pendrak
1a77e17179 fix(chart-customizations): support migration of dynamic group by (#37176) 2026-02-20 13:11:07 -08:00
Gabriel Torres Ruiz
6fdaa8e9b3 fix(crud): reorder table actions + improve react memoization + improve hooks (#37897) 2026-02-20 08:58:28 -08:00
Kamil Gabryjelski
e30a9caba5 fix(dataset-modal): fix folders tab scrollbar by establishing proper flex chain (#38123)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:54:23 +01:00
Kamil Gabryjelski
7937246575 fix(button): use colorLink token for link-style buttons (#38121)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 16:54:05 +01:00
Amin Ghadersohi
9f8b212ccc feat(mcp): add LIKE, ILIKE, IN, NOT IN filter operators to MCP chart tools (#38071) 2026-02-20 11:56:40 +01:00
Amin Ghadersohi
1ecff6fe5c fix(thumbnails): stabilize digest by sorting datasources and charts (#38079)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 09:51:35 +01:00
dependabot[bot]
69653dfd08 chore(deps-dev): bump baseline-browser-mapping from 2.9.19 to 2.10.0 in /superset-frontend (#38116)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 15:35:18 +07:00
dependabot[bot]
58d8aa01f8 chore(deps): bump react-intersection-observer from 10.0.2 to 10.0.3 in /superset-frontend (#38114)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 15:34:15 +07:00
dependabot[bot]
88f0e322e3 chore(deps): bump baseline-browser-mapping from 2.9.19 to 2.10.0 in /docs (#38113)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-20 15:33:56 +07:00
Vanessa Giannoni
f4acce5727 fix(table): preserve time grain aggregation when temporal column casing changes (#37893) 2026-02-19 16:46:39 -08:00
Richard Fogaca Nienkotter
5278deaf63 fix(metrics): normalize legacy currency strings (#37455) 2026-02-19 21:25:44 -03:00
Mehmet Salih Yavuz
3868821dc8 fix(webpack): skip building service worker in dev (#38106) 2026-02-20 00:26:16 +03:00
Joe Li
6a61baf5be fix(alerts): show friendly filter names in report edit modal (#38054)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 10:33:33 -08:00
dependabot[bot]
5cc8ae5427 chore(deps): bump ol from 7.5.2 to 10.8.0 in /superset-frontend (#37961)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-19 10:32:32 -08:00
Michael S. Molina
1f76944c2b fix: Add editors to ContributionConfig and additional properties to EditorKeyword (#38098) 2026-02-19 15:00:21 -03:00
Kamil Gabryjelski
f049d3e34a fix: Search in folders editor with verbose names (#38101) 2026-02-19 18:45:22 +01:00
Kamil Gabryjelski
86c8fa5cd7 fix: Badge count in folders editor (#38100) 2026-02-19 18:45:04 +01:00
Kamil Gabryjelski
e12140beb6 fix: Warning toast copy in folders editor (#38099) 2026-02-19 18:22:22 +01:00
Kamil Gabryjelski
b7a3224f04 feat: Larger folder drag area in folders editor (#38102) 2026-02-19 18:22:04 +01:00
Kamil Gabryjelski
f5a5a804e2 perf(dashboard): skip thumbnail_url computing on single dashboard endpoint (#38015)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 18:15:20 +01:00
Đỗ Trọng Hải
0b77ace110 chore: fix lint issue with no-unsafe-optional-chaining rule (#38103)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-19 23:54:37 +07:00
Levis Mbote
c175346808 fix(table-charts): Prevent time grain from altering Raw Records in Tables + Interactive Tables (#37561) 2026-02-19 10:24:09 +01:00
Evan Rusackas
6b80135aa2 chore(lint): enforce more strict eslint/oxlint rules (batch 2) (#37884)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-18 19:27:27 -08:00
RealGreenDragon
de079a7b19 feat(deps)!: bump postgresql from 16 to 17 (#37782) 2026-02-18 17:12:48 -08:00
dependabot[bot]
f54bbdc06b chore(deps): bump dawidd6/action-download-artifact from 14 to 15 (#38060)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-18 17:11:41 -08:00
SBIN2010
33441ccf3d feat: add formatting column and formatting object to conditional formating table (#35897) 2026-02-19 02:07:15 +03:00
Vitor Avila
9ec56f5f02 fix: Include app_root in next param (#37942) 2026-02-18 19:52:06 -03:00
dependabot[bot]
11a36ff488 chore(deps-dev): bump the storybook group across 1 directory with 11 updates (#38068) 2026-02-18 23:48:16 +07:00
Đỗ Trọng Hải
af3e088233 build(deps): resolve GHSA-36jr-mh4h-2g58 by upgrading d3-color to 3.1.0 (#37981)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-18 21:12:39 +07:00
dependabot[bot]
29f499528f chore(deps-dev): bump eslint-plugin-testing-library from 7.15.4 to 7.16.0 in /superset-frontend (#38066)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-18 21:01:04 +07:00
dependabot[bot]
21481eef4f chore(deps): bump the storybook group in /docs with 9 updates (#38067)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-18 21:00:01 +07:00
dependabot[bot]
0d2c8fd373 chore(deps): bump @storybook/core from 8.6.15 to 8.6.16 in /docs (#38046)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-18 20:22:21 +07:00
Đỗ Trọng Hải
7b56fc1714 fix(docs): correct DB module filename for editing + update DB metadata file (#37990)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-18 20:08:50 +07:00
Đỗ Trọng Hải
9131739f98 fix(home): null check for possibly undefined filtered other table data due to insufficient permission (#37983) 2026-02-18 17:33:51 +07:00
Đỗ Trọng Hải
a30492f55e fix(plugin/cal-heatmap): properly color tooltip's text for both dark/light theme (#38010) 2026-02-18 17:25:41 +07:00
dependabot[bot]
090eab099c chore(deps): bump storybook from 8.6.15 to 8.6.16 in /docs (#38043) 2026-02-18 16:23:26 +07:00
dependabot[bot]
cd4cd53726 chore(deps-dev): bump css-loader from 7.1.3 to 7.1.4 in /superset-frontend (#38050) 2026-02-18 16:21:39 +07:00
dependabot[bot]
65c460c9d2 chore(deps-dev): bump @swc/plugin-emotion from 14.5.0 to 14.6.0 in /superset-frontend (#38053) 2026-02-18 16:20:49 +07:00
dependabot[bot]
868e719c60 chore(deps-dev): bump oxlint from 1.47.0 to 1.48.0 in /superset-frontend (#38055) 2026-02-18 16:20:16 +07:00
dependabot[bot]
5efc7ea5a5 chore(deps-dev): bump typescript-eslint from 8.55.0 to 8.56.0 in /docs (#38024)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-18 12:10:50 +07:00
dependabot[bot]
b0f9a73f63 chore(deps-dev): bump typescript-eslint from 8.54.0 to 8.56.0 in /superset-websocket (#38020)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-18 11:49:11 +07:00
dependabot[bot]
746e266e90 chore(deps): bump swagger-ui-react from 5.31.0 to 5.31.1 in /docs (#38023)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-18 11:37:51 +07:00
Damian Pendrak
5a777c0f45 feat(matrixify): add single metric constraint (#37169) 2026-02-17 09:12:24 -08:00
Amin Ghadersohi
aec1f6edce fix(mcp): use last data-bearing statement in execute_sql response (#37968)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 13:13:55 +01:00
Amin Ghadersohi
f7218e7a19 feat(mcp): expose current user identity in get_instance_info and add created_by_fk filter (#37967) 2026-02-17 13:11:34 +01:00
Amin Ghadersohi
5cd829f13c fix(mcp): handle more chart types in get_chart_data fallback query construction (#37969)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 13:02:42 +01:00
dependabot[bot]
9566e8a9c6 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.8.5 to 0.9.1 in /superset-frontend (#38000)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-17 12:03:13 +07:00
dependabot[bot]
604d49f557 chore(deps): bump datamaps from 0.5.9 to 0.5.10 in /superset-frontend (#37913)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 14:51:03 -08:00
SBIN2010
84f1ee4409 feat: added conditional formatting enhancements string to pivot table (#35863) 2026-02-17 01:08:41 +03:00
Kamil Gabryjelski
3e3c9686de perf(dashboard): Batch RLS filter lookups for dashboard digest computation (#37941) 2026-02-16 21:35:55 +01:00
Mehmet Salih Yavuz
7b21979fa3 fix(charts): Force refresh uses async mode when GAQ is enabled (#37845) 2026-02-16 21:45:10 +03:00
Đỗ Trọng Hải
8853ff19d4 chore(websocket): migrate external uuid usage with Node's native UUID generator (#37101)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-16 18:05:10 +07:00
Damian Pendrak
22ac5e02b6 fix(deckgl): remove dataset field from Deck.gl Layer Visibility Display controls (#37611) 2026-02-16 11:58:23 +01:00
dependabot[bot]
2c9f0c1c2a chore(deps-dev): bump wait-on from 9.0.3 to 9.0.4 in /superset-frontend (#37999)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 17:18:23 +07:00
dependabot[bot]
d47a7105df chore(deps): bump caniuse-lite from 1.0.30001769 to 1.0.30001770 in /docs (#37994)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 15:42:53 +07:00
dependabot[bot]
c873225308 chore(deps-dev): bump jsdom from 28.0.0 to 28.1.0 in /superset-frontend (#37997)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 15:42:28 +07:00
dependabot[bot]
982e2c1ef7 chore(deps-dev): bump webpack from 5.105.0 to 5.105.2 in /superset-frontend (#38003)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 15:36:17 +07:00
dependabot[bot]
eee3af5775 chore(deps-dev): bump oxlint from 1.46.0 to 1.47.0 in /superset-frontend (#38005)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 15:35:29 +07:00
dependabot[bot]
232b34d944 chore(deps-dev): bump webpack-sources from 3.3.3 to 3.3.4 in /superset-frontend (#38004)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 15:35:03 +07:00
dependabot[bot]
d748ed19ce chore(deps): bump hot-shots from 13.2.0 to 14.0.0 in /superset-websocket (#37993) 2026-02-16 15:16:31 +07:00
dependabot[bot]
5300f65a74 chore(deps): bump qs from 6.14.1 to 6.14.2 in /superset-frontend (#37936)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-16 13:39:06 +07:00
Türker Ziya Ercin
440602ef34 fix(utils): datetime_to_epoch function is fixed to timezone aware epoch (#37979) 2026-02-15 22:36:18 +07:00
dependabot[bot]
cbf153845e chore(deps): bump qs from 6.14.1 to 6.14.2 in /superset-websocket/utils/client-ws-app (#37933)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-14 22:18:14 +07:00
dependabot[bot]
097f474f24 chore(deps): bump pillow from 11.3.0 to 12.1.1 (#37935)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 16:00:47 -08:00
Joe Li
73adff55ee chore(deps): Relax sqlalchemy-utils lower bound for pydoris compatibility (#37949) 2026-02-13 14:55:54 -08:00
dependabot[bot]
a65f73a532 chore(deps): bump qs from 6.14.1 to 6.14.2 in /docs (#37937)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-14 01:01:42 +07:00
dependabot[bot]
475615e118 chore(deps): bump ioredis from 5.9.2 to 5.9.3 in /superset-websocket (#37951)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 23:40:50 +07:00
dependabot[bot]
79f51e2ae7 chore(deps-dev): bump webpack from 5.105.1 to 5.105.2 in /docs (#37953)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 23:39:56 +07:00
dependabot[bot]
75d6a95ac3 chore(deps): bump aquasecurity/trivy-action from 0.33.1 to 0.34.0 (#37958)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 23:39:30 +07:00
dependabot[bot]
ffd7f10320 chore(deps): bump markdown-to-jsx from 9.7.3 to 9.7.4 in /superset-frontend (#37959)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-13 23:09:31 +07:00
Michael S. Molina
e3e2bece6b feat(owners): display email in owner selectors (#37906) 2026-02-13 09:01:05 -03:00
Jean Massucatto
0c0d915391 fix(echarts-timeseries-combined-labels): combine annotation labels for events at same timestamp (#37164) 2026-02-13 12:39:28 +03:00
Jamile Celento
080f629ea2 fix(echarts): formula annotations not rendering with dataset-level columns label (#37522) 2026-02-13 12:37:19 +03:00
Joe Li
142b2cc425 test(e2e): add Playwright E2E tests for Chart List page (#37866)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 14:16:11 -08:00
Joe Li
6328e51620 test(examples): add tests for UUID threading and security bypass (#37557)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-12 14:12:12 -08:00
Joe Li
0d5ddb3674 feat(themes): add enhanced validation and error handling with fallback mechanisms (#37378)
Co-authored-by: Rafael Benitez <rebenitez1802@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-12 14:06:58 -08:00
Pat Buxton
58d245c6b0 chore(deps): Update sqlachemy-utils to 0.42.0 (#36240) 2026-02-12 12:39:06 -08:00
Jean Massucatto
dbf5e1f131 feat(theme): use IBM Plex Mono for code and numerical displays (#37366)
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 09:32:41 -08:00
Jonathan Alberth Quispe Fuentes
88ce1425e2 fix(roles): optimize user fetching and resolve N+1 query issue (#37235) 2026-02-12 09:32:19 -08:00
Amin Ghadersohi
4dfece9ee5 feat(mcp): add event_logger instrumentation to MCP tools (#37859) 2026-02-12 16:50:20 +01:00
Amin Ghadersohi
3f64c25712 fix(mcp): Add database_name as valid filter column for list_datasets (#37865)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:47:46 +01:00
dependabot[bot]
afacca350f chore(deps-dev): bump oxlint from 1.42.0 to 1.46.0 in /superset-frontend (#37917)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-12 21:45:26 +07:00
dependabot[bot]
30ccbb2e05 chore(deps): update @types/geojson requirement from ^7946.0.10 to ^7946.0.16 in /superset-frontend/plugins/plugin-chart-cartodiagram (#37908)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-12 20:59:28 +07:00
Michael S. Molina
19ec7b48a0 fix: Conditional formatting painting empty cells (#37894) 2026-02-12 10:22:00 -03:00
Vanessa Giannoni
77148277b9 feat(charts): improve negative stacked bar label positioning and accessibility (#37405) 2026-02-11 17:46:10 -08:00
Evan Rusackas
981b370fe9 chore(storybook): consolidate storybook and enhance plugin stories (#37771)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 16:06:23 -08:00
Enzo Martellucci
b012b63e5b fix(native-filters): align refresh icon with default value field (#37802) 2026-02-11 21:26:26 +01:00
Kamil Gabryjelski
b0be47a4ac fix: Unreachable drop zones within tabs in dashbboard editor (#37904) 2026-02-11 21:08:19 +01:00
Ville Brofeldt
00d02cb2ea perf(gtf): improve task base filter (#37900) 2026-02-11 10:40:07 -08:00
Kamil Gabryjelski
26a2e12779 perf: fix N+1 query in Slice.datasource property (#37899) 2026-02-11 18:57:28 +01:00
Luis Sánchez
5f0001affc feat(timeseries): remove stream style for bar charts (#37532) 2026-02-11 09:25:03 -08:00
Ville Brofeldt
255a0ada81 fix(gtf): add missing user_id to task commands (#37867) 2026-02-11 09:04:27 -08:00
Evan Rusackas
9089f30045 chore(lint): upgrade array creation, effect, and TypeScript rules (#37885)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 08:45:21 -08:00
Kamil Gabryjelski
98ca599eef perf: fix N+1 query in chart list API when thumbnail_url is requested (#37895) 2026-02-11 17:19:48 +01:00
Evan Rusackas
d640fe42c9 chore: remove Applitools visual testing integration (#37873)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 08:07:19 -08:00
Evan Rusackas
534fa48f1f chore(lint): enforce stricter eslint/oxlint rules (#37883)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 08:07:02 -08:00
Evan Rusackas
c28729f944 chore(lint): add jest/expect-expect rule for test assertions (#37887)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-11 08:06:34 -08:00
Luis Sánchez
88a14f2ba0 fix(FiltersBadge): world map wont show filter icon after refresh page (#37260) 2026-02-11 16:33:32 +03:00
Ville Brofeldt
74e1607010 fix(extensions): broken test (#37871) 2026-02-11 08:33:45 -03:00
Mehmet Salih Yavuz
69c679be20 fix(explore): Don't show unsaved changes modal on new charts (#37714) 2026-02-11 13:05:42 +03:00
Evan Rusackas
9a79dbf445 fix(docs): make page size selector work in database table (#37863)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-10 22:15:55 -08:00
dependabot[bot]
7e5ca83220 chore(deps-dev): bump @types/node from 25.2.2 to 25.2.3 in /superset-frontend (#37851)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 14:24:55 -08:00
dependabot[bot]
7d4a7f113c chore(deps-dev): bump webpack from 5.105.0 to 5.105.1 in /docs (#37849)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 14:24:13 -08:00
dependabot[bot]
4eb8fc814a chore(deps-dev): bump @types/node from 25.2.2 to 25.2.3 in /superset-websocket (#37846)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 14:23:11 -08:00
Tadas Barzdžius
39ac96817a fix(helm): Add default initContainer resources (#37637) 2026-02-10 11:51:37 -08:00
Levis Mbote
1388a62823 fix(filters): fix filter / customization name not updating in sidebar in real time (#37358) 2026-02-10 20:41:47 +01:00
Michael S. Molina
6a6b9b5386 chore: Bump core packages (0.0.1rc11, 0.0.1rc4) (#37860) 2026-02-10 16:37:07 -03:00
Michael S. Molina
b98b34a60f refactor: Make extensions contribution schema consistent (#37856) 2026-02-10 15:55:39 -03:00
Kamil Gabryjelski
7ec5f1d7ec fix(native-filters): Filters with select first value not restored correctly from url (#37855) 2026-02-10 18:54:42 +01:00
Đỗ Trọng Hải
76aa91f5ea fix(deps): pin react-error-boundary to 6.0.0 for React 17 peer dep constraint (#37706)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-10 23:22:14 +07:00
Michael S. Molina
c41942a38a chore(deps): Upgrade sqlglot from 27.15.2 to 28.10.0 (#37841) 2026-02-10 13:13:11 -03:00
Alexandru Soare
ae8d671fea fix(sql): fix sql suggestions (#37699) 2026-02-10 17:30:17 +02:00
Enzo Martellucci
c59d0a73d4 fix: Prevent table rows from overlapping pagination in table view (#37174)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2026-02-10 16:01:39 +01:00
Ville Brofeldt
0f1278fa61 fix(gtf): set dedup_key on atomic sql (#37820) 2026-02-10 06:56:14 -08:00
dependabot[bot]
948b1d613b chore(deps-dev): bump typescript-eslint from 8.54.0 to 8.55.0 in /docs (#37825)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 21:52:30 +07:00
dependabot[bot]
3af795af36 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.54.0 to 8.55.0 in /superset-websocket (#37822)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 21:36:12 +07:00
dependabot[bot]
1cba53a043 chore(deps-dev): bump @typescript-eslint/parser from 8.54.0 to 8.55.0 in /superset-websocket (#37823)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 01:09:19 -08:00
dependabot[bot]
8c6bc3eaea chore(deps): bump antd from 6.2.3 to 6.3.0 in /docs (#37824)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 01:08:58 -08:00
dependabot[bot]
4d8ff84587 chore(deps-dev): bump @playwright/test from 1.58.1 to 1.58.2 in /superset-frontend (#37826)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 01:07:55 -08:00
dependabot[bot]
f370da5a87 chore(deps-dev): bump @typescript-eslint/parser from 8.54.0 to 8.55.0 in /docs (#37827)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 01:07:36 -08:00
dependabot[bot]
2df60f9caf chore(deps): bump immer from 11.1.3 to 11.1.4 in /superset-frontend (#37830)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 01:07:08 -08:00
dependabot[bot]
d078f18ff8 chore(deps-dev): bump @types/node from 25.2.1 to 25.2.2 in /superset-websocket (#37796)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 01:06:17 -08:00
dependabot[bot]
6ca028dee9 chore(deps): bump axios from 1.12.2 to 1.13.5 in /docs (#37814)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-10 01:05:54 -08:00
Tu Shaokun
76351ff12c fix(i18n): ensure language pack loads before React renders (#36893) 2026-02-10 00:29:04 -08:00
Joe Li
f6f96ecc49 test(chart-list): migrate Chart List tests from Cypress to RTL (#37813)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 16:25:49 -08:00
Ville Brofeldt
59dd2fa385 feat: add global task framework (#36368) 2026-02-09 10:45:56 -08:00
Michael S. Molina
6984e93171 fix: SQL Lab improvements and bug fixes (#37760) 2026-02-09 14:29:08 -03:00
Kamil Gabryjelski
f25d95be41 fix: Vertical lines in the middle of Treemap categories (#37808) 2026-02-09 17:44:59 +01:00
Đỗ Trọng Hải
5125a67002 build(dev-deps): remove npm from @apache-superset/core (#37774)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-09 13:00:40 -03:00
dependabot[bot]
059b57d784 chore(deps-dev): bump @types/node from 25.2.1 to 25.2.2 in /superset-frontend (#37801)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 22:47:12 +07:00
Đỗ Trọng Hải
a1d65c7529 feat(deps): significant npm audit fix to trim off inadvertently runtime dep from upstream libraries (#37220)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-09 22:13:57 +07:00
Amin Ghadersohi
15b3c96f8e fix(security): Add table blocklist and fix MCP SQL validation bypass (#37411) 2026-02-09 14:12:06 +01:00
Alexandru Soare
2b411b32ba fix(scatter): Fix ad-hoc metric for pointsize (#37669) 2026-02-09 11:13:06 +02:00
Nikhil
cebdb9e0b7 fix(ListView): add tooltip for layout toggle buttons (#37581)
Co-authored-by: root <root@DESKTOP-LUKSKD7.localdomain>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-02-09 02:37:53 -05:00
dependabot[bot]
ce872ddaf0 chore(deps-dev): bump @swc/core from 1.14.0 to 1.15.11 in /superset-frontend (#37511)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-09 02:27:45 -05:00
dependabot[bot]
29aa69b779 chore(deps): update @luma.gl/engine requirement from ~9.2.5 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#37762)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-09 01:28:59 -05:00
Evan Rusackas
ebee9bb3f9 refactor(types): consolidate shared table types and fix Funnel enum typo (#37768)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-09 01:14:34 -05:00
Vinícius Borges Alencar
82d6076804 refactor(charts): filter saved metrics by key and label (#37136) 2026-02-09 07:29:32 +03:00
Đỗ Trọng Hải
3b75af9ac3 docs(dev_portal/test): remove refs of testing tools not used in project (#37786)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-08 16:46:31 +07:00
Đỗ Trọng Hải
563d9f1a3f chore(lint): migrate Jest lint rules from eslint to oxlint (#37787)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-08 16:44:42 +07:00
Đỗ Trọng Hải
c4d2d42b3b build(dev-deps): move Webpack-dedicated js-yaml-loader to dev deps section (#37788)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-08 01:37:12 -08:00
dependabot[bot]
7580bd1401 chore(deps-dev): bump timezone-mock from 1.3.6 to 1.4.0 in /superset-frontend (#37333)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-07 23:07:29 -08:00
SBIN2010
c4e7c3b03b refactor: consolidating ColorSchemeEnum settings into one place (#37591) 2026-02-07 23:04:20 -08:00
dependabot[bot]
3521f191b2 chore(deps): bump webpack from 5.96.1 to 5.105.0 in /superset-frontend/cypress-base (#37775)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 10:18:47 -08:00
Rini Misini
f4708a5648 fix(db): prevent long database error messages from overflowing UI (#37709)
Co-authored-by: RiniMisini12 <misinirini@gmail.com>
2026-02-07 21:13:09 +07:00
dependabot[bot]
b9ab03994a chore(deps-dev): bump jsdom from 27.4.0 to 28.0.0 in /superset-frontend (#37688)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 15:32:38 +07:00
dependabot[bot]
df253f6aa4 chore(deps-dev): bump @babel/plugin-transform-runtime from 7.28.5 to 7.29.0 in /superset-frontend (#37631)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-07 00:12:35 -08:00
dependabot[bot]
5cea4fb7fe chore(deps): update @luma.gl/shadertools requirement from ~9.2.5 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#37763)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 23:55:22 -08:00
dependabot[bot]
76a27d5360 chore(deps): bump d3-format from 1.4.5 to 3.1.2 in /superset-frontend/packages/superset-ui-core (#37442)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 23:42:39 -08:00
dependabot[bot]
174e3c26d3 chore(deps): update @luma.gl/webgl requirement from ~9.2.5 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#37764)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 23:32:37 -08:00
Alexandru Soare
9ea5ded988 fix(dashboard): Prevent fatal error when database connection is unavailable (#37576) 2026-02-06 20:52:17 -08:00
Đỗ Trọng Hải
9086ae8e6c feat(ci): only bump patch version for Storybook-related deps until React 18 (#37749)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-06 13:29:32 -08:00
Evan Rusackas
fc5506e466 chore(frontend): comprehensive TypeScript quality improvements (#37625)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 13:16:57 -08:00
Abhishek Mishra
e9ae212c1c fix(alerts): show screenshot width field for PDF reports (#37037) 2026-02-06 11:19:18 -08:00
Evan Rusackas
46bca32677 docs(seo): add structured data, OpenGraph tags, and sitemap improvements (#37404)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 11:09:19 -08:00
JUST.in DO IT
a04571fa20 fix(world-map): reset hover highlight on mouse out (#37716)
Co-authored-by: Arunodoy18 <arunodoy630@gmail.com>
2026-02-06 10:27:57 -08:00
Evan Rusackas
fc26dbfebf chore(deps): upgrade deck.gl and luma.gl packages to ~9.2.6 (#37718)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 10:20:50 -08:00
Michael S. Molina
0415118544 chore: Bump @apache-superset/core (0.0.1-rc10) (#37759) 2026-02-06 14:18:22 -03:00
Michael S. Molina
935bbe6061 docs: Updates extensions docs (#37704) 2026-02-06 13:18:25 -03:00
Daniel Vaz Gaspar
ec6eaf4898 fix(deps): bump elasticsearch-dbapi to 0.2.12 for urllib3 2.x compatibility (#37758)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 16:03:04 +00:00
dependabot[bot]
87d15d32c4 chore(deps-dev): bump @types/node from 25.2.0 to 25.2.1 in /superset-frontend (#37732)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 20:16:18 +07:00
dependabot[bot]
7d9a8a0c5a chore(deps-dev): bump @babel/node from 7.28.6 to 7.29.0 in /superset-frontend (#37734)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 20:15:47 +07:00
dependabot[bot]
ddba88ffad chore(deps): bump googleapis from 171.2.0 to 171.4.0 in /superset-frontend (#37736)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 20:15:29 +07:00
Evan Rusackas
1e50422a66 chore: remove deprecated react-hot-loader (#36433)
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-06 15:57:31 +07:00
Evan Rusackas
246dbd7f5c chore(deps): upgrade react-resize-detector to v9.1.1 (#37741)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 15:25:30 +07:00
dependabot[bot]
9b861b2848 chore(deps): bump caniuse-lite from 1.0.30001768 to 1.0.30001769 in /docs (#37726)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 14:33:57 +07:00
dependabot[bot]
1c35c3f6d0 chore(deps): bump markdown-to-jsx from 9.7.2 to 9.7.3 in /superset-frontend (#37730)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 14:31:39 +07:00
dependabot[bot]
b71654877f chore(deps-dev): bump @types/node from 25.2.0 to 25.2.1 in /superset-websocket (#37719)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 14:31:09 +07:00
dependabot[bot]
cd447ca1fd chore(deps): update @luma.gl/webgl requirement from ~9.2.2 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#37469)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 22:39:25 -08:00
Amin Ghadersohi
01ac966b83 fix(mcp): remove html.escape to fix ampersand display in chart titles (#37186)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 19:49:37 -08:00
dependabot[bot]
97e5f0631d chore(deps): bump aws-actions/configure-aws-credentials from 5 to 6 (#37685)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-05 19:48:51 -08:00
dependabot[bot]
b7acb7984f chore(deps-dev): bump @babel/core from 7.28.6 to 7.29.0 in /superset-frontend (#37686)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-05 19:48:43 -08:00
Evan Rusackas
d3919cf24f fix(translations): Periodic language strings extraction, newly Translatable label positions for Radar Chart (#33940)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 19:48:24 -08:00
dependabot[bot]
27889651b3 chore(deps): bump markdown-to-jsx from 9.6.1 to 9.7.2 in /superset-frontend (#37691)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 09:55:51 +07:00
Đỗ Trọng Hải
361fe6fe89 chore(build): add @hainenber as codeowner for GHA workflow changes (#37703)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-02-06 09:54:21 +07:00
dependabot[bot]
8506d70242 chore(deps-dev): bump webpack from 5.94.0 to 5.105.0 in /superset-embedded-sdk (#37713)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-06 09:53:35 +07:00
Evan Rusackas
00a53eec2d fix(translations): remove corrupted text from Spanish translation file (#37717)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 09:52:14 +07:00
Joe Li
5040db859c test(playwright): additional dataset list playwright tests (#36684)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-05 16:42:07 -08:00
Evan Rusackas
ef4f7afa90 chore(docs): improve build performance and fix OOM crashes (#37588)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 13:12:46 -08:00
Amin Ghadersohi
47db185e3b fix(mcp): include x_axis column in query context for series charts with group_by (#37639) 2026-02-05 19:59:44 +01:00
Joe Li
2e463078a2 refactor(filters): extract shouldShowTimeRangePicker and improve test coverage (#36012)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-05 10:48:55 -08:00
JUST.in DO IT
4f42928b34 fix(sqllab): Skip progress bar on no data (#37652) 2026-02-05 10:38:37 -08:00
Gabriel Torres Ruiz
75fa474fce test(native-filters): add unit tests for requiredFirst filter logic (#37640) 2026-02-05 10:36:35 -08:00
dependabot[bot]
fd8c21591a chore(deps-dev): update @babel/types requirement from ^7.28.6 to ^7.29.0 in /superset-frontend/plugins/plugin-chart-pivot-table (#37603)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-05 10:31:56 -08:00
Amin Ghadersohi
4147d877fc fix(mcp): prevent DATE_TRUNC on non-temporal columns in chart generation (#37433) 2026-02-05 09:24:31 -08:00
Amin Ghadersohi
a9dca529c1 fix(mcp): treat runtime validation warnings as informational, not errors (#37214)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 09:23:51 -08:00
dependabot[bot]
20f1918dd6 chore(deps): bump caniuse-lite from 1.0.30001767 to 1.0.30001768 in /docs (#37684)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-05 22:26:53 +07:00
dependabot[bot]
c09a4f6f47 chore(deps): bump googleapis from 171.1.0 to 171.2.0 in /superset-frontend (#37690)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-05 21:37:26 +07:00
bikashbarua
4e4fa53c8d fix: Rename Truncate Axis to Truncate Y Axis in bar chart controls (#37403)
Co-authored-by: Joe Li <joe@preset.io>
Co-authored-by: SBIN2010 <Sbin2010@mail.ru>
2026-02-05 12:55:51 +03:00
Miguel
07ff82f189 docs: add XNET to INTHEWILD list (#37615)
Co-authored-by: Miguel Deus <miguel@xnet.company>
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-02-04 21:27:35 -08:00
dependabot[bot]
b7b9bfd3fe chore(deps): bump query-string from 6.14.1 to 9.3.1 in /superset-frontend (#37545)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-04 21:26:28 -08:00
dependabot[bot]
b968d1095c chore(deps): bump dawidd6/action-download-artifact from 12 to 14 (#37602)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 21:25:52 -08:00
Michael S. Molina
e10237fcc1 fix: Security vulnerability in Storybook (#37676) 2026-02-04 14:48:39 -03:00
Michael S. Molina
92438322c0 feat(extensions): Enhances SQL Lab API (#37642) 2026-02-04 13:53:58 -03:00
Đỗ Trọng Hải
f96e90b979 fix(docker): remove accidental command substitutions when building FE in dev mode (#37670) 2026-02-04 23:53:20 +07:00
dependabot[bot]
b464979db1 chore(deps-dev): bump webpack from 5.104.1 to 5.105.0 in /superset-frontend (#37658)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 22:47:12 +07:00
dependabot[bot]
45f883c9cd chore(deps-dev): bump webpack from 5.104.1 to 5.105.0 in /docs (#37656)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 21:35:51 +07:00
Nancy Chauhan
8fd3401077 fix(security): update jspdf to 4.0.0 to address CVE-2025-68428 (#37553) 2026-02-04 21:29:57 +07:00
Richard Fogaca Nienkotter
89a98ab9a4 fix(dataset-editor): include calculated columns in currency code dropdown (#37621) 2026-02-04 11:17:07 -03:00
Jamile Celento
2dfc770b0f fix(native-filters): update TEMPORAL_RANGE filter subject when Time Column filter is applied (#36985) 2026-02-04 12:37:17 +03:00
Vanessa Giannoni
6b7b23ed78 fix(timeseries): restore ECharts tooltip after closing drill menu (#37284) 2026-02-04 12:32:23 +03:00
dependabot[bot]
5ac5480f35 chore(deps): bump caniuse-lite from 1.0.30001766 to 1.0.30001767 in /docs (#37601)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 12:35:32 -08:00
Evan Rusackas
76889c1a69 feat(db_engine_specs): add Apache Phoenix and Apache IoTDB engine specs (#37590)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:29:19 -05:00
Evan Rusackas
569606635b docs(databases): add Supabase, AlloyDB, and Neon as PostgreSQL-compatible databases (#37589)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 12:22:49 -08:00
dependabot[bot]
66264856a7 chore(deps): bump googleapis from 171.0.0 to 171.1.0 in /superset-frontend (#37630)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 22:28:07 +07:00
dependabot[bot]
3eb860a663 chore(deps): bump hot-shots from 13.1.0 to 13.2.0 in /superset-websocket (#37596)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 22:19:07 +07:00
dependabot[bot]
a44980da65 chore(deps-dev): bump globals from 17.2.0 to 17.3.0 in /superset-websocket (#37595)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 22:18:33 +07:00
dependabot[bot]
7112bce961 chore(deps-dev): bump @types/node from 25.1.0 to 25.2.0 in /superset-websocket (#37597)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 22:18:14 +07:00
dependabot[bot]
568486a304 chore(deps): bump @babel/core from 7.28.6 to 7.29.0 in /docs (#37598)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 22:17:50 +07:00
dependabot[bot]
fea135b46c chore(deps-dev): bump @playwright/test from 1.58.0 to 1.58.1 in /superset-frontend (#37633)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 22:17:13 +07:00
dependabot[bot]
601fcb3382 chore(deps-dev): bump @babel/preset-env from 7.28.6 to 7.29.0 in /superset-frontend (#37635)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 22:02:46 +07:00
dependabot[bot]
0d7cc88b2b chore(deps): bump antd from 6.2.2 to 6.2.3 in /docs (#37629)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-03 21:50:13 +07:00
Vitor Avila
32ee160c75 chore: Properly untrack WebSocket config file for docker (#37624) 2026-02-03 11:48:08 -03:00
Amin Ghadersohi
5914e83436 chore(mcp): remove unused MCP_SERVICE feature flag (#37618) 2026-02-03 15:23:08 +01:00
Amin Ghadersohi
0b5e4dd5de feat(mcp): add config toggle to disable parse_request decorator (#37617)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:22:44 +01:00
Joe Li
3a565a6c16 fix(tests): update DatasetList tests to new fetch-mock API (#37623)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 14:15:58 +03:00
Ramiro Aquino Romero
f60c82e4a6 fix: charts row limit warning is missing for server (#37112) 2026-02-02 15:49:31 -08:00
Luis Sánchez
91131d5996 chore(charts): echarts left padding too big and automation of title (#36993) 2026-02-02 15:48:03 -08:00
Joe Li
4b0d497513 test: add new RTL and integration tests for DatasetList (#36681)
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-02 12:08:38 -08:00
Joe Li
86f690d17f fix(dashboard): fix Export as Example with app prefix and enable Dashboard Export E2E tests (#37529)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:07:22 -08:00
Elizabeth Thompson
e9b494163b refactor(db): use Dialect instead of Engine in select_star to avoid SSH tunnels (#35540)
Co-authored-by: Claude <noreply@anthropic.com>
2026-02-02 10:26:35 -08:00
JUST.in DO IT
be404f9b84 fix(dashboard): Avoid calling loadData for invisible charts on virtual rendering (#37452) 2026-02-02 10:07:25 -08:00
Daniel Vaz Gaspar
11257c0536 fix(examples): skip URI safety check for system imports (#37577)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 09:24:16 -08:00
Beto Dealmeida
f2b6c395cd feat: Add PWA file handler for CSV/XLS/Parquet uploads (#36191)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 11:24:01 -05:00
dependabot[bot]
2d35ed2391 chore(deps-dev): bump @babel/runtime-corejs3 from 7.28.6 to 7.29.0 in /superset-frontend (#37605)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 23:03:59 +07:00
dependabot[bot]
bd65469091 chore(deps-dev): bump globals from 17.2.0 to 17.3.0 in /docs (#37599)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 21:48:25 +07:00
Kamil Gabryjelski
a6a66ca483 feat: Dataset folders editor (#36239) 2026-02-02 14:54:33 +01:00
Jonathan Alberth Quispe Fuentes
4a7cdccdad fix: Heatmap does not render correctly on normalization (#37208) 2026-02-02 12:34:46 +03:00
dependabot[bot]
61bd8f0cf2 chore(deps): bump use-query-params from 1.2.3 to 2.2.2 in /superset-frontend (#36997)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-02-01 23:55:39 -08:00
Evan Rusackas
ae10e105c2 fix(chart): enable cross-filter on bar charts without dimensions (#37407)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 17:14:24 -08:00
dependabot[bot]
901dca58f7 chore(deps): bump JustinBeckwith/linkinator-action from 2.3 to 2.4 (#37562)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 03:06:30 -08:00
dependabot[bot]
d95a3d8426 chore(deps-dev): bump @applitools/eyes-storybook from 3.63.9 to 3.63.10 in /superset-frontend (#37566)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 03:06:09 -08:00
alok kumar priyadarshi
70b95ca1b9 fix(build): eliminate PostgreSQL extra installation on Python 3.12-based Superset Docker images (#37587) 2026-01-31 15:54:19 +07:00
Michael S. Molina
004f02746f fix(build): Increase ForkTsCheckerWebpackPlugin memory limit to fix OOM error (#37583) 2026-01-31 14:22:17 +07:00
Beto Dealmeida
5d20dc57d7 feat(oauth2): add PKCE support for database OAuth2 authentication (#37067) 2026-01-30 23:28:10 -05:00
Beto Dealmeida
05c2354997 feat: AWS Cross-Account IAM Authentication for Aurora (#37585) 2026-01-30 19:18:34 -05:00
Vitor Avila
6043e7e7e3 fix: more DB OAuth2 fixes (#37398) 2026-01-30 21:11:26 -03:00
Amin Ghadersohi
1ee14c5993 fix(mcp): improve prompts, resources, and instructions clarity (#37389) 2026-01-30 12:25:38 -08:00
Felipe López
9764a84402 fix(charts): Table chart shows an error on row limit (#37218) 2026-01-30 11:45:50 -08:00
JUST.in DO IT
570cc3e5f8 feat(sqllab): treeview table selection ui (#37298) 2026-01-30 11:07:56 -08:00
dependabot[bot]
66519c3a85 chore(deps-dev): bump fetch-mock from 11.1.5 to 12.6.0 in /superset-frontend/packages/superset-ui-core (#36662)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-01-30 21:27:35 +07:00
dependabot[bot]
1f43138888 chore(deps): bump babel-loader from 9.2.1 to 10.0.0 in /docs (#37541)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 21:06:23 +07:00
dependabot[bot]
652d029a2d chore(deps-dev): bump @types/node from 25.0.10 to 25.1.0 in /superset-frontend (#37563)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 21:03:26 +07:00
dependabot[bot]
e67b1f5326 chore(deps-dev): bump baseline-browser-mapping from 2.9.18 to 2.9.19 in /superset-frontend (#37565)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 20:56:46 +07:00
dependabot[bot]
fa79a467e4 chore(deps): bump googleapis from 170.1.0 to 171.0.0 in /superset-frontend (#37564)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 16:57:04 +07:00
Pedro Rodrigues
2cce0308d4 fix: big number drill to details column data (#37068) 2026-01-30 12:32:49 +03:00
dependabot[bot]
c7fd1a2f65 chore(deps-dev): bump @types/node from 25.0.10 to 25.1.0 in /superset-websocket (#37539)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 10:22:41 +07:00
dependabot[bot]
ab4f646ef6 chore(deps): bump @babel/core from 7.28.5 to 7.28.6 in /docs (#37540)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 10:22:15 +07:00
Alejandro Solares
d6029f5c8a chore(deps): bump dependencies to address security vulnerabilities (#37552) 2026-01-30 10:19:43 +07:00
dependabot[bot]
c16e8f747c chore(deps-dev): bump css-loader from 7.1.2 to 7.1.3 in /superset-frontend (#37544)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-30 10:18:20 +07:00
Evan Rusackas
9c0337d092 fix(explore): correct validationDependancies typo to validationDependencies (#37554)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 01:18:50 +03:00
Evan Rusackas
3ef33dcb76 feat(playwright): add documentation screenshot generator (#37494)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 10:14:53 -08:00
Jean Massucatto
5a99588f57 fix(themes): correct action icons size and restore missing tooltips (#37409) 2026-01-29 20:42:15 +03:00
Kamil Gabryjelski
0b34363654 fix(mcp): Instance not bound to session error (#37548) 2026-01-29 18:00:34 +01:00
Jean Massucatto
55ec1152ec fix(deckgl): change deck gl Path default line width unit to meters (#37248) 2026-01-29 19:58:50 +03:00
Michael S. Molina
810d6ff480 fix(sqllab): Resolve stale closure bug causing text selection to break (#37550) 2026-01-29 13:09:26 -03:00
Mehmet Salih Yavuz
1501af06fe fix(Multilayer): preserve dashboard context for embedded (#37495) 2026-01-29 18:06:12 +03:00
Michael S. Molina
6cb3cea960 feat(extensions): Allow replacing editors using extensions (#37499) 2026-01-29 08:22:32 -03:00
Felipe López
675a4c7a66 fix(charts): numerical column for the Point Radius field in mapbox (#36962) 2026-01-29 10:50:10 +01:00
Vanessa Giannoni
7110fc9cde fix(explore): remove extra spacing when Advanced Analytics section is hidden (#37456) 2026-01-29 12:18:06 +03:00
Evan Rusackas
73e095db8e docs(components): federate Storybook stories into Developer Portal MDX (#37502)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 21:33:01 -08:00
Evan Rusackas
5fedb65bc0 fix(docs): migrate deprecated antd v6 APIs to items prop pattern (#37530)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 18:47:20 -08:00
Evan Rusackas
b3526fc4ca docs(community): redesign community page with card grid layout (#37536)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:58:05 -08:00
Evan Rusackas
042229bf80 fix(docs): add consistent dev-mode logging for Matomo page views (#37526)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 17:54:38 -08:00
Gabriel Torres Ruiz
06e4f4ff4c fix(dashboard): catch DatasourceNotFound in get_datasets to prevent 404 (#37503) 2026-01-28 15:54:56 -08:00
yousoph
bb5be6cf54 fix(matrixify): Rename Tag from 'Matrixify' to 'Matrixified' (#37402)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-28 15:46:51 -08:00
Evan Rusackas
f6f9e083ac fix(docs): replace identicon logos and deduplicate README database wall (#37500)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 12:33:36 -08:00
Evan Rusackas
ad0186093f docs: add interactive API reference using docusaurus-openapi-docs (#37434)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 11:16:25 -08:00
Evan Rusackas
073c3c72b4 docs: add HPE logo to In the Wild listing (#37506)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:03:46 -05:00
dependabot[bot]
d4b89de001 chore(deps-dev): bump oxlint from 1.41.0 to 1.42.0 in /superset-frontend (#37512)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-28 22:09:04 +07:00
SkinnyPigeon
912538d176 docs: Updating quickstart for 6.0.0 (#37446) 2026-01-28 22:08:31 +07:00
dependabot[bot]
cfeb7ccd31 chore(deps-dev): bump globals from 17.1.0 to 17.2.0 in /superset-websocket (#37508)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-28 22:06:13 +07:00
Jean Massucatto
abf90de0ca fix(select): prevent bulk action buttons from being cut off in filters (#37453) 2026-01-28 17:16:14 +03:00
Vanessa Giannoni
ec2509a8b4 fix(dashboard-filters): prevent clearing all filters when editing a native filter (#37253) 2026-01-28 17:06:00 +03:00
Reynold Morel
43653d1fa1 fix(dashboard): resolve dropdown popup positioning (#36963) 2026-01-28 17:01:37 +03:00
dependabot[bot]
da56bddada chore(deps-dev): bump globals from 17.1.0 to 17.2.0 in /docs (#37509)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-28 20:46:08 +07:00
Jamile Celento
3347b9bf6c fix(table): only show increase/decrease color options when time comparison enabled (#37362) 2026-01-28 13:32:30 +01:00
Amin Ghadersohi
6663709a23 fix(mcp): tools not listed when JWT auth is enabled (#37377) 2026-01-28 11:20:20 +01:00
Amin Ghadersohi
e6d0f97aab fix(mcp): always filter list responses by columns_requested (#37505) 2026-01-28 11:15:19 +01:00
dependabot[bot]
3bcd3b1683 chore(deps-dev): bump typescript-eslint from 8.53.1 to 8.54.0 in /superset-websocket (#37466)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-28 07:55:13 +07:00
dependabot[bot]
b223f10ab5 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.53.1 to 8.54.0 in /superset-websocket (#37468)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-28 07:35:46 +07:00
Evan Rusackas
f787aec567 docs: add Netlify to CI services footer and improve layout (#37451)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 14:41:38 -08:00
Vanessa Giannoni
2ec3aaaeea feat(dashboard): show dataset column labels in View as table (#37140) 2026-01-27 13:51:28 -08:00
JUST.in DO IT
20da4eb86e fix(sqllab): Over-rendering on result table (#30857) 2026-01-27 13:47:58 -08:00
Mehmet Salih Yavuz
27a4575f3e refactor: Move frontend related artifacts into frontend gitignore (#37496) 2026-01-27 22:38:11 +03:00
yousoph
5fa6925522 fix(dashboard): update chart customization UI text to "Display controls" (#37462)
Co-authored-by: Maxime Beauchemin <maximebeauchemin@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-27 10:27:14 -08:00
Vanessa Giannoni
a7e7cc30a9 fix(ag-grid-table): preserve time grain aggregation when temporal column casing changes (#36990) 2026-01-27 10:13:32 -08:00
Evan Rusackas
e4d71c2a55 docs(readme): sync database logos with auto-generated docs (#37463)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 09:58:03 -08:00
dependabot[bot]
10a8d8b8ee chore(deps-dev): bump @typescript-eslint/parser from 8.53.1 to 8.54.0 in /superset-websocket (#37465)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 09:57:29 -08:00
Mehmet Salih Yavuz
1681f74b2e chore(direnv): add direnv to gitignore (#37481) 2026-01-27 19:14:50 +03:00
dependabot[bot]
58ab4e78ff chore(deps): bump antd from 6.2.1 to 6.2.2 in /docs (#37470)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 23:11:13 +07:00
dependabot[bot]
8f6dd4aba0 chore(deps-dev): bump typescript-eslint from 8.53.1 to 8.54.0 in /docs (#37476)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-27 23:07:16 +07:00
dependabot[bot]
dba75bd897 chore(deps): bump memoize-one from 5.2.1 to 6.0.0 in /superset-frontend/packages/superset-ui-demo (#37151)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:22:00 -08:00
dependabot[bot]
e28d2782f1 chore(deps): bump core-js from 3.40.0 to 3.48.0 in /superset-frontend/packages/superset-ui-demo (#37439)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2026-01-26 21:58:16 -08:00
alex
97aea5d128 feat(i18n): complete Māori translation (#37443)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-26 21:40:49 -08:00
dependabot[bot]
bd419d19af chore(deps): update core-js requirement from ^3.38.1 to ^3.48.0 in /superset-frontend/packages/superset-ui-core (#37319)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 17:15:22 -08:00
dependabot[bot]
56ad429200 chore(deps): update @luma.gl/shadertools requirement from ~9.2.2 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#37237)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 17:14:36 -08:00
Evan Rusackas
7fc9974a7c fix(deps): remove encodable dependency and pin query-string to fix Dependabot CI failures (#37450)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 15:52:22 -08:00
Peng Ren
73d4332b51 feat(database): SIP-195 Add MongoDB database engine support (#37368)
Co-authored-by: Peng Ren <ia250@cummins.com>
2026-01-26 15:51:35 -08:00
Tilak Mahajan
10a9b4bb94 fix: update Apache Superset website footer copyright year (#37435) 2026-01-26 15:51:14 -08:00
Daniel Vaz Gaspar
290bcc1dbb feat(cache): use configurable hash algorithm for flask-caching (#37361) 2026-01-26 10:19:51 -08:00
dependabot[bot]
26ac832138 chore(deps): update @luma.gl/engine requirement from ~9.2.4 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#37440)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2026-01-26 09:37:11 -08:00
JUST.in DO IT
4db6f9e04c chore(trino): Add progress_text for additional running state info (#36909) 2026-01-26 09:11:33 -08:00
JUST.in DO IT
0fd528c7af feat(sqllab): Improved query status indicator bar (#36936) 2026-01-26 08:57:52 -08:00
dependabot[bot]
647f21c26a chore(deps): bump hot-shots from 13.0.0 to 13.1.0 in /superset-websocket (#37436)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 08:34:51 -08:00
dependabot[bot]
89b998d6b7 chore(deps): bump react-intersection-observer from 10.0.0 to 10.0.2 in /superset-frontend (#37338)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-26 08:22:36 -08:00
dependabot[bot]
695e295333 chore(deps): bump ag-grid-community from 34.3.1 to 35.0.1 in /superset-frontend (#37386)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 08:22:15 -08:00
dependabot[bot]
f2fc5dec11 chore(deps): bump ag-grid-react from 34.3.1 to 35.0.1 in /superset-frontend (#37419)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 08:21:50 -08:00
Michael S. Molina
95a465ad7c feat(sqllab): add getActivePanel API for panel visibility tracking (#37448) 2026-01-26 13:18:01 -03:00
Ramiro Aquino Romero
8aebfe1105 fix: display correct icon for Multi Chart in quick switcher (#37256) 2026-01-26 14:47:39 +03:00
dependabot[bot]
c7cec19827 chore(deps): bump ace-builds from 1.43.5 to 1.43.6 in /superset-frontend (#37424)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 22:14:18 +07:00
dependabot[bot]
ce84ab4ce2 chore(deps-dev): bump cheerio from 1.1.2 to 1.2.0 in /superset-frontend (#37423)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 22:13:19 +07:00
dependabot[bot]
470c593c3d chore(deps-dev): bump @types/node from 25.0.9 to 25.0.10 in /superset-frontend (#37418)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 19:50:15 +07:00
dependabot[bot]
04a9be04ab chore(deps-dev): bump @playwright/test from 1.57.0 to 1.58.0 in /superset-frontend (#37425)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 19:49:05 +07:00
dependabot[bot]
09b5af5945 chore(deps): bump markdown-to-jsx from 9.6.0 to 9.6.1 in /superset-frontend (#37420)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 19:48:34 +07:00
dependabot[bot]
19d5fa86fc chore(deps-dev): bump baseline-browser-mapping from 2.9.17 to 2.9.18 in /superset-frontend (#37426)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 19:48:00 +07:00
Yousuf Ansari
b09e60c1ec fix(deckgl-contour): prevent WebGL freeze by clamping and auto-scaling cellSize (#37244) 2026-01-24 11:18:41 -08:00
dependabot[bot]
2f81720603 chore(deps-dev): bump @swc/plugin-transform-imports from 10.0.0 to 12.4.0 in /superset-frontend (#37384)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-01-24 11:18:10 -08:00
Amin Ghadersohi
0ecc69d2f1 chore(deps): bump fastmcp from 2.14.0 to 2.14.3 (#37410) 2026-01-24 07:03:00 -08:00
Felipe López
319a131ec9 fix(charts): missing globalOpacity prop with mapbox (#37168) 2026-01-23 15:08:16 -08:00
isaac-jaynes-imperva
3f37cdbf9c fix(database): include configuration_method in the DB export/import flow (#36958)
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-01-23 19:34:52 -03:00
dependabot[bot]
3a811d680d chore(deps): bump lodash from 4.17.21 to 4.17.23 in /superset-frontend (#37348)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 14:31:30 -08:00
dependabot[bot]
a60f8d761d chore(deps-dev): bump npm from 11.5.2 to 11.8.0 in /superset-frontend (#37352)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 14:31:15 -08:00
Amy Li
3580dc6cad chore(ts): Migrate Divider.jsx to Divider.tsx [SIP-36] (#36335)
Co-authored-by: Mona Lisa <dana.wan0409@gmail.com>
2026-01-23 14:30:03 -08:00
Reynold Morel
b99fc582e4 fix(chart): implement geohash decoding (#37027) 2026-01-23 14:15:29 -08:00
Martyn Gigg
e4f649e49c fix(superset-frontend): Fixes for broken functionality when an application root is defined (#36058) 2026-01-23 14:13:48 -08:00
Elena Felder
d54e227e25 chore: update old MotherDuck duckdb version to follow the official duckdb one (#36834) 2026-01-23 16:25:17 -05:00
Đỗ Trọng Hải
39ebf7a7ad chore(websocket): sync Node version to LTS v22 (#37102)
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-01-23 12:59:19 -08:00
Christian Geier
34418d7e0b fix(datasets): respect application root in database management link (#36986) 2026-01-23 12:58:50 -08:00
dependabot[bot]
d6328fcb42 chore(deps): bump mapbox-gl from 3.18.0 to 3.18.1 in /superset-frontend (#37382)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 12:57:59 -08:00
Jean Massucatto
e8363cf606 fix(redshift): normalize table names to lowercase for CSV uploads (#37019) 2026-01-23 12:40:38 -08:00
om pharate
5747fb1e85 feat(ListView): add pagination to card view and center row count display (#36288) 2026-01-23 12:40:07 -08:00
SBIN2010
d823dfd2b9 feat: add interactive column sorting to pivot table (#36050) 2026-01-23 11:10:13 -08:00
Ramiro Aquino Romero
baaa8c5f54 feat(deckgl): add auto zoom option in deck gl multi layer (#37221) 2026-01-23 11:08:58 -08:00
Pádraic Slattery
429d9b27f6 chore: Update outdated GitHub Actions version (#37305) 2026-01-23 11:07:42 -08:00
dependabot[bot]
56cf7a810b chore(deps-dev): bump html-webpack-plugin from 5.6.5 to 5.6.6 in /superset-frontend (#37392)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:07:05 -08:00
dependabot[bot]
bbab86a0b1 chore(deps-dev): bump @applitools/eyes-storybook from 3.63.8 to 3.63.9 in /superset-frontend (#37390)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:03:24 -08:00
dependabot[bot]
f83f952221 chore(deps-dev): bump webpack-bundle-analyzer from 5.1.1 to 5.2.0 in /superset-frontend (#37388)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:03:10 -08:00
dependabot[bot]
e14931c368 chore(deps-dev): bump swc-loader from 0.2.6 to 0.2.7 in /superset-frontend (#37387)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:02:55 -08:00
dependabot[bot]
8951362852 chore(deps-dev): bump globals from 17.0.0 to 17.1.0 in /docs (#37385)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:02:40 -08:00
dependabot[bot]
eeb4065d7d chore(deps): bump unist-util-visit from 5.0.0 to 5.1.0 in /docs (#37383)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:02:23 -08:00
dependabot[bot]
6a46700721 chore(deps): bump caniuse-lite from 1.0.30001765 to 1.0.30001766 in /docs (#37381)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:01:39 -08:00
dependabot[bot]
790b79541b chore(deps-dev): bump globals from 17.0.0 to 17.1.0 in /superset-websocket (#37380)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:01:24 -08:00
dependabot[bot]
7c69ec7f24 chore(deps): bump markdown-to-jsx from 7.7.4 to 9.6.0 in /superset-frontend (#37354)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 11:01:10 -08:00
dependabot[bot]
ef395662aa chore(deps-dev): bump @babel/runtime-corejs3 from 7.28.4 to 7.28.6 in /superset-frontend (#37353)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 10:55:45 -08:00
dependabot[bot]
e1ce553b2b chore(deps-dev): bump @types/node from 25.0.9 to 25.0.10 in /superset-websocket (#37351)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 10:55:20 -08:00
dependabot[bot]
b81543c18c chore(deps): bump lodash from 4.17.21 to 4.17.23 in /superset-frontend/cypress-base (#37349)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 10:55:06 -08:00
dependabot[bot]
5f67fa45ce chore(deps): bump jquery from 3.7.1 to 4.0.0 in /superset-frontend (#37342)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 10:54:38 -08:00
dependabot[bot]
8e0c584a92 chore(deps-dev): bump prettier from 3.8.0 to 3.8.1 in /superset-frontend (#37339)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 10:53:56 -08:00
dependabot[bot]
01a9541a0e chore(deps): bump dawidd6/action-download-artifact from 6 to 12 (#37324)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 10:53:34 -08:00
dependabot[bot]
5e3acc2041 chore(deps): bump actions/upload-artifact from 4 to 6 (#37320)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-23 10:53:15 -08:00
Daniel Vaz Gaspar
f2b54e882d fix: variable shadowing in test_connection command (#37397) 2026-01-23 16:27:51 +00:00
Ramiro Aquino Romero
54919c942a fix(time-range-modal): time range modal for out of scope filter is not displayed correctly (#36996) 2026-01-23 11:34:50 +02:00
Jean Massucatto
04c5517206 fix(dataset-editor): add missing Data type label in calculated columns tab (#37165) 2026-01-22 21:57:16 -08:00
Dheeraj Bansal
b1ad54220b fix: add sans-serif font fallback to fontFamily (Fixes #37096) (#37172) 2026-01-22 21:56:04 -08:00
dependabot[bot]
c6821cac6f chore(deps-dev): bump prettier from 3.8.0 to 3.8.1 in /superset-websocket (#37325)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-22 21:39:53 -08:00
Evan Rusackas
b7a5b24a54 feat(docs): add auto-generated troubleshooting section to database pages (#37345)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 14:43:02 -08:00
Gabriel Torres Ruiz
760227d630 fix(theme): migrate APP_NAME to brandAppName theme token with backward compatibility (#37370)
Co-authored-by: Rafael Benitez <rebenitez1802@gmail.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2026-01-22 14:35:55 -08:00
ellion90
3ca8c998ab docs(INTHEWILD): add club 25 de agosto (#37110) 2026-01-22 17:30:03 -05:00
Evan Rusackas
87bbd54d0a feat(examples): Transpile virtual dataset SQL on import (#37311)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
Co-authored-by: bito-code-review[bot] <188872107+bito-code-review[bot]@users.noreply.github.com>
2026-01-22 09:50:05 -08:00
Gabriel Torres Ruiz
b630830841 fix(sqllab): add colorEditorSelection token for visible text selection (#36932) 2026-01-22 09:45:59 -08:00
Evan Rusackas
9fabd7f997 docs: show Developer Portal in global navigation (#37313)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 09:41:07 -08:00
Ramiro Aquino Romero
fadab21493 fix(api): nan is not properly handled for athena connections (#37071) 2026-01-22 18:29:09 +03:00
Vitor Avila
cc972cad5a fix: DB OAuth2 fixes (#37350) 2026-01-22 01:51:48 -03:00
dependabot[bot]
de6ac2a444 chore(deps-dev): bump lightningcss from 1.30.2 to 1.31.1 in /superset-frontend (#37335)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 20:26:59 -08:00
dependabot[bot]
2b647d2352 chore(deps-dev): bump @applitools/eyes-storybook from 3.63.4 to 3.63.8 in /superset-frontend (#37336)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 20:26:39 -08:00
dependabot[bot]
7888da9e30 chore(deps): bump lodash from 4.17.21 to 4.17.23 in /docs (#37346)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 20:25:30 -08:00
dependabot[bot]
b576665f9a chore(deps): bump lodash-es from 4.17.22 to 4.17.23 in /superset-frontend (#37347)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 20:25:13 -08:00
dependabot[bot]
7f4c260cbe chore(deps): bump mapbox-gl from 3.17.0 to 3.18.0 in /superset-frontend (#37328)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 16:13:51 -08:00
dependabot[bot]
febc5d54d5 chore(deps-dev): bump prettier-plugin-packagejson from 2.5.20 to 3.0.0 in /superset-frontend (#37340)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 16:10:57 -08:00
dependabot[bot]
aa37e96a02 chore(deps-dev): bump @babel/eslint-parser from 7.28.5 to 7.28.6 in /superset-frontend (#37331)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 15:59:05 -08:00
Enzo Martellucci
3fa5bb4138 fix(echarts): restore dashed line style for time comparison series (#37135) 2026-01-22 00:44:57 +01:00
dependabot[bot]
0289028313 chore(deps-dev): bump baseline-browser-mapping from 2.9.14 to 2.9.17 in /superset-frontend (#37330)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 15:08:07 -08:00
dependabot[bot]
5e7fe81cfa chore(deps-dev): bump prettier from 3.8.0 to 3.8.1 in /docs (#37329)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 15:07:48 -08:00
dependabot[bot]
02495a130f chore(deps): bump lodash from 4.17.21 to 4.17.23 in /superset-websocket (#37321)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 15:06:27 -08:00
Vitor Avila
d4723ef116 feat: Handle OAuth2 dance with TableSelector (#37315) 2026-01-21 19:49:18 -03:00
dependabot[bot]
c3d5edbae9 chore(deps-dev): bump @babel/preset-env from 7.28.5 to 7.28.6 in /superset-frontend (#37158)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 14:12:37 -08:00
dependabot[bot]
bb3452b43c chore(deps-dev): bump mini-css-extract-plugin from 2.9.4 to 2.10.0 in /superset-frontend (#37270)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 14:12:24 -08:00
Evan Rusackas
996e0e1e7a fix(docs): remove broken /docs/databases redirect to nonexistent path (#37316)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 14:08:12 -08:00
Rafael Benitez
daec330127 fix: pin remark-gfm to v3.0.1 for compatibility with react-markdown v8 (#36388)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-21 13:58:31 -08:00
Evan Rusackas
d2907b2577 docs: federate scattered markdown files into centralized docs (#36756)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 13:00:54 -08:00
Nitish Agarwal
17d6f4ebc4 fix(table): align group headers correctly when filtering time compari… (#37236) 2026-01-21 12:50:18 -08:00
Evan Rusackas
dee063a4c5 feat(examples): Modernize example data loading with Parquet and YAML configs (#36538)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-21 12:42:15 -08:00
Amin Ghadersohi
ec36791551 fix(mcp): resolve Flask app context error in MCP tools (#37309)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 11:10:31 -08:00
Amin Ghadersohi
0fedfe03d5 feat(mcp): add stacked bar/area chart support (#37188)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 11:10:16 -08:00
Jamile Celento
23fec55e3d fix(native-filters): respect filter scope in nested tabs by prioritizing chartsInScope (#37139) 2026-01-21 11:05:51 -08:00
SBIN2010
212559dab2 feat(table): add tooltip to table header (#37179) 2026-01-21 11:01:57 -08:00
dependabot[bot]
c564655f39 chore(deps): bump diff from 5.1.0 to 5.2.2 in /superset-frontend/cypress-base (#37296)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 11:01:35 -08:00
dependabot[bot]
dc15feb83d chore(deps-dev): bump @babel/types from 7.28.4 to 7.28.6 in /superset-frontend (#37273)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 11:01:17 -08:00
dependabot[bot]
95169807d3 chore(deps): bump hot-shots from 12.1.0 to 13.0.0 in /superset-websocket (#37269)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 11:01:02 -08:00
dependabot[bot]
10ed60b4c1 chore(deps): bump caniuse-lite from 1.0.30001764 to 1.0.30001765 in /docs (#37238)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 11:00:48 -08:00
dependabot[bot]
a33f96b2fc chore(deps): bump geolib from 2.0.24 to 3.3.4 in /superset-frontend (#37205)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-01-21 11:00:29 -08:00
dependabot[bot]
39d5511b29 chore(deps): bump csstype from 3.1.3 to 3.2.3 in /superset-frontend (#37157)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 11:00:10 -08:00
Evan Rusackas
b460ca94c6 feat(docs): auto-generate database documentation from lib.py (#36805)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 10:54:01 -08:00
Sam Firke
2c1a33fd32 fix(roles): allow Public role to read themes (#37295) 2026-01-21 10:52:42 -08:00
dependabot[bot]
13013bbd64 chore(deps-dev): bump typescript-eslint from 8.53.0 to 8.53.1 in /docs (#37272)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 23:10:41 +07:00
dependabot[bot]
a1d24f1e4a chore(deps-dev): bump oxlint from 1.33.0 to 1.41.0 in /superset-frontend (#37279)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-01-21 23:10:06 +07:00
dependabot[bot]
3fa7dba094 chore(deps): bump diff from 5.2.0 to 5.2.2 in /docs (#37291)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 22:09:15 +07:00
dependabot[bot]
801c84f0ef chore(deps-dev): bump typescript-eslint from 8.53.0 to 8.53.1 in /superset-websocket (#37268)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 22:05:43 +07:00
Michael S. Molina
238bebebec fix(extensions): prevent duplicate initialization of LOCAL_EXTENSIONS watcher (#37250) 2026-01-21 11:22:14 -03:00
Ville Brofeldt
281c0c9672 chore: add paths to backend extension stack traces (#37300) 2026-01-21 06:19:28 -08:00
dependabot[bot]
807ff513ef chore(deps): bump fs-extra from 11.3.2 to 11.3.3 in /superset-frontend (#37274)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 21:01:46 +07:00
dependabot[bot]
445bc403b8 chore(deps): bump diff in /superset-frontend (#37292)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 21:00:59 +07:00
dependabot[bot]
2267b78a10 chore(deps): bump antd from 6.2.0 to 6.2.1 in /docs (#37301)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-21 20:57:43 +07:00
Michael S. Molina
d0e80d2079 refactor: Redesigns the Results panel toolbar and enables extensions to contribute toolbar actions (#37255) 2026-01-21 08:49:32 -03:00
Luis Sánchez
25647942fd fix(chart): Horizontal bar chart value labels cut off (#36989) 2026-01-21 12:33:44 +02:00
Ramiro Aquino Romero
3fba967856 fix(delete-filter): deleted native filters are still shown until [sc-96553] (#37012) 2026-01-20 10:18:47 -08:00
Amin Ghadersohi
e1fa374517 feat(mcp): add time_grain parameter to XY chart generation (#37182)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 09:28:42 -08:00
Amin Ghadersohi
50d0508a92 feat(mcp): Add Redis EventStore support for multi-pod deployments (#37216)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 17:30:47 +01:00
Alexandru Soare
2187fb4ab4 fix(transpile_query): Fix export_as_csv error: "transpile_to_dialect": ['Unknown field.'] (#37249) 2026-01-20 14:09:01 +02:00
Amin Ghadersohi
fe16c828cf feat(mcp): Add support for AG Grid Interactive Table (ag-grid-table) viz_type (#37191)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 11:34:13 +01:00
Amin Ghadersohi
6e1718910f fix(sqllab): show virtual dataset banner only when isDataset param is true (#37184) 2026-01-20 11:33:13 +01:00
Amin Ghadersohi
2d20079a88 fix(mcp): Remove screenshot URL functionality from MCP chart tools (#37228)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 11:30:09 +01:00
Luis Sánchez
1f19ef92cb refactor(TimezoneSelector): Enhance timezone selection logic and improve performance (#36486) 2026-01-19 19:46:56 -08:00
Luis Sánchez
f4597be341 fix(timeseries): x-axis last month was hidden (#37181) 2026-01-19 17:19:34 +01:00
Jamile Celento
4393db57d9 fix(native-filters): enable Apply button when selecting Boolean FALSE value (#37017) 2026-01-19 17:18:14 +01:00
Michael S. Molina
409cdad264 fix(mcp): prevent MCP service from corrupting shared appbuilder singleton (#37252) 2026-01-19 13:03:37 -03:00
Mehmet Salih Yavuz
c0cbbe393a feat(Matrixify): add matrixify tag to list view and explore (#37247) 2026-01-19 15:47:20 +01:00
Geidō
2900258e05 fix(Dashboard): Auto-apply filters with default values when extraForm… (#36927) 2026-01-19 11:04:09 +01:00
Jean Massucatto
2e29e33dd8 fix(calendar-heatmap): correct month display across timezones (#37064) 2026-01-19 12:37:40 +03:00
amaannawab923
39238ef8a9 feat(ag-grid-table): Enable Time Shift feature for AG Grid Table (#37072) 2026-01-19 14:56:05 +05:30
dependabot[bot]
476e454384 chore(deps): update @deck.gl/extensions requirement from ~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36618)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-18 15:42:50 -08:00
dependabot[bot]
4d462c76bd chore(deps-dev): bump @types/urijs from 1.19.25 to 1.19.26 in /superset-frontend (#36636)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-18 15:42:30 -08:00
dependabot[bot]
a06e6eb680 chore(deps): bump googleapis from 169.0.0 to 170.1.0 in /superset-frontend (#37195)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-18 15:42:14 -08:00
dependabot[bot]
cee5ce13e0 chore(deps-dev): bump @types/node from 25.0.3 to 25.0.9 in /superset-frontend (#37196)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-18 15:41:58 -08:00
dependabot[bot]
6453980d8d chore(deps): bump react-error-boundary from 6.0.0 to 6.1.0 in /superset-frontend (#37206)
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: hainenber <dotronghai96@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: hainenber <dotronghai96@gmail.com>
2026-01-18 15:40:57 -08:00
tiya-9975
f984dca5cc fix(sunburst): make Show Total text theme-aware (#37177)
Co-authored-by: DarshCode123 <darshjain193@gmail.com>
Co-authored-by: SBIN2010 <Sbin2010@mail.ru>
2026-01-18 14:43:16 +03:00
Yousuf Ansari
a77c2d550c fix(mixed-timeseries): prevent duplicate legend entries (#37217) 2026-01-18 00:33:33 +03:00
dependabot[bot]
f00f7d1c18 chore(deps): bump ioredis from 5.9.0 to 5.9.2 in /superset-websocket (#37194)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 14:22:18 +07:00
dependabot[bot]
33ff127370 chore(deps-dev): bump baseline-browser-mapping from 2.9.9 to 2.9.14 in /superset-frontend (#37198)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 14:21:39 +07:00
dependabot[bot]
b941be01cf chore(deps-dev): bump @types/node from 25.0.8 to 25.0.9 in /superset-websocket (#37193)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 13:57:21 +07:00
Richard Fogaca Nienkotter
f4474b2e3e feat: Dynamic currency (#36416) 2026-01-16 21:58:41 -08:00
Amin Ghadersohi
896947c787 fix(mcp): restore select_columns filtering in list tools (#37213)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:35:34 -08:00
Pedro Rodrigues
4b1d92e575 feat: add droppable area to tab empty state (#37210) 2026-01-16 22:51:52 +01:00
Amin Ghadersohi
2bcb66c2fc refactor(mcp): simplify single metric chart type check (#37215)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 19:35:26 +01:00
Amin Ghadersohi
d0783da3e5 fix(mcp): Handle big_number charts and make semantic warnings non-blocking (#37142)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 18:19:06 +01:00
Amin Ghadersohi
4532ccf638 fix(mcp): push Flask app context in mcp_auth_hook for tool execution (#37190) 2026-01-16 07:45:57 -08:00
SBIN2010
c30edaf075 feat: add tab select with save chart to dashboard (#36332)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Enzo Martellucci <enzomartellucci@gmail.com>
2026-01-16 15:55:27 +01:00
Kamil Gabryjelski
54f19856de fix: HTML detection in tables (#37171) 2026-01-16 15:39:32 +01:00
Kamil Gabryjelski
ab8df1ab34 fix: Move head_custom_extra above csrf token input (#37173) 2026-01-16 15:39:17 +01:00
Alexandru Soare
9555798d37 fix(data-zoom): Data-zoom not rendered properly in Matrixify (#37134) 2026-01-16 14:55:21 +01:00
Mehmet Salih Yavuz
95c14b1fc1 chore(Matrixify): disable matrixify for incompatible viz types (#37163) 2026-01-16 11:12:05 +03:00
dependabot[bot]
b142f1956f chore(deps): bump chrono-node from 2.7.8 to 2.9.0 in /superset-frontend (#36632)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 17:37:40 -08:00
dependabot[bot]
e071e0c5a4 chore(deps-dev): bump eslint-plugin-prettier from 5.5.4 to 5.5.5 in /superset-frontend (#37160)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 17:37:27 -08:00
dependabot[bot]
129b8e10a2 chore(deps-dev): bump @babel/core from 7.28.3 to 7.28.6 in /superset-frontend (#37154)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 17:17:53 -08:00
dependabot[bot]
82d74d15ec chore(deps): bump react-intersection-observer from 9.16.0 to 10.0.0 in /superset-frontend (#37162)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 14:01:51 -08:00
dependabot[bot]
89380638b0 chore(deps): bump immer from 11.0.1 to 11.1.3 in /superset-frontend (#37159)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 14:01:37 -08:00
dependabot[bot]
c6ad0dbd3a chore(deps-dev): bump prettier from 3.7.4 to 3.8.0 in /superset-frontend (#37156)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 14:01:23 -08:00
dependabot[bot]
f69cd43bd0 chore(deps-dev): bump eslint-plugin-prettier from 5.5.4 to 5.5.5 in /docs (#37153)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 14:00:58 -08:00
dependabot[bot]
4c267b7ee2 chore(deps-dev): bump prettier from 3.7.4 to 3.8.0 in /docs (#37152)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 13:59:23 -08:00
dependabot[bot]
7f6cdc5616 chore(deps-dev): bump prettier from 3.7.4 to 3.8.0 in /superset-websocket (#37149)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 13:59:06 -08:00
dependabot[bot]
db61e4f62a chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.8.3 to 0.8.5 in /superset-frontend (#37054)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 13:58:52 -08:00
dependabot[bot]
68e917c3f6 chore(deps-dev): bump eslint-plugin-testing-library from 7.14.0 to 7.15.4 in /superset-frontend (#37052)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 13:58:33 -08:00
dependabot[bot]
96a3f2a187 chore(deps-dev): bump @babel/preset-react from 7.27.1 to 7.28.5 in /superset-frontend (#37047)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 13:58:15 -08:00
dependabot[bot]
c867d9379f chore(deps-dev): bump ts-loader from 9.5.2 to 9.5.4 in /superset-frontend (#36999)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-15 13:57:32 -08:00
Alexandru Soare
81fdc2bd0e feat(dates): adding handling for first of (#37098) 2026-01-15 19:48:54 +02:00
Enzo Martellucci
23b91d22ef fix(charts): properly parse error responses in StatefulChart (#37130) 2026-01-15 15:22:45 +01:00
Mehmet Salih Yavuz
6eb4db6930 fix(controls): Only initialize categorical control on numeric x axis (#37115) 2026-01-15 11:03:36 +01:00
dependabot[bot]
2324b4c9e5 chore(deps-dev): bump @babel/preset-typescript from 7.26.0 to 7.28.5 in /superset-frontend (#36661)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 13:43:12 -08:00
dependabot[bot]
6ca0f7a925 chore(deps-dev): bump @babel/cli from 7.28.3 to 7.28.6 in /superset-frontend (#37124)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 13:09:11 -08:00
dependabot[bot]
64424f1625 chore(deps-dev): bump @types/node from 25.0.7 to 25.0.8 in /superset-websocket (#37116)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 13:08:53 -08:00
dependabot[bot]
debdfbc835 chore(deps-dev): bump @babel/plugin-transform-modules-commonjs from 7.27.1 to 7.28.6 in /superset-frontend (#37117)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 13:08:38 -08:00
Türker Ziya Ercin
4c01b5c324 docs: Add UserGuiding INTHEWILD.yaml (#37030) 2026-01-14 12:05:46 -08:00
Declan Zhao
137ebdee39 fix(prune_logs): improve performance by using id column only for ordering log records when max_rows_per_run is provided (#37138) 2026-01-14 16:05:56 -03:00
Elizabeth Thompson
a272253243 fix(table chart): time comparison totals returning null (#37111)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 09:58:34 -08:00
Damian Pendrak
35ac4c74fd feat(dashboard): chart customizations modal and plugins (#36062) 2026-01-14 17:00:18 +01:00
dependabot[bot]
4f3403b134 chore(deps): bump antd from 6.1.2 to 6.2.0 in /docs (#37079)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 13:41:41 -08:00
dependabot[bot]
86bc493423 chore(deps-dev): bump @babel/types from 7.28.4 to 7.28.6 in /superset-frontend (#37087)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 13:41:32 -08:00
dependabot[bot]
91dba9dcbf chore(deps-dev): bump @babel/types from 7.28.4 to 7.28.5 in /superset-frontend (#36652)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 13:40:31 -08:00
dependabot[bot]
bdcc98743d chore(deps-dev): bump cheerio from 1.1.0 to 1.1.2 in /superset-frontend (#37002)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 13:40:21 -08:00
Mehmet Salih Yavuz
e053418c97 fix(Matrixify): Do not clear values when saving (#37090) 2026-01-13 23:22:51 +03:00
Reynold Morel
0404c99e39 fix(dashboard): revert cell hover and active colors to grayscale (#36991) 2026-01-13 22:22:37 +03:00
dependabot[bot]
fd3eea0557 chore(deps): bump lodash-es from 4.17.21 to 4.17.22 in /superset-frontend (#37048)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:59:16 -08:00
SakshiiRohida
0c490dc1ab docs(exploring-data): add overview to tutorial (#37028)
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-01-13 10:47:04 -08:00
Türker Ziya Ercin
1166df3579 docs(inthewild): Dark mode issues on InTheWild page (#37034) 2026-01-13 10:46:37 -08:00
dependabot[bot]
0b4fcce03b chore(deps-dev): bump cross-env from 10.0.0 to 10.1.0 in /superset-frontend (#36657)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:45:14 -08:00
dependabot[bot]
393259bb9e chore(deps-dev): bump typescript-eslint from 8.52.0 to 8.53.0 in /superset-websocket (#37082)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:25:40 -08:00
dependabot[bot]
560da50df8 chore(deps): bump @babel/runtime from 7.28.4 to 7.28.6 in /superset-frontend (#37080)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:25:18 -08:00
dependabot[bot]
5d5012aa9f chore(deps-dev): bump @types/lodash from 4.17.21 to 4.17.23 in /superset-frontend (#37077)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:24:38 -08:00
dependabot[bot]
6c75365427 chore(deps-dev): bump typescript-eslint from 8.52.0 to 8.53.0 in /docs (#37076)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:24:07 -08:00
dependabot[bot]
3a3cbc2900 chore(deps-dev): bump @types/node from 25.0.3 to 25.0.7 in /superset-websocket (#37081)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 22:47:22 +07:00
dependabot[bot]
23a47e2f5a chore(deps-dev): bump webpack-dev-server from 5.2.2 to 5.2.3 in /superset-frontend (#37088)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 22:46:37 +07:00
Alexandru Soare
fc67569cd4 fix(datasets): ui bug fixes (#37058) 2026-01-13 16:21:46 +01:00
dependabot[bot]
e17bfae6bd chore(deps-dev): bump webpack from 5.103.0 to 5.104.1 in /superset-frontend (#37083)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 21:27:39 +07:00
dependabot[bot]
936e37bd02 chore(deps-dev): bump @babel/node from 7.28.0 to 7.28.6 in /superset-frontend (#37089)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 21:24:03 +07:00
Jonathan Alberth Quispe Fuentes
ad3812edd7 fix(table): keep d3-format semantics when applying currency formatting (#37039) 2026-01-13 14:59:31 +03:00
Enzo Martellucci
5f58241795 fix(explore): dispatch NumberControl value on blur to allow field clearing (#37007) 2026-01-13 10:37:15 +01:00
ʈᵃᵢ
481bfa0f68 feat(starrocks): add catalog support for StarRocks database connections (#37026) 2026-01-12 13:02:22 -08:00
Pere Gomila
462fffc23c fix(docs): Update references from LLMS.md to AGENTS.md (#37060) 2026-01-12 12:25:39 -08:00
JUST.in DO IT
7503ee4e09 feat(sqllab): primary/secondary action extensions (#36644) 2026-01-12 12:06:15 -08:00
dependabot[bot]
fa3d4a75ca chore(deps): bump actions/download-artifact from 6 to 7 (#36699)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 11:00:47 -08:00
dependabot[bot]
adb575be2f chore(deps-dev): bump typescript-eslint from 8.50.1 to 8.52.0 in /docs (#36913)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 11:00:31 -08:00
dependabot[bot]
d56bc5826f chore(deps-dev): bump @applitools/eyes-storybook from 3.60.0 to 3.63.4 in /superset-frontend (#37003)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 10:59:37 -08:00
dependabot[bot]
72c69e2ca6 chore(deps): bump fs-extra from 11.3.0 to 11.3.3 in /superset-frontend (#37001)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 10:59:09 -08:00
Joe Li
22cfc4536b fix(export): URL prefix handling for subdirectory deployments (#36771)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 10:58:59 -08:00
Igor Shmulyan
fac5d2bcb6 feat(db): add dynamic schema support for athena (#36003) 2026-01-12 10:58:12 -08:00
dependabot[bot]
4fe2085596 chore(deps): bump caniuse-lite from 1.0.30001763 to 1.0.30001764 in /docs (#37049)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 10:52:13 -08:00
dependabot[bot]
005b2af985 chore(deps-dev): bump @types/lodash from 4.17.21 to 4.17.23 in /superset-websocket (#37045)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 10:51:01 -08:00
Damian Pendrak
2a38ce001e fix(deckgl): remove visibility condition in deckgl stroke color (#37029) 2026-01-12 10:44:19 -08:00
dependabot[bot]
f4772a9383 chore(deps-dev): bump webpack-bundle-analyzer from 5.1.0 to 5.1.1 in /superset-frontend (#37006)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-12 10:35:55 -08:00
Luis Sánchez
dcdcf88969 chore(chart): rollback legend top alignment to the right (#36994) 2026-01-12 10:30:34 -08:00
ankitajhanwar2001
d8f7ae83ee fix(sqlglot): use Athena dialect for awsathena parsing (#36747) 2026-01-12 10:06:46 -08:00
Amin Ghadersohi
911d72c957 fix(models): prevent SQLAlchemy and_() deprecation warning (#37020)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-12 17:53:04 +01:00
Ville Brofeldt
169d27c9e9 fix(extensions): gracefully handle dist directory rebuilding (#37025) 2026-01-12 06:53:04 -08:00
Ville Brofeldt
62c7b48b5c fix(extensions-cli): fix dev mode error (#37024) 2026-01-12 06:52:09 -08:00
amaannawab923
4f444ae1d2 feat(ag-grid): Server Side Filtering for Column Level Filters (#35683) 2026-01-12 19:25:07 +05:30
Jean Massucatto
459b4cb23d perf(date_parser): bound regex quantifiers for deterministic parsing performance (#36983) 2026-01-12 12:52:19 +03:00
Mehmet Salih Yavuz
d914b35cc0 fix(translations): post merge fix for new translations addded (#37041) 2026-01-12 12:31:09 +03:00
Mehmet Salih Yavuz
4f5789abfe fix(reports): Use authenticated user as recipient for chart/dashboard reports (#36981) 2026-01-12 12:29:54 +03:00
Mehmet Salih Yavuz
e9b6791ffb refactor: move translations and logging to new core (#36929) 2026-01-12 08:58:59 +03:00
Mehmet Salih Yavuz
0294c30c9e fix(Tabs): prevent infinite rerenders with nested tabs (#37018) 2026-01-10 18:38:09 +03:00
stockarea
1cface15e6 docs: Update INTHEWILD.yaml (#36888)
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-01-09 15:12:25 -08:00
Amin Ghadersohi
ecefba5bf7 fix(mcp): resolve startup failures from circular DAO imports (#37023) 2026-01-09 15:07:30 -08:00
Michael S. Molina
53dddf4db2 feat(embedded-sdk): Add resolvePermalinkUrl callback for custom permalink URLs (#36924) 2026-01-09 17:02:38 -03:00
Luiz Otavio
1e8d648f47 feat: Chart query last run timestamp (#36934) 2026-01-09 17:02:18 -03:00
Beto Dealmeida
14c0cad0ba chore: remove deprecated function (#37021) 2026-01-09 14:52:53 -05:00
Amin Ghadersohi
f895250cf9 fix(mypy): add overrides for superset-core local dev consistency (#36907)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 10:27:16 -08:00
Enzo Martellucci
ea90d1f141 refactor(db-engine-specs): use standard OAuth 2.0 params in base class (#37010) 2026-01-09 17:44:32 +01:00
Daniel Vaz Gaspar
f48322c17d chore: bump flask-cors to 6.0.2 (#36640) 2026-01-09 16:13:22 +00:00
dependabot[bot]
413dfc98ff chore(deps): bump @storybook/addon-docs from 8.6.14 to 8.6.15 in /docs (#36824)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 21:45:58 -08:00
dependabot[bot]
57f8f50292 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.50.1 to 8.51.0 in /docs (#36898)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 21:45:34 -08:00
dependabot[bot]
07aa7622f7 chore(deps): bump react-resizable from 3.0.5 to 3.1.3 in /superset-frontend (#36911)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 21:44:21 -08:00
dependabot[bot]
ffbf81e952 chore(deps): bump ws from 8.18.3 to 8.19.0 in /superset-websocket (#36919)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 21:43:09 -08:00
dependabot[bot]
734d64081f chore(deps): bump caniuse-lite from 1.0.30001762 to 1.0.30001763 in /docs (#36970)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 21:42:57 -08:00
Amin Ghadersohi
85cf46dc1c fix(mcp): remove unused ctx parameter from health_check tool (#36992) 2026-01-08 21:38:22 -08:00
dependabot[bot]
4fc8157d6f chore(deps-dev): bump source-map from 0.7.4 to 0.7.6 in /superset-frontend (#36653)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 11:47:50 -08:00
dependabot[bot]
af185ad8c9 chore(deps-dev): bump jsdom from 27.0.0 to 27.4.0 in /superset-frontend (#36922)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 11:43:54 -08:00
dependabot[bot]
dd7f0c4224 chore(deps-dev): bump typescript-eslint from 8.50.1 to 8.52.0 in /superset-websocket (#36916)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 11:42:14 -08:00
dependabot[bot]
77ebc5ac10 chore(deps-dev): bump @typescript-eslint/parser from 8.51.0 to 8.52.0 in /docs (#36918)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 11:38:57 -08:00
dependabot[bot]
e9b91f6ec9 chore(deps): bump ioredis from 5.8.2 to 5.9.0 in /superset-websocket (#36920)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 11:38:13 -08:00
Amit Sharma
3ac76e116d chore: Update INTHEWILD.yaml (#36733)
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-01-08 11:36:33 -08:00
dependabot[bot]
4249b8ee6a chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.5.1 to 0.8.3 in /superset-frontend (#36972)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-08 11:35:37 -08:00
Amin Ghadersohi
047360641a feat(mcp): change save_chart default to False for preview-first workflow (#36935)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 11:30:01 -08:00
Tu Shaokun
337eb3baf5 fix(dashboard): prevent PublishedLabel overlap in non-English languages (#36877) 2026-01-08 11:22:55 -08:00
Connor Shea
70b2e520b2 chore(frontend): Update $schema path in oxlint.json (#36859) 2026-01-08 11:21:42 -08:00
hlyda0601
16e046b5d9 docs(INTHEWILD): add HOLLYLAND猛玛 (#36968) 2026-01-08 13:47:28 -05:00
Daniel Vaz Gaspar
a6d85dccf8 fix: streaming export losing g context (#36950)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-08 16:11:03 +00:00
Amin Ghadersohi
84279acd2f feat(mcp): add unified get_schema tool for schema discovery (#36458)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 15:26:17 -08:00
Jeroen Habets
03caa7b337 docs(INTHEWILD): add Cirrus Assessment (#36871)
Co-authored-by: Evan Rusackas <evan@preset.io>
2026-01-07 13:53:09 -08:00
Pat Buxton
6f67b05375 chore: Update INTHEWILD.yaml for PlaidCloud (#36741) 2026-01-07 11:44:34 -08:00
Amin Ghadersohi
64ee48f147 fix(mcp): use chart.query_context for get_chart_data like the API does (#36937)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 16:32:45 -03:00
Evan Rusackas
f9be2b816a feat(docs): add resources admonition with external links (#36761)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-07 11:11:53 -08:00
Levis Mbote
dfdf8e75d8 fix: handle undefined template variables safely in query rendering. (#35009) 2026-01-07 19:44:03 +01:00
Michael S. Molina
0c1edd4568 chore: Bump @apache-superset/core (0.0.1-rc9) (#36953) 2026-01-07 15:16:22 -03:00
Michael S. Molina
7a5441bc7a refactor: Remove unimplemented APIs from @apache-superset/core (#36952) 2026-01-07 14:17:06 -03:00
Gabriel Torres Ruiz
5edaed2e5b fix(alerts): wrong alert trigger with custom query (#35871) 2026-01-07 18:06:18 +01:00
Evan Rusackas
861e5cd013 fix(security): enforce datasource access control in get_samples() (#36550)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-07 08:54:11 -08:00
amaannawab923
d7d94ba640 fix(ag-grid): Ag Grid Date Filter timezone correction (#36270) 2026-01-07 08:27:20 -03:00
Đỗ Trọng Hải
9968393e4c feat(ci): add container security scan for image built for commits merged to mainline (#36604) 2026-01-07 07:04:46 +07:00
Evan Rusackas
9aff89c1b4 chore(frontend): migrate SqlLab and explore JS/JSX files to TypeScript (#36760)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 10:52:58 -08:00
Evan Rusackas
aaa174f820 docs: add Netlify configuration for PR deploy previews (#36908)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 10:52:12 -08:00
Evan Rusackas
1949d1bb96 feat(dev): add make ports and make open commands (#36906)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 10:52:00 -08:00
Evan Rusackas
f9fde87e85 feat(native filters): add filter type icons in config modal (#36905)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-06 10:51:48 -08:00
Felipe López
cedc35e39f fix(SQLLab): remove error icon displayed when writing Jinja SQL even when the script is correct (#36422) 2026-01-06 16:58:40 +03:00
JUST.in DO IT
12a266fd2f fix(trino): update query progress using cursor stats (#36872) 2026-01-05 13:19:20 -08:00
Evan Rusackas
5909e90081 feat(security): add built-in Public role for anonymous dashboard access (#36548)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-05 10:27:10 -08:00
Bouke van der Bijl
dcc556a9a7 chore(CHANGELOG): add link to 6.0.0 CHANGELOG (#36832) 2026-01-05 12:59:42 -05:00
dependabot[bot]
61986100bd chore(deps): bump hot-shots from 12.0.0 to 12.1.0 in /superset-websocket (#36899)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-05 09:22:09 -08:00
Mehmet Salih Yavuz
c76ddcbbec fix(deck.gl): Fix Scatterplot chart error when using fixed point size (#36890)
Co-authored-by: Claude <noreply@anthropic.com>
2026-01-05 15:55:43 +03:00
Enzo Martellucci
740ddc03e2 fix(plugin-chart-table): remove column misalignment when no scrollbars are present (#36891) 2026-01-05 13:52:37 +01:00
Đỗ Trọng Hải
2080633e57 other: resolve frontend dep vulns (#36820)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2026-01-02 23:28:44 -08:00
dependabot[bot]
ac27c0aa3c chore(deps-dev): bump @typescript-eslint/parser from 8.50.1 to 8.51.0 in /superset-websocket (#36861)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 23:21:59 -08:00
dependabot[bot]
53fa65fe67 chore(deps): bump caniuse-lite from 1.0.30001761 to 1.0.30001762 in /docs (#36865)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 23:19:04 -08:00
dependabot[bot]
fdef8fa50a chore(deps-dev): bump @typescript-eslint/parser from 8.50.1 to 8.51.0 in /docs (#36866)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 23:18:50 -08:00
İbrahim Ercan
1334040fd6 chore(docs): Include VLMedia logo to intothewild (#36868)
Co-authored-by: Ibrahim Ercan <ibrahim.ercan@vlmedia.com.tr>
2026-01-02 23:18:31 -08:00
nmdo
52af489d8f docs: Add Rogow to INTHEWILD.yaml (#36879) 2026-01-02 23:14:43 -08:00
innovark
d07a452e9b fix(RightMenu): fix inconsistent icon alignment in RightMenu items (#36532) 2026-01-02 23:13:08 -08:00
dependabot[bot]
aed95453b3 chore(deps): bump qs from 6.14.0 to 6.14.1 in /superset-websocket/utils/client-ws-app (#36883)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 23:10:25 -08:00
dependabot[bot]
4451e8db05 chore(deps): bump qs from 6.14.0 to 6.14.1 in /docs (#36884)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 23:10:08 -08:00
dependabot[bot]
dd2eb6293d chore(deps-dev): bump globals from 16.5.0 to 17.0.0 in /superset-websocket (#36885)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 23:09:39 -08:00
dependabot[bot]
1b1be96274 chore(deps-dev): bump globals from 16.5.0 to 17.0.0 in /docs (#36886)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-02 23:09:22 -08:00
innovark
e5489bd30f fix(SavedQueries): unify query card actions styling across all home page cards (#36671) 2026-01-02 14:41:47 +01:00
Levis Mbote
12aa425049 fix(logout): clicking logout displays an error notification "invalid username or password" (#36490) 2026-01-02 12:59:27 +01:00
Luis Sánchez
c31224c891 fix(TableChart): render cell bars for columns with NULL values (#36819) 2025-12-31 17:51:35 +03:00
Mehmet Salih Yavuz
85e830de46 fix: Clear database form errors (#36854) 2025-12-31 15:25:23 +01:00
Geidō
d4ba44fce2 fix: Query history view button in SqlLab (#36540) 2025-12-31 15:18:59 +01:00
Enzo Martellucci
7cd76e4647 fix: SqlLab error when collapsing the left panel preview (#36858)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2025-12-31 14:11:59 +01:00
Enzo Martellucci
e112d863bf fix(dashboard): resolve tab reorder state sync issues (#36855) 2025-12-31 13:50:58 +01:00
Enzo Martellucci
fe5d5fdae6 fix(chart-creation): use exact match when loading dataset from URL parameter (#36831) 2025-12-31 13:50:03 +01:00
cr0fters
02411ffde0 docs: Add EnquiryLabs to INTHEWILD.yaml (#36843) 2025-12-27 20:44:36 -08:00
dependabot[bot]
1697cf733b chore(deps): bump antd from 6.1.1 to 6.1.2 in /docs (#36823)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 20:42:16 -08:00
Mehmet Salih Yavuz
28c802fb6c fix(TableCollection): only apply highlight class when defined (#36809) 2025-12-24 16:26:01 +01:00
dependabot[bot]
362b5e3b89 chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 in /superset-frontend (#36711)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-23 15:20:58 -08:00
dependabot[bot]
bf5070471d chore(deps): bump storybook from 8.6.14 to 8.6.15 in /docs (#36727)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-23 15:20:39 -08:00
dependabot[bot]
100789200a chore(deps): bump hot-shots from 11.4.0 to 12.0.0 in /superset-websocket (#36786)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-23 15:20:22 -08:00
dependabot[bot]
f95f125c4c chore(deps-dev): bump html-webpack-plugin from 5.6.4 to 5.6.5 in /superset-frontend (#36787)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-23 15:20:05 -08:00
dependabot[bot]
fd67d3190a chore(deps-dev): bump typescript-eslint from 8.50.0 to 8.50.1 in /docs (#36801)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-23 15:19:30 -08:00
dependabot[bot]
bd8d4ddbee chore(deps-dev): bump typescript-eslint from 8.50.0 to 8.50.1 in /superset-websocket (#36802)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-23 15:19:13 -08:00
Beto Dealmeida
ecb4e483df fix: apply EXCLUDE_USERS_FROM_LISTS to /api/v1/security/users/ (#36742)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-23 15:18:34 -08:00
Sebastian Jingoi
f8cb935105 feat(reports): add webhook option for notifications (#36127)
Co-authored-by: Hriday Algh <hridayalgh@gmail.com>
Co-authored-by: Hriday Algh <53922405+AlwaysIngame@users.noreply.github.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2025-12-23 10:51:04 -08:00
Michael S. Molina
ba8d6eb9ac docs: Adds a new "Dependencies" page to the Developer Portal (#36817) 2025-12-23 10:41:10 -08:00
Michael S. Molina
c399fd2801 fix: Stale editor content in @apache-superset/core (#36813) 2025-12-23 10:40:26 -08:00
Michael S. Molina
9e04c3471d docs: Add SQL Lab Result Stats to community extensions registry (#36796) 2025-12-23 10:39:47 -08:00
Michael S. Molina
8f8fe19e3e docs: Add SQL Snippets to community extensions registry (#36797) 2025-12-23 14:52:09 -03:00
Michael S. Molina
ff3dab9b3b docs: Add Query Estimator to community extensions registry (#36814) 2025-12-23 14:25:45 -03:00
Levis Mbote
ff24e2f27d fix: fix error with dashboard filters when global async queries is enabled and user navigates quickly (#36639) 2025-12-23 15:53:01 +01:00
Alexandru Soare
54eb6317ef fix(margin): Fixing margin issues (#36479) 2025-12-22 15:57:43 +01:00
Enzo Martellucci
32c98d02d3 fix: UI cut off (#36531)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2025-12-22 15:52:04 +01:00
Michael S. Molina
6b25d0663e refactor: Migrates the MCP execute_sql tool to use the SQL execution API (#36739)
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2025-12-22 09:48:28 -03:00
dependabot[bot]
c0bcf28947 chore(deps-dev): bump @playwright/test from 1.56.0 to 1.57.0 in /superset-frontend (#36571)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-20 20:56:15 -08:00
dependabot[bot]
e0ea807031 chore(deps-dev): bump baseline-browser-mapping from 2.9.8 to 2.9.9 in /superset-frontend (#36725)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-20 20:55:59 -08:00
dependabot[bot]
8d070f5cb6 chore(deps-dev): bump @types/node from 25.0.2 to 25.0.3 in /superset-frontend (#36726)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-20 20:55:41 -08:00
dependabot[bot]
5cd8e1e736 chore(deps): bump caniuse-lite from 1.0.30001760 to 1.0.30001761 in /docs (#36757)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-20 20:55:21 -08:00
dependabot[bot]
0ced20457b chore(deps-dev): bump webpack from 5.104.0 to 5.104.1 in /docs (#36758)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-20 20:55:01 -08:00
Amin Ghadersohi
e3e6b0e18b fix(mcp): use SQLScript for all SQL parsing in execute_sql (#36599) 2025-12-20 20:52:56 -08:00
Joe Li
c026ae2ce7 fix(dashboard): prevent table chart infinite reload loop (#36686)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 13:45:36 -08:00
Michael S. Molina
ae491aee00 docs: Add SQL Lab Query Comparison to community extensions registry (#36769) 2025-12-19 16:55:16 -03:00
Evan Rusackas
3258082819 docs: add SQL Lab Export to Parquet to community extensions registry (#36755)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-19 09:16:43 -08:00
Michael S. Molina
d36ddbbb33 feat(extensions-cli): Add .gitignore generation to init command (#36768) 2025-12-19 13:33:37 -03:00
Michael S. Molina
5920cb57ea refactor(extensions): add Pydantic validation for extension configuration (#36767) 2025-12-19 13:33:10 -03:00
Joe Li
fb6f3fbb4d chore: update files for release 6.0.0 (#36745) 2025-12-18 21:19:12 -08:00
Evan Rusackas
91539f77aa feat(docker): support running multiple Superset instances simultaneously (#36751)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 17:04:58 -08:00
Evan Rusackas
b8f31124d0 chore(frontend): migrate 13 JS/JSX files to TypeScript (#36720)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 13:54:49 -08:00
Evan Rusackas
da8e077a44 chore(frontend): migrate utility JS files to TypeScript (#36721)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 13:54:40 -08:00
Evan Rusackas
32435bc3e9 feat(docs): enhance Matomo analytics tracking (#36743)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 13:52:08 -08:00
Evan Rusackas
2cf0d7936e chore(pre-commit): exclude logos from end-of-file-fixer (#36744)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 13:51:50 -08:00
Evan Rusackas
0830a57fa6 feat(docs): add llms.txt for LLM-friendly documentation index (#36730)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 13:48:28 -08:00
Brandon Sovran
0f56e3b9ae fix: Implement SIP-40 error styles for GAQ (#36596) 2025-12-18 12:22:17 -08:00
Evan Rusackas
ee45b26ad7 fix(tests): optimize DatasourceEditorCurrency tests for CI reliability (#36723)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-18 09:37:53 -08:00
Kamil Gabryjelski
f3407d7a56 chore: Close playwright browser gracefully (#36537) 2025-12-18 17:30:22 +01:00
Joe Li
f51f7f3307 fix(tests): resolve flakey selectOption helper race condition (#36719)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-17 21:27:17 -08:00
Evan Rusackas
2f4f64dfe8 chore(frontend): migrate easy JS/JSX files to TypeScript (#36713)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 17:12:02 -08:00
Evan Rusackas
ae584c8886 chore: remove INTHEWILD.md after migration to YAML (#36718)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 12:59:19 -08:00
Đỗ Trọng Hải
b1e004e122 build(dev-deps): remove stub type definition packages (#36706)
Signed-off-by: hainenber <dotronghai96@gmail.com>
2025-12-17 12:57:44 -08:00
Vitor Avila
737a5162e4 fix: Use is_active for guest users (#36716) 2025-12-17 17:23:22 -03:00
Evan Rusackas
b800412eda fix(docs): add retry logic and concurrency handling for badge downloads (#36715)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 12:19:39 -08:00
Michael S. Molina
24a4f8510d docs: Add SQL Lab Export to Google Sheets to community extensions registry (#36714) 2025-12-17 16:53:10 -03:00
Yousuf Ansari
33a425bbbc fix(echarts): use scroll legend for horizontal layouts to prevent overlap (#36306) 2025-12-17 11:16:35 -08:00
Catherine Qu
5ce4c52cfa feat(docs): In the Wild page with YAML data and AntD components (#36386)
Co-authored-by: Catherine Qu <catherine.qu@mail.utoronto.ca>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-17 09:42:29 -08:00
Luis Sánchez
c9ec173647 fix(SearchFilter): prevent unintended autocomplete on search input (#36209) 2025-12-17 20:41:07 +03:00
Michael S. Molina
71f9dcff5a chore: Bump core packages (0.0.1rc3, 0.0.1-rc6) (#36707) 2025-12-17 09:12:26 -08:00
dependabot[bot]
479b7a3fba chore(deps-dev): bump @pmmmwh/react-refresh-webpack-plugin from 0.5.17 to 0.6.2 in /superset-frontend (#36691)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 09:01:02 -08:00
dependabot[bot]
594ea972ca chore(deps-dev): bump @types/node from 25.0.2 to 25.0.3 in /superset-websocket (#36692)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 08:46:34 -08:00
dependabot[bot]
d77f7b6d20 chore(deps): bump nanoid from 5.0.9 to 5.1.6 in /superset-frontend (#36586)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 08:46:17 -08:00
dependabot[bot]
f4ded02e0d chore(deps-dev): bump typescript-eslint from 8.49.0 to 8.50.0 in /docs (#36650)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 08:46:01 -08:00
dependabot[bot]
f97fa08477 chore(deps-dev): bump baseline-browser-mapping from 2.9.7 to 2.9.8 in /superset-frontend (#36690)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 08:45:47 -08:00
dependabot[bot]
789be78166 chore(deps-dev): bump webpack from 5.103.0 to 5.104.0 in /docs (#36695)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-17 21:42:48 +07:00
dependabot[bot]
ea3d247017 chore(deps-dev): bump webpack-bundle-analyzer from 4.10.2 to 5.1.0 in /superset-frontend (#36610)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 16:06:20 -08:00
dependabot[bot]
6456f4c516 chore(deps): bump googleapis from 168.0.0 to 169.0.0 in /superset-frontend (#36646)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:48:07 -08:00
dependabot[bot]
e9bbf06938 chore(deps): bump re-resizable from 6.10.3 to 6.11.2 in /superset-frontend (#36647)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:47:53 -08:00
dependabot[bot]
ebee35ea5a chore(deps-dev): bump typescript-eslint from 8.49.0 to 8.50.0 in /superset-websocket (#36649)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:47:13 -08:00
SBIN2010
d0fb77cbc8 fix: removed dashboard from main page in "All" tab, refreshes dashboard list (#35945) 2025-12-16 15:45:58 -08:00
Evan Rusackas
46659c2bd1 fix(tests): resolve flaky ExploreChartHeader export menu tests (#36642)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 15:44:30 -08:00
dependabot[bot]
8407e9cf3b chore(deps): bump antd from 6.1.0 to 6.1.1 in /docs (#36655)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:43:53 -08:00
dependabot[bot]
5eeba2e734 chore(deps-dev): bump @typescript-eslint/parser from 8.49.0 to 8.50.0 in /docs (#36656)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:43:33 -08:00
dependabot[bot]
4ca8c000d1 chore(deps): update classnames requirement from ^2.2.5 to ^2.5.1 in /superset-frontend/packages/superset-ui-core (#36660)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:43:15 -08:00
dependabot[bot]
7108658de0 chore(deps-dev): bump @babel/runtime-corejs3 from 7.28.2 to 7.28.4 in /superset-frontend (#36664)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:42:58 -08:00
dependabot[bot]
42311f602e chore(deps-dev): bump npm from 11.5.2 to 11.7.0 in /superset-frontend (#36668)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-16 15:42:39 -08:00
Evan Rusackas
6b948ee894 docs(badges): Restore project badges on README - and re-implement the Docusaurus ones (#36495)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 14:45:51 -08:00
Joshua Daniel
5e0ee40762 feat(chart): support icons and text in the deck.gl Geojson visualization (#36201)
Co-authored-by: Joshua Daniel <jdaniel@gflenv.com>
2025-12-16 14:28:04 -08:00
Evan Rusackas
6aaf2266a9 chore(deps-dev): add baseline-browser-mapping (#36645)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 14:20:37 -08:00
Vitor Avila
d14f502126 fix: store form_data as dict during viz type migration (#36680) 2025-12-16 18:32:29 -03:00
Joe Li
d0361cb881 test(playwright): convert and create new dataset list playwright tests (#36196)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-16 11:07:11 -08:00
Vitor Avila
821b259805 fix: Support datetime_format during import (#36679) 2025-12-16 15:15:04 -03:00
Joe Li
2329d49f9e fix(DatasourceEditor): add mount guards and fix async race conditions (#35810)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-16 09:54:32 -08:00
Michael S. Molina
28e3ba749e feat: SQL execution API for Superset (#36529)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-16 14:39:29 -03:00
Evan Rusackas
cd2c889c9a feat(frontend): upgrade Storybook and add extension component documentation (#36498)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 09:31:35 -08:00
Evan Rusackas
52c711b0bc fix(dashboard): import with overwrite flag replaces charts instead of merging (#36551)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-16 09:09:56 -08:00
Evan Rusackas
6f8052b828 docs: add contribution guidelines from wiki to Developer Portal (#36523)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 16:54:29 -08:00
dependabot[bot]
5f431ee1ec chore(deps-dev): bump @types/node from 24.8.1 to 25.0.2 in /superset-frontend (#36620)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 16:49:16 -08:00
Maxime Beauchemin
de7a72a37b feat(ci): use TTL labels for showtime cleanup (#36643)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-15 15:07:20 -08:00
Evan Rusackas
a1a57d50a4 fix(tests): resolve flaky "should edit correctly" test in chart list (#36641)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 14:45:01 -08:00
Evan Rusackas
5844c05281 docs: clarify Jinja from_dttm/to_dttm availability in SQL Lab (#36544)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 13:00:31 -08:00
Evan Rusackas
c7a4d4f2cc fix(sql): handle backtick-quoted identifiers with base dialect (#36545)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-15 13:00:13 -08:00
Evan Rusackas
d6d8e71b71 chore(deps): Remove redundant polished direct dependency (#36431)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-15 12:59:59 -08:00
dependabot[bot]
57ec3b5a6d chore(deps-dev): bump eslint from 9.39.1 to 9.39.2 in /docs (#36608)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 11:59:25 -08:00
dependabot[bot]
11d3750044 chore(deps-dev): bump ts-jest from 29.4.5 to 29.4.6 in /superset-frontend (#36633)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 11:47:21 -08:00
dependabot[bot]
40db928091 chore(deps-dev): bump @eslint/js from 9.39.1 to 9.39.2 in /docs (#36612)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 11:38:37 -08:00
dependabot[bot]
fdde5fe2d3 chore(deps-dev): bump @types/node from 25.0.1 to 25.0.2 in /superset-websocket (#36611)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:52:18 -08:00
dependabot[bot]
6bd37d11ae chore(deps-dev): bump eslint from 9.39.1 to 9.39.2 in /superset-websocket (#36613)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:51:42 -08:00
dependabot[bot]
94900e0fb3 chore(deps): bump less from 4.4.2 to 4.5.1 in /docs (#36614)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:51:30 -08:00
dependabot[bot]
c3a9e28573 chore(deps-dev): bump tsx from 4.20.3 to 4.21.0 in /superset-frontend (#36615)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:49:50 -08:00
dependabot[bot]
e28ab05068 chore(deps): bump dom-to-image-more from 3.6.0 to 3.7.2 in /superset-frontend (#36635)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:49:25 -08:00
dependabot[bot]
b27ec49204 chore(deps): bump actions/upload-artifact from 5 to 6 (#36630)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:48:51 -08:00
dependabot[bot]
a1706229db chore(deps): bump actions/download-artifact from 6 to 7 (#36628)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:48:36 -08:00
dependabot[bot]
8bcb499a06 chore(deps-dev): bump terser-webpack-plugin from 5.3.14 to 5.3.16 in /superset-frontend (#36627)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:48:18 -08:00
dependabot[bot]
a3ea950567 chore(deps): bump ace-builds from 1.43.4 to 1.43.5 in /superset-frontend (#36625)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:47:57 -08:00
dependabot[bot]
c722c92adb chore(deps-dev): bump eslint-plugin-testing-library from 7.13.6 to 7.14.0 in /superset-frontend (#36623)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:47:41 -08:00
dependabot[bot]
824dafa342 chore(deps): update @deck.gl/core requirement from ~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36619)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:47:22 -08:00
dependabot[bot]
104eb90013 chore(deps-dev): bump @babel/eslint-parser from 7.28.4 to 7.28.5 in /superset-frontend (#36638)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-15 10:38:08 -08:00
Evan Rusackas
76f1b5ed5a chore(deps): bump dayjs from 1.11.18 to 1.11.19 (#36552)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 09:42:35 -08:00
Mehmet Salih Yavuz
29a52652b9 fix: specify correct ff in quickstart (#36445) 2025-12-15 20:25:18 +03:00
Alexandru Soare
8b1c41a012 fix(tab): Fix tabs in column not clickable (#36528) 2025-12-15 12:57:07 +02:00
dependabot[bot]
71a38305d9 chore(deps-dev): bump prettier-plugin-packagejson from 2.5.19 to 2.5.20 in /superset-frontend (#36587)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-14 20:32:41 +07:00
dependabot[bot]
4ae62dcae8 chore(deps): update @deck.gl/layers requirement from ~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36563)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 15:01:12 -08:00
dependabot[bot]
da31e82b6a chore(deps-dev): bump oxlint from 1.16.0 to 1.32.0 in /superset-frontend (#36580)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 15:00:49 -08:00
dependabot[bot]
18d3da81ca chore(deps): bump googleapis from 154.1.0 to 168.0.0 in /superset-frontend (#36567)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 14:59:50 -08:00
dependabot[bot]
2b1c72a92c chore(deps): update @deck.gl/aggregation-layers requirement from ~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36569)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 14:59:36 -08:00
dependabot[bot]
75c6da97b2 chore(deps-dev): bump eslint-plugin-testing-library from 7.13.3 to 7.13.6 in /superset-frontend (#36572)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 14:59:18 -08:00
dependabot[bot]
6439440260 chore(deps): bump actions/cache from 4 to 5 (#36575)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 14:59:00 -08:00
dependabot[bot]
989bb3432f chore(deps): bump content-disposition from 0.5.4 to 1.0.1 in /superset-frontend (#36582)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 14:58:18 -08:00
dependabot[bot]
b441844ca6 chore(deps-dev): bump @babel/node from 7.26.0 to 7.28.0 in /superset-frontend (#36583)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 14:57:40 -08:00
dependabot[bot]
09a1788a8b chore(deps-dev): bump css-minimizer-webpack-plugin from 7.0.2 to 7.0.4 in /superset-frontend (#36585)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 14:57:21 -08:00
Maxime Beauchemin
cde9abfce2 fix(webpack): include devserverHost in allowedHosts for Docker environments (#36597)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-12 13:35:56 -08:00
dependabot[bot]
0bcefe34ac chore(deps): update @deck.gl/react requirement from ~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36566)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 12:52:35 -08:00
dependabot[bot]
649112aa1f chore(deps): bump swagger-ui-react from 5.30.3 to 5.31.0 in /docs (#36559)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 12:52:15 -08:00
dependabot[bot]
120ca5cf8f chore(deps): bump mapbox-gl from 3.13.0 to 3.17.0 in /superset-frontend (#36558)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 12:51:56 -08:00
dependabot[bot]
0035da83af chore(deps-dev): bump @types/node from 25.0.0 to 25.0.1 in /superset-websocket (#36557)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 12:51:36 -08:00
dependabot[bot]
019f9442ae chore(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21 in /superset-frontend (#36556)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 12:51:19 -08:00
dependabot[bot]
084f9832c7 chore(deps-dev): bump mini-css-extract-plugin from 2.9.2 to 2.9.4 in /superset-frontend (#36555)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-12 12:51:01 -08:00
dependabot[bot]
8a339febeb chore(deps-dev): update typescript requirement from ^5.7.2 to ^5.9.3 in /superset-frontend/packages/superset-ui-demo (#35372)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-12-12 12:50:41 -08:00
Chad Rossouw
e5579ed939 feat(database): add cloudflare d1 support (#36348)
Co-authored-by: danielalyoshin <daniel.alyoshin@gmail.com>
Co-authored-by: Shreyas Rao <raoshreyas2004@gmail.com>
Co-authored-by: Murphy Lee <murphylee2004@gmail.com>
2025-12-12 12:48:22 -08:00
Amin Ghadersohi
d5dbd06824 docs(mcp): add Kubernetes deployment instructions to MCP service README (#36547) 2025-12-12 12:24:50 -08:00
Amin Ghadersohi
a1b5b92265 chore(deps): upgrade fastmcp from 2.13.x to 2.14.0 (#36594) 2025-12-12 11:38:47 -08:00
Amin Ghadersohi
92c63a54e4 chore(deps): upgrade redis from 4.x to 5.x (#36593) 2025-12-12 11:38:04 -08:00
Amin Ghadersohi
e5b7e38a30 feat(mcp): add datasource field to generate_explore_link form_data (#36543)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 16:51:58 +01:00
dependabot[bot]
edcb38517f chore(deps): bump d3-array and @types/d3-array in /superset-frontend (#36510)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 15:09:56 -08:00
dependabot[bot]
51a6b30179 chore(deps): bump @types/d3-array from 2.12.8 to 3.2.2 in /superset-frontend/plugins/plugin-chart-table (#35382)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-12-11 14:55:05 -08:00
Amin Ghadersohi
a588668899 feat(mcp): return form_data and form_data_key in generate_chart and generate_explore_link responses (#36539) 2025-12-11 13:21:49 -08:00
dependabot[bot]
9cf86c1533 chore(deps): update react requirement from ^19.2.0 to ^19.2.1 in /superset-frontend/plugins/legacy-plugin-chart-chord (#36418)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-12-11 12:47:56 -08:00
dependabot[bot]
740b328199 chore(deps): bump react-syntax-highlighter from 15.6.6 to 16.1.0 in /superset-frontend/packages/superset-ui-core (#36514)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 11:54:39 -08:00
dependabot[bot]
375bcd00ba chore(deps-dev): bump @babel/preset-env from 7.27.2 to 7.28.5 in /superset-frontend (#36519)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-12-11 11:54:12 -08:00
dependabot[bot]
076d4950d0 chore(deps): bump @emotion/core from 10.3.1 to 11.0.0 in /docs (#36503)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 11:52:49 -08:00
dependabot[bot]
0e9cffe12e chore(deps): bump math-expression-evaluator and @types/math-expression-evaluator in /superset-frontend (#36505)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 11:52:10 -08:00
dependabot[bot]
46e21c3003 chore(deps): update dompurify requirement from ^3.2.4 to ^3.3.1 in /superset-frontend/packages/superset-ui-core (#36513)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-12-11 11:51:52 -08:00
Evan Rusackas
1f5df7407f fix(api): Fix JWT authentication for /api/v1/me endpoints (#36410)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-11 11:40:42 -08:00
Enzo Martellucci
e1c022344e fix(alert-report-modal): enhance dashboard filters behavior and visibility (#36380) 2025-12-11 21:37:36 +02:00
dependabot[bot]
78081755aa chore(deps-dev): bump jest and @types/jest in /superset-frontend (#34477)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-12-11 11:23:26 -08:00
dependabot[bot]
955953b467 chore(deps): update dompurify requirement from ^3.3.0 to ^3.3.1 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#36471)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 11:23:03 -08:00
dependabot[bot]
ead19f9ba3 chore(deps-dev): bump prettier from 3.6.2 to 3.7.4 in /superset-frontend (#36487)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 11:22:46 -08:00
dependabot[bot]
c16ca9527c chore(deps): update @deck.gl/geo-layers requirement from ~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36508)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 11:22:21 -08:00
dependabot[bot]
d674d54e2e chore(deps): bump @types/d3-array from 2.12.8 to 3.2.2 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#35365)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 08:24:33 -08:00
dependabot[bot]
0e8b69089d chore(deps-dev): bump @babel/plugin-transform-runtime from 7.28.3 to 7.28.5 in /superset-frontend (#36501)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 08:23:24 -08:00
dependabot[bot]
0e8c420002 chore(deps): bump immer from 10.1.1 to 11.0.1 in /superset-frontend (#36502)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 08:23:05 -08:00
dependabot[bot]
e433cd5f69 chore(deps-dev): bump @types/node from 24.10.2 to 25.0.0 in /superset-websocket (#36504)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 08:22:16 -08:00
dependabot[bot]
c1b52cb8ed chore(deps-dev): bump webpack-visualizer-plugin2 from 1.2.0 to 2.0.0 in /superset-frontend (#36511)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-11 08:21:57 -08:00
Antonio Rivero
dba3fdfadf feat(mcp): Caching uses in-memory store by default when no external store is configured (#36527) 2025-12-11 13:08:09 +01:00
Daniel Vaz Gaspar
b7a541a9da chore: bump urllib3 to 2.6.0 (#36526)
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2025-12-11 11:47:46 +00:00
dependabot[bot]
1bde06b366 chore(deps): update @luma.gl/engine requirement from ~9.2.2 to ~9.2.4 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36506)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 23:54:54 -08:00
dependabot[bot]
e8927ca3b3 chore(deps): update @luma.gl/constants requirement from ~9.2.2 to ~9.2.4 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36509)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 23:54:34 -08:00
dependabot[bot]
9d58599329 chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 in /superset-frontend (#36515)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 23:54:12 -08:00
dependabot[bot]
858a72d8c1 chore(deps-dev): bump react-refresh from 0.14.2 to 0.18.0 in /superset-frontend (#36521)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 23:53:55 -08:00
dependabot[bot]
c79c85cdfe chore(deps): bump ag-grid-community from 34.2.0 to 34.3.1 in /superset-frontend (#36154)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 23:24:56 -08:00
dependabot[bot]
47ea316792 chore(deps-dev): bump @testing-library/jest-dom and @types/testing-library__jest-dom in /superset-frontend (#35785)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 20:28:10 -08:00
dependabot[bot]
5b38a1a0d4 chore(deps): update @deck.gl/layers requirement from ^9.1.13 to ^9.2.2 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#35704)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 19:29:12 -08:00
dependabot[bot]
f2e677c150 chore(deps): bump @deck.gl/layers from 9.1.13 to 9.2.2 in /superset-frontend (#35743)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 19:28:42 -08:00
dependabot[bot]
d992a5836f chore(deps): update d3-cloud requirement from ^1.2.7 to ^1.2.8 in /superset-frontend/plugins/plugin-chart-word-cloud (#36400)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 19:26:46 -08:00
dependabot[bot]
ee2ab7e078 chore(deps): update dayjs requirement from ^1.11.13 to ^1.11.18 in /superset-frontend/plugins/plugin-chart-echarts (#34955)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-10 16:59:12 -08:00
Antonio Rivero
683a65488f feat(mcp): Add ResponseCachingMiddleware and Storage (#36497) 2025-12-11 01:20:50 +01:00
dependabot[bot]
751804d044 chore(deps): bump antd from 5.29.1 to 6.1.0 in /docs (#36463)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 15:55:00 -08:00
dependabot[bot]
0d3c4d5d22 chore(deps): bump @emotion/styled from 10.3.0 to 11.14.1 in /docs (#34927)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 12:58:20 -08:00
dependabot[bot]
b8b7b958d9 chore(deps): bump actions/setup-node from 5 to 6 (#35633)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 11:26:30 -08:00
Evan Rusackas
0092cdca81 chore(ci): Upgrade GitHub Actions artifact actions to latest versions (#36432)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-10 11:25:43 -08:00
dependabot[bot]
2120569267 chore(deps-dev): bump typescript-eslint from 8.48.1 to 8.49.0 in /superset-websocket (#36465)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 10:50:42 -08:00
dependabot[bot]
4b7ae3a8f7 chore(deps-dev): bump typescript-eslint from 8.48.1 to 8.49.0 in /docs (#36469)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 10:50:25 -08:00
dependabot[bot]
a64e5e15fc chore(deps): bump ioredis from 5.8.1 to 5.8.2 in /superset-websocket (#35786)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 21:29:07 -08:00
Evan Rusackas
4f14eddf73 chore(deps): Remove unused luxon dependency (#36430)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-09 21:29:00 -08:00
Evan Rusackas
70a3e8fb42 docs: Remove title and badges from README index (#36442) 2025-12-09 21:28:45 -08:00
dependabot[bot]
954da8a3cc chore(deps-dev): bump eslint-plugin-react-prefer-function-component from 3.4.0 to 5.0.0 in /superset-frontend (#36476)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 10:28:58 -08:00
dependabot[bot]
4c9a463db3 chore(deps-dev): bump yeoman-test from 10.1.1 to 11.2.0 in /superset-frontend (#36475)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 10:28:36 -08:00
dependabot[bot]
47dbdd7a59 chore(deps): bump caniuse-lite from 1.0.30001759 to 1.0.30001760 in /docs (#36468)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 10:25:55 -08:00
dependabot[bot]
abc0678454 chore(deps-dev): bump @typescript-eslint/parser from 8.48.1 to 8.49.0 in /docs (#36467)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 10:25:30 -08:00
dependabot[bot]
dc403145ed chore(deps-dev): bump @typescript-eslint/parser from 8.48.1 to 8.49.0 in /superset-websocket (#36466)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 10:25:07 -08:00
dependabot[bot]
955b3b2b19 chore(deps-dev): bump @types/node from 24.10.1 to 24.10.2 in /superset-websocket (#36462)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 10:23:57 -08:00
dependabot[bot]
ab80ec8066 chore(deps): bump JustinBeckwith/linkinator-action from 1.11.0 to 2.3 (#35927)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-09 09:59:07 -08:00
Daniel Vaz Gaspar
bb22eb1ca8 feat: add option for hash algorithms (#35621)
Co-authored-by: Ville Brofeldt <33317356+villebro@users.noreply.github.com>
2025-12-09 16:59:07 +00:00
Amin Ghadersohi
8d7c83419c fix(mcp): Use config-based URL for MCP service instead of request auto-detection (#36460) 2025-12-09 07:33:17 -08:00
Michael S. Molina
d300d69f8f docs: Update API Explorer screenshot (#36483) 2025-12-09 10:09:29 -03:00
dependabot[bot]
9e7e813255 chore(deps-dev): bump eslint-plugin-testing-library from 6.5.0 to 7.13.3 in /superset-frontend (#35768)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 20:49:34 -08:00
Haoqian Zhang
f4b919bf7d feat(table): Export table data with "Search box" enabled (#36281)
Co-authored-by: RebeccaH2003 <114100529+RebeccaH2003@users.noreply.github.com>
2025-12-08 20:42:10 -08:00
Gabriel Torres Ruiz
3940354120 feat(theming): add per-theme custom font URL support (#36317) 2025-12-08 16:46:01 -08:00
Elizabeth Thompson
b35b1d7633 fix: add subdirectory deployment support for app icon and reports urls (#35098)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Daniel Gaspar <danielvazgaspar@gmail.com>
2025-12-08 16:06:08 -08:00
dependabot[bot]
0131e542e9 chore(deps-dev): bump eslint-plugin-react-hooks from 4.6.2 to 7.0.1 in /superset-frontend (#35882)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 15:33:01 -08:00
Luis Sánchez
e7c060466d fix(SqlLab): enhance SQL formatting with Jinja template support. (#36277) 2025-12-08 15:32:05 -08:00
Mehmet Salih Yavuz
340ab9f238 docs: Add SQL Flow Visualizer to community extensions registry (#36454) 2025-12-08 15:28:45 -08:00
dependabot[bot]
1dcc887a62 chore(deps): bump winston from 3.18.3 to 3.19.0 in /superset-websocket (#36451)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 15:28:25 -08:00
Risheit Munshi
67cf287c03 fix(chart): Display better hover text for country map charts (#36323)
Co-authored-by: askinner1 <144823527+askinner1@users.noreply.github.com>
Co-authored-by: codeant-ai-for-open-source[bot] <244253245+codeant-ai-for-open-source[bot]@users.noreply.github.com>
2025-12-08 15:27:40 -08:00
Shunki
440cbc4c1f fix(roles): Add missing SQLLab permissions for estimate and format (#36263) 2025-12-08 14:40:38 -08:00
JUST.in DO IT
8d04c33adf refactor(sqllab): Separate left panel outside of tab container (#36360) 2025-12-08 11:44:31 -08:00
Amy Li
8a00badf45 chore(ts): Migrate Header.jsx to Header.tsx [SIP-36] (#36286)
Co-authored-by: Wengxin Xu <wengxin0421@outlook.com>
2025-12-08 10:29:22 -08:00
yousoph
a76ec75933 fix: button text capitalization (#36444) 2025-12-08 09:39:45 -08:00
dependabot[bot]
240091516a chore(deps): bump hot-shots from 11.3.0 to 11.4.0 in /superset-websocket (#36450)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 08:51:05 -08:00
Shu Ying Wan
1127374edd chore(ts): Migrate Row.jsx to Row.tsx (#36347)
Co-authored-by: Amy Li <amym1734@gmail.com>
2025-12-05 15:40:34 -08:00
dependabot[bot]
a18b62cf6b chore(deps): bump jsonwebtoken from 9.0.2 to 9.0.3 in /superset-websocket (#36435)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-05 10:36:15 -08:00
dependabot[bot]
98553f83e3 chore(deps): bump jsonwebtoken from 9.0.2 to 9.0.3 in /superset-websocket/utils/client-ws-app (#36436)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-05 10:36:01 -08:00
Daniel Vaz Gaspar
1d9c93a793 fix: core mcp injection and ephemeral envs (#36440) 2025-12-05 15:02:07 -03:00
Mehmet Salih Yavuz
fb2826f92e fix(SaveModal): Update chart state when saving in explore (#36441) 2025-12-05 20:26:10 +03:00
Enzo Martellucci
236e000398 fix(Gauge): clearing previously set min and max values in a gauge chart sets the data labels to 0 (#36425)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2025-12-05 19:16:43 +02:00
Alexandru Soare
8c603a6f8b feat(state): remove chart state when navigation away from the dashboard (#36421) 2025-12-05 18:33:26 +03:00
dependabot[bot]
45a42396ab chore(deps-dev): update jest requirement from ^30.0.5 to ^30.2.0 in /superset-frontend/packages/generator-superset (#35389)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 12:33:49 -08:00
Mohammad Al-Qasem
4479614754 feat(table): Gradient Toggle (#36280)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-04 12:31:44 -08:00
Evan Rusackas
e1a8886d32 chore(deps): Remove unused direct dependency geostyler-qgis-parser (#36413)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-04 12:31:21 -08:00
dependabot[bot]
23b61b080e chore(deps): bump actions/checkout from 5 to 6 (#36219)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 12:02:43 -08:00
dependabot[bot]
2f14c6cd69 chore(deps): bump jws from 3.2.2 to 3.2.3 in /superset-websocket/utils/client-ws-app (#36426)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 12:01:24 -08:00
dependabot[bot]
964c16f1a4 chore(deps): bump jws from 4.0.0 to 4.0.1 in /superset-frontend (#36427)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 12:01:03 -08:00
dependabot[bot]
b6f1b4db2f chore(deps): bump jws from 3.2.2 to 3.2.3 in /superset-websocket (#36428)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 12:00:44 -08:00
Beto Dealmeida
482c674a0f chore: improve types (#36367) 2025-12-04 13:51:35 -05:00
Beto Dealmeida
16e6452b8c feat: Explorable protocol (#36245) 2025-12-04 13:18:34 -05:00
Elizabeth Thompson
c36ac53445 fix(reports): simplify logging to focus on timing metrics (#36227)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Vitor Avila <vitorfragadeavila@gmail.com>
2025-12-04 10:00:17 -08:00
Edison Liem
eabb5bdf7d feat(dashboard): implement boolean conditional formatting (#36338)
Co-authored-by: Morris <morrisho215215@gmail.com>
2025-12-04 09:53:49 -08:00
dependabot[bot]
e5da6d3183 chore(deps-dev): bump prettier from 3.7.3 to 3.7.4 in /docs (#36394)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-04 09:52:57 -08:00
Sam Firke
3345eb32c5 fix(heatmap): y-axis sorts in order (#36302)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-04 09:52:10 -08:00
Gabriel Torres Ruiz
1d8d30e5bb fix(echarts): pass vizType to enable theme overrides in all chart types (#36389) 2025-12-04 09:51:40 -08:00
Antonio Rivero
4a249a0745 fix(dashboards): Use same decorators as FAB (#36423) 2025-12-04 16:32:10 +01:00
Declan Zhao
d121cfdbda feat(prune_logs): add optional max_rows_per_run param (#36313) 2025-12-04 10:15:10 -03:00
dependabot[bot]
3eec441abe chore(deps-dev): bump prettier from 3.6.2 to 3.7.4 in /superset-websocket (#36391)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 15:27:53 -08:00
dependabot[bot]
22c061c06c chore(deps-dev): bump typescript-eslint from 8.48.0 to 8.48.1 in /superset-websocket (#36395)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 15:26:34 -08:00
dependabot[bot]
7f85d92b85 chore(deps-dev): bump typescript-eslint from 8.48.0 to 8.48.1 in /docs (#36399)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 15:12:57 -08:00
dependabot[bot]
dc98a3b397 chore(deps): bump caniuse-lite from 1.0.30001757 to 1.0.30001759 in /docs (#36397)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 15:12:38 -08:00
Beto Dealmeida
c458f99dd4 chore: cleanup ssh tunnel (#34388) 2025-12-03 14:26:35 -05:00
dependabot[bot]
70aec7fa76 chore(deps): bump express from 4.21.2 to 4.22.0 in /superset-frontend (#36361)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-03 10:30:43 -08:00
Amin Ghadersohi
5c91ab91fb feat(mcp): add tool tags for Tool Search optimization (#36405) 2025-12-03 18:07:22 +01:00
Felipe López
62d86aba14 fix(SQLLab): most recent queries at the top in Query History without refreshing the page (#36359) 2025-12-03 16:48:34 +01:00
Mehmet Salih Yavuz
b40467c7e2 fix(SaveModal): reset chart state when saving and going to a dashboard (#36402) 2025-12-03 17:30:08 +02:00
dependabot[bot]
f955f0d133 chore(deps): bump express from 5.1.0 to 5.2.1 in /superset-websocket/utils/client-ws-app (#36373)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 15:21:58 -08:00
dependabot[bot]
a8111de3ef chore(deps-dev): bump ts-jest from 29.4.5 to 29.4.6 in /superset-websocket (#36372)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 15:02:04 -08:00
dependabot[bot]
9800fb7702 chore(deps): bump hot-shots from 11.2.0 to 11.3.0 in /superset-websocket (#36352)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 15:00:52 -08:00
dependabot[bot]
17027ff5ca chore(deps): bump express from 5.1.0 to 5.2.0 in /superset-websocket/utils/client-ws-app (#36366)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 15:00:25 -08:00
dependabot[bot]
9c963b50e6 chore(deps): bump express from 4.21.2 to 4.22.0 in /docs (#36362)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-02 14:55:09 -08:00
Joe Li
bf5de3cb50 fix(DatasourceControl): eliminate test flakiness and async race conditions (#35993)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-02 13:57:06 -08:00
Amin Ghadersohi
2c6bed27aa refactor(mcp): use dynamic APP_NAME instead of hardcoded Superset branding (#36371) 2025-12-02 11:33:10 -08:00
Beto Dealmeida
d05ab91d11 fix: is_column_reference check (#36382) 2025-12-02 14:16:48 -05:00
Viktor Kolev
7748b60ff5 chore(docs): Fix typo in FEATURE_FLAGS.md (#36364) 2025-12-02 10:59:57 -08:00
Beto Dealmeida
e4cb84bc02 feat: DB2 dialect for sqlglot (#36365) 2025-12-02 12:19:52 -05:00
Michael S. Molina
005e4e3ea8 chore: Implement additional SQL Lab core APIs (#36331) 2025-12-02 09:04:59 -05:00
Michael S. Molina
5e3ff0787b docs(extensions): Add community extensions registry page (#36312) 2025-12-02 09:03:04 -05:00
Enzo Martellucci
51798edb23 feat(alert-report-modal): Use extensions registry for DateFilterControl in AlertReportModal (#36376) 2025-12-02 13:03:15 +01:00
Kaito Watanabe
6e0960c3f5 feat: show search filtered total (#36083) 2025-12-01 22:29:23 +01:00
Michael S. Molina
db995ad5bf chore: Adds non-interactive mode to superset-extensions init command (#36308) 2025-12-01 15:45:49 -05:00
Michael S. Molina
b12f5f8394 fix: CI failures caused by a ruff version mismatch (#36358) 2025-12-01 15:35:22 -05:00
dependabot[bot]
92986c2ecc chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /superset-frontend (#36299)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 11:07:25 -08:00
Phin Jensen
d4206de8e0 docs: fix formatting of BaseCache import statement in docs (#36278) 2025-12-01 11:04:32 -08:00
dependabot[bot]
4935938bb1 chore(deps-dev): bump prettier from 3.6.2 to 3.7.3 in /docs (#36353)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 11:02:46 -08:00
dependabot[bot]
2b6b4e363b chore(deps): bump cookie from 1.1.0 to 1.1.1 in /superset-websocket (#36303)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 10:34:00 -08:00
dependabot[bot]
de69377b04 chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /docs (#36300)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-01 10:31:59 -08:00
Michael S. Molina
fd7ce4976a docs: Improve the Quick Start to make it more AI-friendly (#36307) 2025-12-01 12:10:08 -05:00
Beto Dealmeida
775d1ba061 fix: normalize totals cache keys for async hits (#36274) 2025-12-01 11:11:10 -05:00
Vitor Avila
9fc7a83320 fix: Do no aggregate results for CSV downloads from AG Grid raw records table (#36247) 2025-12-01 12:52:41 -03:00
Mehmet Salih Yavuz
a754258fad fix(timeshift): Add a more reliable strategy for correct temporal col (#36309)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-01 17:24:05 +03:00
Gabriel Torres Ruiz
a745fd49fa fix(deckgl): use DatasourceType enum in polygon transformProps test + some TS issues (#36336) 2025-11-30 18:56:07 +01:00
om pharate
01f032017f feat(controlPanel): add integer validation for rows per page setting (#36289) 2025-11-28 12:29:17 -08:00
OrhanBC
d5c5dbb3bf refactor(word-cloud): convert rotation and color controls to React components (POC) (#36275)
Co-authored-by: BrandanBurgess <brandanbb13@gmail.com>
2025-11-28 12:28:31 -08:00
PolinaFam
c9a7a85159 feat(chart): add axes settings for trendline (#36002) 2025-11-28 12:22:57 -08:00
Damian Pendrak
de7f41a888 fix(deckgl): polygon elevation fixed value (#35266) 2025-11-28 12:22:38 -08:00
Mehmet Salih Yavuz
a0e63faf62 fix: add a fallback to chart state callback (#36327) 2025-11-28 20:44:41 +03:00
Alexandru Soare
341ae994c5 feat(embed): get charts payload (#36237)
Co-authored-by: Vitor Avila <vitorfragadeavila@gmail.com>
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
2025-11-28 17:26:30 +03:00
dependabot[bot]
81e561bdc9 chore(deps): bump swagger-ui-react from 5.30.2 to 5.30.3 in /docs (#36284)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 15:16:27 -08:00
dependabot[bot]
170d1b92eb chore(deps): bump cookie from 1.0.2 to 1.1.0 in /superset-websocket (#36283)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 15:16:08 -08:00
dependabot[bot]
2db0107d12 chore(deps): bump caniuse-lite from 1.0.30001756 to 1.0.30001757 in /docs (#36256)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 14:59:21 -08:00
dependabot[bot]
df0211fe29 chore(deps-dev): bump typescript-eslint from 8.47.0 to 8.48.0 in /docs (#36254)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 14:58:47 -08:00
dependabot[bot]
1bf1890084 chore(deps-dev): bump typescript-eslint from 8.46.2 to 8.48.0 in /superset-websocket (#36252)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-26 14:58:00 -08:00
Amin Ghadersohi
2af5a5adb0 fix(mcp): access wrapped function in dataset tool tests (#36295) 2025-11-26 22:49:42 +01:00
Michael S. Molina
fe21485065 docs: Reorganizes the extensions documentation (#36298)
Co-authored-by: Evan Rusackas <evan@preset.io>
2025-11-26 16:48:36 -05:00
Amin Ghadersohi
18ab5382b1 feat(mcp): implement selective column serialization for list tools (#36035) 2025-11-25 17:31:51 -08:00
Amin Ghadersohi
f98939103b fix(mcp-service): improve MCP tool parameter clarity and validation (#36137)
Co-authored-by: Rafael Benitez <rafael.benitez@contractors.food52.com>
2025-11-25 16:34:43 -08:00
Amin Ghadersohi
ab36bd3965 build: Add pytest-asyncio to enable async MCP service tests (#36251) 2025-11-25 15:47:48 -08:00
Yousuf Ansari
fb2a8ac9a2 docs: clarify duplicate report deliveries for alerts & reports (#36264)
Co-authored-by: Evan Rusackas <evan@preset.io>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-25 14:44:51 -08:00
Amin Ghadersohi
06a8f4df02 feat(datasets): add datetime format detection to dataset columns (#36150)
Co-authored-by: Claude Code <claude@anthropic.com>
2025-11-25 14:25:24 -08:00
Amin Ghadersohi
cf88551a56 fix(mcp): Allow MCP tools to accept string or object request formats (#36271) 2025-11-25 14:46:44 -05:00
Beto Dealmeida
aca18fff99 fix: double computation of contribution_totals (#36226) 2025-11-25 14:35:55 -05:00
Ville Brofeldt
a4860075d2 feat: add mcp abstractions to core (#36151) 2025-11-25 08:23:59 -10:00
Daniel Vaz Gaspar
bae716fa83 fix(log): remove unwanted info from logs REST API (#36269) 2025-11-25 18:10:29 +00:00
Beto Dealmeida
0c87034b17 fix: cache key generation (#36225) 2025-11-25 12:50:00 -05:00
Amin Ghadersohi
8d5d71199a feat(mcp): Add flexible input parsing to handle double-serialized requests (#36249) 2025-11-25 18:21:04 +01:00
Daniel Vaz Gaspar
cd36845d56 fix: remove unwanted info from tags REST API (#36266) 2025-11-25 16:22:31 +00:00
Antonio Rivero
c966dd4f9e feat(dashboards): Add config to filter implicit tags in list API (#36246) 2025-11-25 11:57:53 +01:00
Enzo Martellucci
062e4a2922 fix: Columns bleeding into other cells (#36134)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
Co-authored-by: Geidō <60598000+geido@users.noreply.github.com>
2025-11-25 11:09:13 +02:00
amaannawab923
186693b840 feat(ag-grid): add SQLGlot-based SQL escaping for where and having filter clauses (#36136) 2025-11-25 09:35:40 +02:00
Enzo Martellucci
ab8352ee66 fix: Table chart types headers are offset from the columns in the table (#36190)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2025-11-24 10:25:55 -08:00
JUST.in DO IT
bf2cef7d87 chore(sqllab): add logging for switching south panel tabs (#36168) 2025-11-24 10:23:55 -08:00
dependabot[bot]
a6b6eb4ab3 chore(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21 in /superset-websocket (#36231)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-24 10:21:17 -08:00
Enzo Martellucci
cac6ffcd3c fix: Extra controls width for Area Chart on dashboards (#36133)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2025-11-24 16:57:17 +02:00
Elizabeth Thompson
08c1d03479 fix(screenshots): Only cache thumbnails when image generation succeeds (#36126)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 17:11:20 -08:00
Beto Dealmeida
a2267d869b refactor: refactor get_query_result (#36057) 2025-11-21 18:14:52 -05:00
Beto Dealmeida
e303537e0c fix: adhoc column quoting (#36215) 2025-11-21 16:32:39 -05:00
Joe Li
a0c29cc260 test: fix flaky MySQL integration test in test_update_v1_response (#36176)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 13:29:47 -08:00
Joe Li
e7c54376e2 test(table): remove conditionals from TableChart tests (#36149)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 13:28:16 -08:00
Joe Li
9d40c24a16 refactor(datasets): add comprehensive unit tests for dataset API hooks and fix api guards (#36175)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-21 13:26:07 -08:00
dependabot[bot]
e6b258f418 chore(deps): bump http-errors from 2.0.0 to 2.0.1 in /superset-websocket/utils/client-ws-app (#36218)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-21 10:24:53 -08:00
dependabot[bot]
02bbc7c7de chore(deps-dev): bump eslint from 9.39.0 to 9.39.1 in /superset-websocket (#36217)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-21 10:24:38 -08:00
Daniel Vaz Gaspar
348b19cb4c fix(sqllab): validate results backend writes and enhance 410 diagnostics (#36222) 2025-11-21 15:05:48 +00:00
Joe Li
979d385eea fix: recompile dependencies with linux and update generate dependency script (#36194) 2025-11-20 13:42:42 -05:00
Alexandru Soare
71c015c579 feat(Tabs): Rearange tabs when editing dashboard (#35156) 2025-11-20 10:37:37 -08:00
Maxime Beauchemin
7805666103 perf(docker): exclude unnecessary directories from Flask reloader watch (#36143)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-20 10:35:42 -08:00
dependabot[bot]
be0283b9f2 chore(deps): bump antd from 5.28.1 to 5.29.1 in /docs (#36180)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 10:34:54 -08:00
dependabot[bot]
e68150c3ce chore(deps-dev): bump @types/node from 24.10.0 to 24.10.1 in /superset-websocket (#36198)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 10:27:04 -08:00
Amin Ghadersohi
92d8139136 fix(security): enable AUTH_RATE_LIMITED to work correctly (#36195)
Co-authored-by: Joe Li <joe@preset.io>
2025-11-20 10:23:49 -08:00
amaannawab923
35f156a1e1 feat(streaming): Streaming CSV uploads for over 100k records for constant memory usage (#35478) 2025-11-20 19:16:59 +02:00
Enzo Martellucci
6d359161bb fix(dashboard): adjust vertical spacing for numerical range filter to prevent overlaps (#36167) 2025-11-20 15:20:52 +02:00
Beto Dealmeida
53207302f9 chore: bump duckdb et al. (#36171) 2025-11-19 15:17:58 -05:00
dependabot[bot]
05d10d8e77 chore(deps-dev): bump @typescript-eslint/parser from 8.46.2 to 8.46.3 in /superset-websocket (#35973)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 10:47:02 -08:00
dependabot[bot]
f5b79c3623 chore(deps-dev): bump eslint from 9.39.0 to 9.39.1 in /docs (#35976)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 10:46:51 -08:00
dependabot[bot]
9f55287672 chore(deps): bump caniuse-lite from 1.0.30001754 to 1.0.30001756 in /docs (#36179)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 10:23:22 -08:00
dependabot[bot]
69fc7f6852 chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 in /docs (#36178)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 10:22:59 -08:00
Evan Rusackas
cdbd5bf4f9 chore(docs): config Kapa to use logo from the repo (#36177) 2025-11-19 10:21:49 -08:00
dependabot[bot]
d0bf1cca60 chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 in /superset-embedded-sdk (#36172)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 10:18:37 -08:00
Amin Ghadersohi
66afdfd119 docs(mcp): add comprehensive architecture, security, and production deployment documentation (#36017) 2025-11-19 16:41:56 +01:00
Richard Fogaca Nienkotter
4582f0e8d2 fix(dashboard): ensure charts re-render when visibility state changes (#36011) 2025-11-19 14:26:34 +01:00
SBIN2010
21f85a4145 feat(tree chart): add initial tree depth to tree chart (#35425) 2025-11-18 09:40:51 -08:00
Enzo Martellucci
53b9045943 chore(DatabaseModal): simplify collapsible logic for extra extension section (#36118) 2025-11-18 15:55:16 +01:00
Enzo Martellucci
a268232ed6 fix(datasets): prevent viewport overflow in dataset creation page (#36166) 2025-11-18 15:54:59 +01:00
SBIN2010
43e9e1ec36 fix: role list edit modal height (#36123) 2025-11-18 13:19:26 +01:00
Richard Fogaca Nienkotter
80ec241108 feat(dashboard): "embed code" option on dashboard share tab (#33163)
Co-authored-by: richardfn <richard.fogaca@appsilon.com>
Co-authored-by: Enzo Martellucci <52219496+EnxDev@users.noreply.github.com>
2025-11-18 12:48:43 +01:00
Richard Fogaca Nienkotter
8315804c85 fix(cache): apply dashboard filters to non-legacy visualizations (#36109) 2025-11-18 10:03:09 +01:00
Richard Fogaca Nienkotter
a9fd600c52 fix: 'save and go to dashboard' option was disabled after changing the chart type (#36122) 2025-11-18 09:59:24 +01:00
dependabot[bot]
b5cac47ba7 chore(deps-dev): bump @eslint/js from 9.39.0 to 9.39.1 in /docs (#35975)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 16:08:09 -08:00
dependabot[bot]
d91d81b5df chore(deps-dev): bump typescript-eslint from 8.46.2 to 8.46.4 in /docs (#36066)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 16:07:37 -08:00
dependabot[bot]
225886e859 chore(deps-dev): bump @typescript-eslint/parser from 8.46.2 to 8.46.4 in /docs (#36064)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 14:49:28 -08:00
dependabot[bot]
cc1d22012c chore(deps): bump antd from 5.28.0 to 5.28.1 in /docs (#36065)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 14:49:09 -08:00
PolinaFam
fb325a8f24 fix(translations): Fix Russian translations for EmptyState (#34055)
Co-authored-by: Polina Fam <pfam@ptsecurity.com>
2025-11-18 01:26:05 +03:00
dependabot[bot]
f8943c17c2 chore(deps): bump js-yaml in /superset-websocket (#36142)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-17 14:25:25 -08:00
Yuvraj Singh Chauhan
28bdec2c79 fix(tags): ensure tag creation is compatible with MySQL by avoiding Markup objects (#36075)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-17 14:05:42 -08:00
Aleksey Karpov
6fc7af5ba8 build: update Dockerfile to 3.11.14-slim-trixie (#36047) 2025-11-17 13:51:06 -08:00
Beto Dealmeida
3b226038ba fix(datasets): prevent double time filter application in virtual datasets (#35890)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-17 16:47:10 -05:00
Gabriel Torres Ruiz
9d06a5888f fix(csv-upload): log detailed errors during chunk concatenation for debugging (#36108) 2025-11-17 12:05:12 -08:00
Beto Dealmeida
fb7d0e0e3d chore: annotate important types (#36034)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-17 14:41:20 -05:00
Gabriel Torres Ruiz
282f4e5de2 feat(embedded): add setThemeMode API for dynamic theme switching (#36125) 2025-11-17 10:30:02 -08:00
Gabriel Torres Ruiz
9bff64824b fix(navbar): some styling + components inconsistencies (#36120) 2025-11-17 10:29:06 -08:00
Kamil Gabryjelski
6723a58780 perf: Fix dashboard performance issues (#36119) 2025-11-17 10:28:53 -08:00
Amin Ghadersohi
519990e2fb fix: pin setuptools <81 to prevent pkg_resources removal (#36104) 2025-11-17 10:21:27 -08:00
Yong Le He
fb8eb2a5c3 fix(dashboard): ensure world map chart uses correct country code format in crossfilter (#35919) 2025-11-17 09:14:04 -08:00
Enzo Martellucci
962faa2196 fix: Use total count to filter datasets (#36135)
Co-authored-by: Diego Pucci <diegopucci.me@gmail.com>
2025-11-17 17:01:54 +01:00
Amin Ghadersohi
dad469297c feat(mcp): add configurable branding for MCP service (#36033) 2025-11-17 14:16:25 +01:00
Levis Mbote
85413f2a65 fix: fix crossfilter persisting after removal (#35998) 2025-11-17 12:07:12 +01:00
Amin Ghadersohi
9605a4a9cb fix(mcp-service): ensure Flask app context in auth hook and resolve Pydantic warnings (#36013) 2025-11-17 11:31:03 +01:00
Ville Brofeldt
c2baba50f9 chore: abstract models and daos into superset-core (#35259) 2025-11-14 17:00:44 -08:00
Janani Gurram
c955a5dc08 fix(histogram): add NULL handling for histogram (#35693)
Co-authored-by: Rachel Pan <r.pan@mail.utoronto.ca>
Co-authored-by: Rachel Pan <panrrachel@gmail.com>
Co-authored-by: Janani Gurram <68124448+JG-ctrl@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-14 11:54:13 -08:00
SBIN2010
e6a5616543 fix: opacity color formating (#36101) 2025-11-14 22:46:22 +03:00
Alex Yang
001b6cb801 feat: Floating Point Formatting for Scatter Point Chart (#35915)
Co-authored-by: Vincent <vincent.trung4@gmail.com>
2025-11-14 11:37:44 -08:00
Beto Dealmeida
f3e620cd0f fix: RLS in virtual datasets (#36061) 2025-11-14 14:21:09 -05:00
Enzo Martellucci
9ef87e75d5 fix(ace-editor-popover): main AntD popover closes when clicking autocomplete suggestions in Ace Editor (#35986) 2025-11-14 16:35:15 +01:00
Enzo Martellucci
f8933c2743 style(database-modal): vertically align the button and the InfoTooltip icon (#36087) 2025-11-14 15:45:41 +01:00
Daniel Vaz Gaspar
b051f779e6 chore: bump FAB to 5.0.2 (#36086) 2025-11-14 11:57:50 +00:00
Richard Fogaca Nienkotter
37d58a476c fix(chart): align legend with chart grid in List mode for Top/Bottom orientations (#36077) 2025-11-14 11:14:21 +01:00
Richard Fogaca Nienkotter
78f9debdd4 fix(dashboard): prevent tab content cutoff and excessive whitespace in empty tabs (#35834) 2025-11-13 22:33:43 +01:00
Mehmet Salih Yavuz
74a590cb76 fix(dashboard): refresh tabs as they load when dashboard is refreshed (#35265) 2025-11-13 22:14:01 +01:00
Richard Fogaca Nienkotter
4a04d46118 fix(explore): re-apply filters when 'Group remaining as Others' is enabled (#35937) 2025-11-13 22:06:33 +01:00
Richard Fogaca Nienkotter
467b008f36 fix: save button was enabled even no changes were made to the dashboard (#35817) 2025-11-13 22:01:33 +01:00
Vitor Avila
6701d0ae0c fix: Use singlestoredb dialect for sqlglot (#36096) 2025-11-13 16:10:55 -03:00
Gabriel Torres Ruiz
4515d18ddd fix(navbar): Minor fixes in navbar spacings (#36091) 2025-11-13 09:53:09 -08:00
Antonio Rivero
60f29ba6fb chore(logs): Add is_cached in sync AND async results (#36102) 2025-11-13 16:04:49 +01:00
Mehmet Salih Yavuz
306f4c14cf fix(sql): quote column names with spaces to prevent SQLGlot parsing errors (#35553) 2025-11-13 17:47:16 +03:00
Juan Manuel Cárdenas
310dcd7b94 chore: 🌐 Translations added to ES .po file (#30759) 2025-11-13 08:53:12 +03:00
Joe Li
008c7c6517 fix(table-chart): fix missing table header IDs (#35968)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-12 13:15:55 -08:00
Amin Ghadersohi
c244e7f847 fix(mcp): simplify health_check tool and refactor system utils (#36063) 2025-11-12 10:28:09 -08:00
Levis Mbote
bb2e2a5ed6 fix: fix tabs overflow in dashboards (#35984) 2025-11-12 19:35:29 +03:00
Richard Fogaca Nienkotter
a45c0528da fix(dashboard): dashboard filter was incorrectly showing as out of scope (#35886)
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
2025-11-12 17:24:04 +01:00
Mehmet Salih Yavuz
0b535b792e feat(frontend): add dataset cache clearing utilities and integration (#35264)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Geidō <60598000+geido@users.noreply.github.com>
2025-11-12 17:23:37 +03:00
Richard Fogaca Nienkotter
9fbfcf0ccd fix(sqllab): prevent unwanted tab switching when autocompleting table names on SQL Lab (#35992) 2025-11-12 10:48:48 +01:00
Richard Fogaca Nienkotter
d123249bd2 fix(dashboard): align filter bar elements vertically in horizontal mode (#36036) 2025-11-11 11:48:25 +03:00
Richard Fogaca Nienkotter
4376476ec4 fix: saved query preview modal not highlighting active rows (#35866) 2025-11-11 11:15:27 +03:00
Richard Fogaca Nienkotter
9be61a1245 fix(dashboard): prevent validation error in properties modal when ope… (#36045) 2025-11-11 11:09:07 +03:00
Mehmet Salih Yavuz
e2e831e322 fix(permalink): exclude edit mode from dashboard permalink (#35889) 2025-11-11 10:58:02 +03:00
Joe Li
21d585d586 fix(explore): show validation errors in View Query modal (#35969)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-10 14:47:52 -08:00
Joe Li
0a5144fc1d fix(tests): fix flakey tests with PropertiesModal.test.tsx, FiltersConfigModal.test.tsx and ChartList.listview.test.tsx (#36037)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-10 14:31:48 -08:00
Joe Li
64ca080bb8 feat(playwright): Remove Cypress auth tests in favor of Playwright auth tests (#35938)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-10 14:29:01 -08:00
Daniel Garcia Briseno
b85621e9a7 docs: Add custom chart plugin deployment instructions (#36028)
Co-authored-by: Daniel Garcia Briseno <daniel.garciabriseno@nasa.gov>
Co-authored-by: Joe Li <joe@preset.io>
2025-11-10 12:19:51 -08:00
dependabot[bot]
e915d7d1d0 chore(deps): bump min-document from 2.19.0 to 2.19.1 in /superset-frontend (#36046)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-10 12:18:36 -08:00
Richard Fogaca Nienkotter
ae63f64771 style(sqllab): restore Template Parameters modal styling (#35965) 2025-11-10 18:51:12 +03:00
Kamil Gabryjelski
63dfd95aa2 fix: Flakiness around scrolling during taking tiled screenshots with Playwright (#36051) 2025-11-10 12:57:28 +01:00
Mehmet Salih Yavuz
c9f65cf1c2 fix(date_parser): add check for time range timeshifts (#36039) 2025-11-10 13:46:03 +03:00
Elizabeth Thompson
c42e3c6837 fix(reports): improve error handling for report schedule execution (#35800)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-07 17:57:43 -08:00
Amin Ghadersohi
3167a0dbc0 chore(mcp-service): upgrade fastmcp from 2.10.6 to 2.13.0.2 (#36014) 2025-11-07 17:52:03 -08:00
Elizabeth Thompson
909bd877c9 fix(filters): preserve backend metric-based sorting (#35152)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-07 11:40:56 -08:00
Mehmet Salih Yavuz
4d0fdba97a fix(webpack): webpack refresh plugin (#36041) 2025-11-07 10:26:08 -08:00
Amin Ghadersohi
d2550a525b refactor(mcp): shorten tool name from get_superset_instance_info to get_instance_info (#36032) 2025-11-07 10:19:32 -08:00
Vedant Prajapati
258512fef2 fix(echarts): Series style hidden for line charts (#33677)
Co-authored-by: Vedant Prajapati <vedantprajapati@geotab.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-07 20:28:01 +03:00
Mehmet Salih Yavuz
9546ee37e5 chore(superset-core): move ui to new core (#35308) 2025-11-07 13:53:06 -03:00
Kamil Gabryjelski
728bc2c632 fix: Ensure that Playwright tile height is always positive (#36027) 2025-11-07 13:39:05 +01:00
amaannawab923
0307c71945 fix(Context-Menu): Fixing Context Menu for Table Chart with Html Content (#33791) 2025-11-07 10:09:25 +03:00
Michael S. Molina
208b1f7fa3 docs: Reorganize and improve developer portal documentation (#36005) 2025-11-06 16:50:31 -03:00
dependabot[bot]
2f2128ac48 chore(deps): bump caniuse-lite from 1.0.30001753 to 1.0.30001754 in /docs (#36018)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-06 10:20:37 -08:00
Gabriel Torres Ruiz
c11be72ead fix(UI): spacings + UI fixes (#36010) 2025-11-06 10:19:07 -08:00
Amin Ghadersohi
f5f5913a29 test: revert unrelated flaky test fix from MCP PR (#36015) 2025-11-06 09:41:27 -08:00
Mehmet Salih Yavuz
af37e12de4 fix(SelectFilterPlugin): clear all clears all filters including dependent ones (#35303) 2025-11-06 18:18:42 +02:00
Evan Rusackas
0827ff7687 feat(build): Migrate webpack to SWC for ~70%+ faster builds (#35946)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-06 08:14:52 -08:00
Antonio Rivero
3765c31163 chore(logs): Use correct log level and remove duplicates for get_query (#36023) 2025-11-06 16:18:39 +01:00
Enzo Martellucci
84a1abd357 fix(ui): bump AntD to 5.26.0 to fix Splitter drag menu issue (#35782) 2025-11-06 07:43:28 +01:00
ethan-l-geotab
14f20e644e fix(chart list): Facepile shows correct users when saving chart properties (#33392) 2025-11-05 21:56:58 -08:00
Enzo Martellucci
1f960d5761 fix(DatabaseModal): prevent errors when pasting text into supported database select (#35916) 2025-11-05 20:38:41 +01:00
dependabot[bot]
32099d8f49 chore(deps): bump swagger-ui-react from 5.30.1 to 5.30.2 in /docs (#35994)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-05 10:21:25 -08:00
Enzo Martellucci
392b880b52 fix(view-in-sqllab): unable to open virtual dataset after discarding chart edits (#35931) 2025-11-05 17:03:40 +01:00
Mehmet Salih Yavuz
3f49938b79 fix(explore): Overwriting a chart updates the form_data_key (#35888) 2025-11-05 17:44:53 +02:00
Antonio Rivero
a1d4dff99d feat(logs): Add is_cached as part of ChartDataRestApi.data actions (#36001) 2025-11-05 15:49:56 +01:00
Mehmet Salih Yavuz
04231c86db fix(TimeTable): Match calculations between filtered and non filtered states (#35619) 2025-11-05 10:43:05 +03:00
Mehmet Salih Yavuz
7265567561 fix(DatasourceEditor): preserve calculated column order when editing sql (#35790) 2025-11-04 21:22:39 +03:00
Evan Rusackas
0d70373d95 feat(npm): New npm run clear-npm script to nuke node_modules faster. (#35923) 2025-11-03 20:16:57 -08:00
Rafael Benitez
53687ae659 fix(dashboard): fix dataset search in filter config modal (#35488)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-03 13:29:39 -08:00
Rafael Benitez
46db8b7803 fix(dataset): sync columns checkbox not responding to clicks in virtual dataset modal (#35650) 2025-11-03 10:47:23 -08:00
dependabot[bot]
7cd04c088c chore(deps-dev): bump globals from 16.4.0 to 16.5.0 in /superset-websocket (#35948)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 10:45:26 -08:00
dependabot[bot]
51b4df7a1f chore(deps-dev): bump globals from 16.4.0 to 16.5.0 in /docs (#35949)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 10:44:54 -08:00
dependabot[bot]
b92b725fe2 chore(deps-dev): bump eslint from 9.38.0 to 9.39.0 in /docs (#35951)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 10:44:37 -08:00
dependabot[bot]
1c1d1ddbec chore(deps): bump caniuse-lite from 1.0.30001752 to 1.0.30001753 in /docs (#35957)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Evan Rusackas <evan@preset.io>
2025-11-03 10:44:23 -08:00
Joe Li
5224347c39 test(useThemeMenuItems): fix race conditions by awaiting all userEvent calls (#35918)
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-03 10:28:12 -08:00
Richard Fogaca Nienkotter
27011d0239 fix(sqllab): align refresh buttons with select input fields (#35917) 2025-11-03 10:26:04 -08:00
Akshat Sinha
bae2c90bae docs: correct spelling typos in project codebase (#35935) 2025-11-03 12:09:58 -05:00
dependabot[bot]
ae1f0bb107 chore(deps-dev): bump @types/node from 24.9.2 to 24.10.0 in /superset-websocket (#35952)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 09:07:06 -08:00
dependabot[bot]
405ed2e736 chore(deps-dev): bump eslint from 9.38.0 to 9.39.0 in /superset-websocket (#35953)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 09:04:40 -08:00
dependabot[bot]
17299e469a chore(deps-dev): bump @eslint/js from 9.38.0 to 9.39.0 in /docs (#35954)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 09:04:24 -08:00
dependabot[bot]
3c43ce4e06 chore(deps): bump antd from 5.27.6 to 5.28.0 in /docs (#35956)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 09:03:18 -08:00
dependabot[bot]
00a6772507 chore(deps): bump swagger-ui-react from 5.30.0 to 5.30.1 in /docs (#35955)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-03 09:03:00 -08:00
Joe Li
be3690c22b fix(explore): formatting the SQL in "View Query" pop-up doesn't format (#35898)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-31 11:09:51 -07:00
dependabot[bot]
d1f9c77afd chore(deps): bump caniuse-lite from 1.0.30001751 to 1.0.30001752 in /docs (#35924)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 11:08:33 -07:00
Amin Ghadersohi
fee4e7d8e2 feat(mcp): MCP service implementation (PRs 3-9 consolidated) (#35877) 2025-10-31 08:33:21 -07:00
Yuvraj Singh Chauhan
30d584afd1 fix(db2): update time grain expressions for DAY to use DATE function (#35848) 2025-10-31 10:25:42 -03:00
Vitor Avila
0a95f74f11 chore: Docs and config improvements for Docker setup (#35896) 2025-10-31 02:42:19 -03:00
Gabriel Torres Ruiz
6e27bee2ca refactor(explore): improve focus management in adhoc filter editor (#35801) 2025-10-30 23:04:25 +03:00
Ville Brofeldt
f6f15f58ee fix: set pandas 2.1 as requirement (#35912) 2025-10-30 12:33:27 -07:00
Amin Ghadersohi
6f50ddf710 refactor(explore): extract session ID retrieval into overridable method (#35779) 2025-10-30 11:30:15 -07:00
Beto Dealmeida
5fc934d859 chore: bump shillelagh to 1.4.3 (#35895) 2025-10-30 11:05:06 -07:00
Evan Rusackas
8ccdf3b32b feat(frontend): Replace ESLint with OXC hybrid linting architecture (#35506)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-30 09:26:21 -07:00
dependabot[bot]
a5eb02d178 chore(deps): bump use-immer from 0.9.0 to 0.11.0 in /superset-frontend (#35789)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-29 13:41:53 -07:00
SBIN2010
dd857a2c7a fix: displaying cell bars in table (#35885) 2025-10-29 10:29:22 -07:00
dependabot[bot]
2013963e0b chore(deps-dev): bump @types/node from 24.9.1 to 24.9.2 in /superset-websocket (#35879)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-29 10:26:41 -07:00
SBIN2010
48ee0821d3 feat: show total in waterfall chart (#35876) 2025-10-29 10:25:56 -07:00
Alexandru Soare
99b61143f6 feat(Chart): Save Chart State globally (#35343) 2025-10-29 15:54:07 +02:00
Joe Li
2db19008fb test(dashboard): strengthen fontWeightStrong assertion for markdown bold (#35872)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-28 17:23:02 -07:00
SBIN2010
514d56d1ae feat: conditional formatting improvements add flag toAllRow and toTextColor in tables (#34762) 2025-10-28 16:40:40 -07:00
Amin Ghadersohi
5c57c9c0b2 fix: add utc=True to pd.to_datetime for timezone-aware datetimes (#35587) 2025-10-28 16:12:28 -07:00
Amin Ghadersohi
7733265fa2 fix(mcp): remove hardcoded admin username fallbacks (#35875) 2025-10-28 15:45:40 -07:00
Elizabeth Thompson
61c68f7b8f fix(reports): Add celery task execution ID to email notification logs (#35807)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-28 15:31:41 -07:00
Mehmet Salih Yavuz
5218b4eea2 fix(echarts): fix time shift color matching functionality (#35826)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-28 23:36:50 +03:00
Amin Ghadersohi
e1455057e7 feat(mcp): PR2 - Add chart listing and info tools with core infrastructure (#35835) 2025-10-28 10:39:40 -07:00
dependabot[bot]
7a759c903b chore(deps): bump swagger-ui-react from 5.29.5 to 5.30.0 in /docs (#35865)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-28 10:28:38 -07:00
innovark
61758c07d2 fix: update Russian translations (#35750) 2025-10-28 10:22:34 -07:00
Joe Li
bf830b2dd5 fix(theme): add fontWeightStrong to allowedAntdTokens to fix bold markdown rendering (#35821)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-28 09:26:05 -07:00
Martyn Gigg
6704c0aaec fix(sqllab): Fix CSV export button href in SQL Lab when application root is defined (#35118) 2025-10-27 14:29:30 -07:00
Mehmet Salih Yavuz
6e60a00d69 fix(SqlLab): South pane visual changes (#35601) 2025-10-27 22:07:06 +03:00
ngokturkkarli
0bf34d4d6f fix(native-filters): prevent circular dependencies and improve dependency handling (#35317) 2025-10-27 15:44:14 +02:00
Levis Mbote
19473af401 fix(database-modal): fix issue where commas could not be typed into DB configuration. (#35289) 2025-10-27 16:39:51 +03:00
Daniel Vaz Gaspar
51aad52e6c fix: unpin holidays and prophet (#35771)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-27 10:03:16 +00:00
Ignacio Van Droogenbroeck
3d2ed363aa fix(docs): Update Arc database connector documentation (#35805) 2025-10-25 17:41:09 -04:00
Amin Ghadersohi
cc6a5dc29a feat(mcp): PR1 - Add MCP service scaffold for Apache Superset (#35163) 2025-10-24 16:59:23 -07:00
Elizabeth Thompson
7c9720e22b fix(dashboard): handle invalid thumbnail BytesIO objects gracefully (#35808)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-24 11:38:35 -07:00
Marcos Amorim
c3b8c96db6 fix(alerts): improve Slack API rate limiting for large workspaces (#35622) 2025-10-24 10:02:41 -07:00
Joe Li
93cb60b24e docs(db_engine_specs): restructure feature table for GitHub rendering (#35809)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-23 13:47:35 -04:00
Gabriel Torres Ruiz
5e4a80e5d0 fix(ag-grid): fix conditional formatting theme colors and module extensibility (#35605) 2025-10-22 18:39:00 -07:00
Joe Li
79918a7939 fix(frontend): resolve race condition in DatasetUsageTab pagination s… (#35691)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-22 15:42:04 -07:00
Joe Li
d09421230b test(dashboard): eliminate race condition in FiltersConfigModal test (#35717)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-22 14:56:17 -07:00
Richard Fogaca Nienkotter
1234533c67 fix: edit dataset modal visual fixes (#35799) 2025-10-22 22:43:13 +03:00
Mehmet Salih Yavuz
7f0c0aea94 fix(ThemeController): replace fetch with SupersetClient for proper auth (#35794) 2025-10-22 19:54:28 +03:00
Fabian Halkivaha
d9dcbb68b7 chore(docs): use native docusauros admonition notation (#35791) 2025-10-22 11:39:52 -04:00
Mehmet Salih Yavuz
98fba1eefe fix(security): Add active property to guest user (#35454) 2025-10-22 12:51:19 +03:00
Geidō
bad03b1e76 fix(Actions): Improper spacing (#35724) 2025-10-21 20:10:00 +02:00
Geidō
fcfafebb29 fix(Themes): Local label inconsistent behaviors (#35663) 2025-10-21 20:09:33 +02:00
dependabot[bot]
47e82b02ed chore(deps-dev): bump ts-jest from 29.4.0 to 29.4.5 in /superset-frontend (#35732)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 10:54:09 -07:00
dependabot[bot]
a463d66c80 chore(deps-dev): bump typescript-eslint from 8.46.1 to 8.46.2 in /superset-websocket (#35757)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 10:53:02 -07:00
Michael S. Molina
337da13ba7 fix: Changes ResultSet to include sqlEditorImmutableId when fetching results (#35773) 2025-10-21 14:24:39 -03:00
dependabot[bot]
4a3453999a chore(deps-dev): bump eslint from 9.37.0 to 9.38.0 in /docs (#35727)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 10:21:37 -07:00
SkinnyPigeon
58758de93d feat(reports): allow custom na values (#35481)
Co-authored-by: bito-code-review[bot] <188872107+bito-code-review[bot]@users.noreply.github.com>
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2025-10-21 13:05:57 -04:00
dependabot[bot]
b4a8acc584 chore(deps-dev): bump @babel/compat-data from 7.28.0 to 7.28.4 in /superset-frontend (#35730)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:57:51 -07:00
dependabot[bot]
08f89690e9 chore(deps-dev): bump html-webpack-plugin from 5.6.3 to 5.6.4 in /superset-frontend (#35755)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:56:55 -07:00
dependabot[bot]
f02899d38d chore(deps-dev): bump @types/node from 24.8.1 to 24.9.1 in /superset-websocket (#35761)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:56:13 -07:00
dependabot[bot]
86583f1121 chore(deps-dev): bump @typescript-eslint/parser from 8.46.1 to 8.46.2 in /superset-websocket (#35759)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:55:05 -07:00
dependabot[bot]
26cbd71099 chore(deps-dev): bump prettier-plugin-packagejson from 2.5.8 to 2.5.19 in /superset-frontend (#35760)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:49:49 -07:00
dependabot[bot]
500ce7a02a chore(deps): bump ace-builds from 1.43.3 to 1.43.4 in /superset-frontend (#35763)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:48:51 -07:00
dependabot[bot]
6d8ceed10e chore(deps-dev): bump typescript-eslint from 8.46.1 to 8.46.2 in /docs (#35764)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:46:51 -07:00
dependabot[bot]
68d65f727f chore(deps): bump antd from 5.27.5 to 5.27.6 in /docs (#35765)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-21 09:46:10 -07:00
Yuvraj Singh Chauhan
f165785003 docs: update links in CONTRIBUTING.md to point to the correct Developer Portal URLs (#35723) 2025-10-20 17:03:43 -07:00
dependabot[bot]
8e31c93119 chore(deps): bump @docusaurus/preset-classic from 3.9.1 to 3.9.2 in /docs (#35744)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 13:29:16 -07:00
dependabot[bot]
4974c08f7d chore(deps): bump @docusaurus/theme-mermaid from 3.9.1 to 3.9.2 in /docs (#35741)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 13:09:24 -07:00
Michael S. Molina
fa90ba976c fix: Extension events not fired in SQL Lab tabs (#35753) 2025-10-20 16:41:24 -03:00
dependabot[bot]
35c3d8dfbc chore(deps): bump @docusaurus/plugin-client-redirects from 3.9.1 to 3.9.2 in /docs (#35739)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 12:11:29 -07:00
dependabot[bot]
ee23815aff chore(deps): bump @docusaurus/core from 3.9.1 to 3.9.2 in /docs (#35738)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 11:39:53 -07:00
dependabot[bot]
7c946ae3db chore(deps-dev): bump @docusaurus/tsconfig from 3.9.1 to 3.9.2 in /docs (#35733)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 11:37:10 -07:00
dependabot[bot]
3926f5c55c chore(deps-dev): bump @babel/eslint-parser from 7.26.5 to 7.28.4 in /superset-frontend (#35746)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 11:35:48 -07:00
dependabot[bot]
fdc03d4bf3 chore(deps): update xss requirement from ^1.0.14 to ^1.0.15 in /superset-frontend/packages/superset-ui-core (#35747)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 11:35:10 -07:00
dependabot[bot]
24f0aed8a7 chore(deps): bump swagger-ui-react from 5.29.4 to 5.29.5 in /docs (#35734)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 10:54:06 -07:00
dependabot[bot]
00d2f577df chore(deps-dev): bump eslint from 9.37.0 to 9.38.0 in /superset-websocket (#35735)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 10:53:41 -07:00
dependabot[bot]
c35fc71bc5 chore(deps-dev): bump @eslint/js from 9.37.0 to 9.38.0 in /docs (#35736)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-20 10:53:02 -07:00
Elizabeth Thompson
1b6d57c3f3 test(tasks): Add tests for log_task_failure signal handler (#35721)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-20 09:23:18 -07:00
Erkka Tahvanainen
d089a96163 fix(playwright): Download dashboard correctly (#35484)
Co-authored-by: Erkka Tahvanainen <erkka.tahvanainen@confidently.fi>
2025-10-20 16:57:01 +02:00
Elizabeth Thompson
0b3fe3d60c test: add comprehensive unhappy path tests for export (#35718) 2025-10-17 16:41:00 -07:00
dependabot[bot]
0eeb184b6a chore(deps): bump @luma.gl/constants from 9.1.9 to 9.2.2 in /superset-frontend (#35696)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 13:28:25 -07:00
dependabot[bot]
8e7edce616 chore(deps-dev): bump @types/node from 24.6.2 to 24.8.1 in /superset-frontend (#35705)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 12:59:06 -07:00
dependabot[bot]
754201b3d0 chore(deps): bump dayjs from 1.11.13 to 1.11.18 in /superset-frontend (#35697)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 10:29:46 -07:00
dependabot[bot]
925401b4e1 chore(deps-dev): bump @types/node from 24.7.2 to 24.8.1 in /superset-websocket (#35698)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 10:29:13 -07:00
dependabot[bot]
8368ea4094 chore(deps-dev): bump eslint-plugin-prettier from 5.2.3 to 5.5.4 in /superset-frontend (#35700)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 10:28:45 -07:00
dependabot[bot]
e8a6fb24ae chore(deps): bump react-reverse-portal from 2.1.2 to 2.3.0 in /superset-frontend (#35706)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 10:27:41 -07:00
dependabot[bot]
311b7a72dc chore(deps-dev): bump copy-webpack-plugin from 13.0.0 to 13.0.1 in /superset-frontend (#35707)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 10:27:11 -07:00
dependabot[bot]
aa496def53 chore(deps-dev): bump @babel/cli from 7.27.2 to 7.28.3 in /superset-frontend (#35708)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 10:26:47 -07:00
dependabot[bot]
aea4375255 chore(deps): update @fontsource/fira-code requirement from ^5.2.6 to ^5.2.7 in /superset-frontend/packages/superset-ui-core (#35709)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-17 10:26:15 -07:00
yousoph
9ab0a0179d fix(charts): update axis title labels to sentence case (#35694)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-17 09:42:04 -07:00
Fabian Halkivaha
3db613dab5 chore(docs): switch to markdown headlines for available macros (#35685) 2025-10-17 10:16:49 -04:00
dependabot[bot]
de5ca79805 chore(deps): update chalk requirement from ^5.4.1 to ^5.6.2 in /superset-frontend/packages/generator-superset (#35391)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 14:08:40 -07:00
Sam Firke
aede3bb5ba fix(auth): redirect anonymous attempts to view dashboard with next (#35345) 2025-10-16 16:33:37 -04:00
dependabot[bot]
408f84aea6 chore(deps): update dompurify requirement from ^3.2.7 to ^3.3.0 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#35632)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 12:59:53 -07:00
dependabot[bot]
92c07aaf54 chore(deps-dev): bump @playwright/test from 1.55.0 to 1.56.0 in /superset-frontend (#35676)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 12:58:35 -07:00
Beto Dealmeida
f405174fcf fix(dataset): render default URL description properly in settings (#35669)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-16 14:27:24 -04:00
Richard Fogaca Nienkotter
8c125d2553 feat: use in deck.gl custom tooltip instead of SafeMarkdown (#35665) 2025-10-16 11:13:38 -07:00
dependabot[bot]
fb8fca4c64 chore(deps): bump antd from 5.27.4 to 5.27.5 in /docs (#35654)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 10:05:35 -07:00
dependabot[bot]
dc0c055518 chore(deps-dev): bump webpack from 5.102.0 to 5.102.1 in /superset-frontend (#35675)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 10:04:08 -07:00
dependabot[bot]
09349cb1e7 chore(deps): bump caniuse-lite from 1.0.30001750 to 1.0.30001751 in /docs (#35677)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 09:39:02 -07:00
dependabot[bot]
ca29adb0cb chore(deps): bump fuse.js from 7.0.0 to 7.1.0 in /superset-frontend (#35678)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-16 09:35:07 -07:00
sha174n
1617bbbe71 docs: Add Production Security Hardening Guide (#35190)
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com>
2025-10-15 18:18:39 -07:00
Gabriel Torres Ruiz
de1dd53186 fix(theme-crud): enable overwrite confirmation UI for theme imports (#35558) 2025-10-15 18:15:57 -07:00
Gabriel Torres Ruiz
58672dfab6 fix(table-chart): fix page size label visibility and improve header control wrapping (#35648) 2025-10-15 18:15:02 -07:00
Rafael Benitez
4b5629d1c8 fix(theme): align "Clear local theme" option with other theme menu items (#35651) 2025-10-15 18:14:20 -07:00
Joe Li
4ddc3f14ed refactor(frontend): convert DatasourceEditor tests to TypeScript (#35606)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-15 16:42:17 -07:00
dependabot[bot]
400a8aec89 chore(deps-dev): bump typescript-eslint from 8.46.0 to 8.46.1 in /superset-websocket (#35630)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-15 13:44:53 -07:00
Ville Brofeldt
51489a75ce chore: bump pretty-ms to 9.3.0 (#35667)
Co-authored-by: Ville Brofeldt <v_brofeldt@apple.com>
2025-10-15 12:25:34 -07:00
Quentin Leroy
09772eeda0 fix(config.py): reset HTML_SANITIZATION to True by default (#35603) 2025-10-15 12:03:51 -07:00
dependabot[bot]
78907d08cd chore(deps): bump caniuse-lite from 1.0.30001749 to 1.0.30001750 in /docs (#35614)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 16:58:39 -07:00
dependabot[bot]
d0a0d280a1 chore(deps-dev): bump ts-jest from 29.4.4 to 29.4.5 in /superset-websocket (#35615)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 16:58:10 -07:00
dependabot[bot]
5d77ed3677 chore(deps-dev): bump @types/node from 24.7.1 to 24.7.2 in /superset-websocket (#35616)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 16:57:43 -07:00
dependabot[bot]
f68ee6ba67 chore(deps): bump swagger-ui-react from 5.29.3 to 5.29.4 in /docs (#35617)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 16:57:12 -07:00
dependabot[bot]
a01560cfa1 chore(deps-dev): bump typescript-eslint from 8.46.0 to 8.46.1 in /docs (#35628)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 16:56:38 -07:00
dependabot[bot]
7e06ce8eeb chore(deps-dev): bump @typescript-eslint/parser from 8.46.0 to 8.46.1 in /superset-websocket (#35631)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-14 16:55:12 -07:00
Elizabeth Thompson
ccc0e3dbb2 fix: Log Celery task failures with a signal handler (#35595)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-14 13:01:29 -07:00
Ville Brofeldt
bd48e87eeb fix: no fs logging of extensions unless flag is set (#35612)
Co-authored-by: Ville Brofeldt <v_brofeldt@apple.com>
2025-10-14 12:11:43 -07:00
Gabriel Torres Ruiz
e6bd03fe98 fix(theming): solve modal dark theme issues + styling and code improvements (#35539) 2025-10-14 11:08:18 -07:00
Damian Pendrak
9252d835b8 fix(deckgl): scatterplot fix categorical color (#35537) 2025-10-14 11:07:57 -07:00
Joe Li
35b5f8dcdc test(frontend): remove 3 duplicate JSX test files (#35590)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-14 10:31:12 -07:00
Levis Mbote
97518544ee feat(dashboard): chart customization/dynamic group by in dashboards (#33831)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: amaannawab923 <amaannawab923@gmail.com>
2025-10-14 18:37:57 +03:00
Ignacio Van Droogenbroeck
1c934b474a docs: add documentation for Arc to Superset's supported databases (#35585) 2025-10-14 10:16:59 -04:00
Ville Brofeldt
9d1d396a9b fix: fix extension e2e flow (#35589)
Co-authored-by: Ville Brofeldt <v_brofeldt@apple.com>
2025-10-11 11:31:44 -07:00
innovark
c38ba1daa8 fix(d3-format): call setupFormatters synchronously to apply D3 format… (#35529) 2025-10-10 17:33:47 -07:00
dependabot[bot]
8727d321f3 chore(deps): bump github/codeql-action from 3 to 4 (#35568)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-10 17:26:36 -07:00
dependabot[bot]
9918f8868e chore(deps-dev): bump @types/node from 24.7.0 to 24.7.1 in /superset-websocket (#35597)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-10 15:32:31 -07:00
Elizabeth Thompson
3dcf85caef fix(export): replace iframe with fetch to avoid CSP frame-src violations (#35584)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-10 14:58:13 -07:00
Elizabeth Thompson
e437ae1f2f fix(alerts): log execution_id instead of report schedule name in query timing (#35592)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-10 11:13:10 -07:00
Luiz Otavio
17ebbdd966 fix(csv upload): Correctly casting to string numbers with floating points (e+) (#35586) 2025-10-10 11:01:03 -07:00
dependabot[bot]
de0bd37a66 chore(deps-dev): update jest requirement from ^30.0.5 to ^30.2.0 in /superset-frontend/plugins/plugin-chart-pivot-table (#35392)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-10 10:48:01 -07:00
Mehmet Salih Yavuz
412587ad41 fix(tables): Dark mode scrollbar styles for webkit (#35338) 2025-10-10 13:10:54 +03:00
dependabot[bot]
941907ed4e chore(deps-dev): update cross-env requirement from ^10.0.0 to ^10.1.0 in /superset-frontend/packages/generator-superset (#35393)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 16:40:48 -07:00
dependabot[bot]
91fbc64327 chore(deps): update dayjs requirement from ^1.11.13 to ^1.11.18 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#34965)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 13:54:24 -07:00
dependabot[bot]
79ff093b30 chore(deps-dev): bump @babel/plugin-transform-runtime from 7.27.1 to 7.28.3 in /superset-frontend (#35576)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 12:48:39 -07:00
dependabot[bot]
ff80d4f406 chore(deps-dev): update @babel/types requirement from ^7.28.0 to ^7.28.2 in /superset-frontend/plugins/plugin-chart-pivot-table (#34463)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 11:16:43 -07:00
dependabot[bot]
c846cd187c chore(deps): update @mapbox/tiny-sdf requirement from ^2.0.6 to ^2.0.7 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#34939)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 11:15:35 -07:00
dependabot[bot]
9a43a47e6a chore(deps-dev): update @babel/types requirement from ^7.28.0 to ^7.28.4 in /superset-frontend/plugins/plugin-chart-pivot-table (#35388)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 10:31:07 -07:00
dependabot[bot]
9f2fead651 chore(deps): update dompurify requirement from ^3.2.6 to ^3.2.7 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#35383)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 10:04:06 -07:00
Mehmet Salih Yavuz
5a15c632ad fix(Alerts): Correct icon sizes (#35572) 2025-10-09 19:33:14 +03:00
dependabot[bot]
3acc9aba8b chore(deps): bump less from 4.4.1 to 4.4.2 in /docs (#35577)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 09:19:28 -07:00
dependabot[bot]
8a61cdf4f2 chore(deps-dev): update fs-extra requirement from ^11.3.0 to ^11.3.2 in /superset-frontend/packages/generator-superset (#35396)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-09 09:17:59 -07:00
dependabot[bot]
ed47ceb1e4 chore(deps-dev): update jest requirement from ^30.0.5 to ^30.2.0 in /superset-frontend/plugins/plugin-chart-handlebars (#35397)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 22:17:52 -07:00
dependabot[bot]
4dbdb1811b chore(deps): update react requirement from ^19.1.1 to ^19.2.0 in /superset-frontend/plugins/legacy-plugin-chart-chord (#35429)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 22:07:02 -07:00
dependabot[bot]
d921f6d2b4 chore(deps): bump @docusaurus/preset-classic from 3.8.1 to 3.9.1 in /docs (#35442)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 21:50:54 -07:00
dependabot[bot]
9d3fab8e4d chore(deps): update ace-builds requirement from ^1.43.1 to ^1.43.3 in /superset-frontend/packages/superset-ui-core (#35400)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 18:18:05 -07:00
dependabot[bot]
a9630f3ec7 chore(deps-dev): bump @docusaurus/tsconfig from 3.8.1 to 3.9.1 in /docs (#35376)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 17:20:16 -07:00
dependabot[bot]
c2120f62cf chore(deps-dev): bump typescript from 5.7.3 to 5.9.3 in /superset-websocket (#35375)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 17:19:53 -07:00
dependabot[bot]
19cf645224 chore(deps): bump debug from 4.4.1 to 4.4.3 in /superset-websocket/utils/client-ws-app (#35363)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 17:19:33 -07:00
dependabot[bot]
6b1c058436 chore(deps): bump interweave from 13.1.0 to 13.1.1 in /superset-frontend (#35440)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 17:17:35 -07:00
dependabot[bot]
54b4056eb3 chore(deps-dev): bump typescript-eslint from 8.45.0 to 8.46.0 in /docs (#35545)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 17:15:27 -07:00
dependabot[bot]
82e4763588 chore(deps-dev): bump @typescript-eslint/parser from 8.45.0 to 8.46.0 in /docs (#35548)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:58:03 -07:00
dependabot[bot]
831a9a8a57 chore(deps): bump ioredis from 5.8.0 to 5.8.1 in /superset-websocket (#35562)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:57:10 -07:00
dependabot[bot]
aa54da6d67 chore(deps-dev): bump typescript-eslint from 8.45.0 to 8.46.0 in /superset-websocket (#35563)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:56:46 -07:00
dependabot[bot]
930736bdb0 chore(deps-dev): bump webpack from 5.102.0 to 5.102.1 in /docs (#35564)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:55:08 -07:00
dependabot[bot]
668dcf4799 chore(deps): bump caniuse-lite from 1.0.30001748 to 1.0.30001749 in /docs (#35565)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-08 09:54:50 -07:00
Daniel Vaz Gaspar
50a5854b25 fix: dataset update with invalid SQL query (#35543) 2025-10-08 12:22:38 +01:00
Evan Rusackas
441e043bff feat(docs): Populate Developer Portal with comprehensive documentation framework (#35217)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-08 03:18:40 -04:00
dependabot[bot]
d383b2bf3c chore(deps-dev): bump eslint-plugin-react from 7.37.4 to 7.37.5 in /superset-frontend (#35445)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 11:01:18 -07:00
dependabot[bot]
d7903631f5 chore(deps-dev): bump @docusaurus/module-type-aliases from 3.8.1 to 3.9.1 in /docs (#35514)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 10:58:57 -07:00
dependabot[bot]
10cb964c96 chore(deps-dev): bump ts-jest from 29.4.1 to 29.4.4 in /superset-websocket (#35516)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 10:58:33 -07:00
dependabot[bot]
c519094313 chore(deps-dev): bump @types/node from 24.6.2 to 24.7.0 in /superset-websocket (#35547)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 10:58:11 -07:00
dependabot[bot]
e32c2d82a5 chore(deps-dev): bump eslint from 9.36.0 to 9.37.0 in /docs (#35549)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 10:57:31 -07:00
Rafael Benitez
f7b9d7a64b fix(chart): Fixes BigNumber gradient appearing blackish in light mode (#35527) 2025-10-07 09:43:51 -07:00
Mehmet Salih Yavuz
89932fa0b2 fix(explore): Include chart canvases in the screenshot (#35491) 2025-10-07 19:34:49 +03:00
Gabriel Torres Ruiz
a90928766b fix(theme-crud): add unsaved changes modal (#35254) 2025-10-07 19:26:01 +03:00
Daniel Vaz Gaspar
9d50f1b8a2 fix: update chart with dashboards validation (#35523) 2025-10-07 07:17:49 +01:00
dependabot[bot]
72464afb2e chore(deps-dev): bump eslint from 9.36.0 to 9.37.0 in /superset-websocket (#35513)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 11:20:28 -07:00
dependabot[bot]
64af516dfd chore(deps-dev): bump @eslint/js from 9.36.0 to 9.37.0 in /docs (#35511)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 11:19:06 -07:00
dependabot[bot]
70cd4dd9d9 chore(deps): bump caniuse-lite from 1.0.30001747 to 1.0.30001748 in /docs (#35515)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 11:03:20 -07:00
dependabot[bot]
b7266e647c chore(deps): bump swagger-ui-react from 5.29.2 to 5.29.3 in /docs (#35517)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 11:02:07 -07:00
Amin Ghadersohi
77c3146829 fix(webdriver): add missing options object to WebDriver initialization (#35504) 2025-10-06 10:23:13 -07:00
Vitor Avila
4545d55d30 fix: Support metric macro for embedded users (#35508)
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2025-10-06 14:05:54 -03:00
Rafael Benitez
a7b158c7fa fix(explore): correct search icon in dashboard submenu (#35489) 2025-10-06 13:02:03 -04:00
Mehmet Salih Yavuz
d39c55e941 fix(Select): Prevent closing the select when clicking on a tag (#35487) 2025-10-04 08:11:14 +03:00
Joe Li
821173f6c4 fix(frontend): remove describe/it blocks from Modal.useModal tests (#35497)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-03 20:34:30 -07:00
Elizabeth Thompson
635b7a6a4d fix(loading): improve loading screen theming for dark mode support (#35129)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-03 16:51:56 -07:00
Tran Ngoc Tuan
04b1a45416 fix(security-manager): switch from deprecated get_session to session attribute (#35290) 2025-10-03 14:47:35 -07:00
dependabot[bot]
d23006ce03 chore(deps-dev): bump @types/node from 22.15.30 to 24.6.2 in /superset-frontend (#35476)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 11:56:33 -07:00
Elizabeth Thompson
8bb911bc91 fix(modals): use Modal.useModal hook for proper dark mode theming (#35198)
Co-authored-by: Claude <noreply@anthropic.com>
2025-10-03 10:11:19 -07:00
dependabot[bot]
249733c768 chore(deps-dev): bump @types/node from 24.2.0 to 24.6.2 in /superset-websocket (#35467)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:20:47 -07:00
dependabot[bot]
d83a938870 chore(deps-dev): bump globals from 16.3.0 to 16.4.0 in /docs (#35469)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:20:27 -07:00
dependabot[bot]
593e376cf2 chore(deps): bump winston from 3.17.0 to 3.18.3 in /superset-websocket (#35470)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:20:06 -07:00
dependabot[bot]
fd4fe2c2ad chore(deps-dev): bump typescript from 5.9.2 to 5.9.3 in /docs (#35471)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:19:43 -07:00
dependabot[bot]
281fa67b8e chore(deps): bump swagger-ui-react from 5.29.1 to 5.29.2 in /docs (#35472)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:17:51 -07:00
dependabot[bot]
a8fd27aec3 chore(deps): bump caniuse-lite from 1.0.30001739 to 1.0.30001747 in /docs (#35473)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-03 09:17:24 -07:00
Beto Dealmeida
139b5ae20c fix(sqlglot): adhoc expressions (#35482) 2025-10-03 12:10:10 -04:00
Mehmet Salih Yavuz
891f826143 fix(dashboard): Navigate to new dashboard when saved as a new one (#35339) 2025-10-03 18:37:07 +03:00
Mehmet Salih Yavuz
0e2fb1d1a3 fix(theming): CRUD view padding (#35321) 2025-10-03 18:35:19 +03:00
amaannawab923
96170e43c0 fix(ag-grid-table): remove enterprise features to use community version (#35453) 2025-10-02 22:45:34 +03:00
dependabot[bot]
8fde970b6b chore(deps): bump @ant-design/icons from 6.0.0 to 6.1.0 in /docs (#35439)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 10:28:20 -07:00
dependabot[bot]
38cb577fc6 chore(deps): bump swagger-ui-react from 5.27.1 to 5.29.1 in /docs (#35437)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 10:27:25 -07:00
dependabot[bot]
8ebe045846 chore(deps): bump antd from 5.27.1 to 5.27.4 in /docs (#35432)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 10:26:13 -07:00
Beto Dealmeida
62dc5c0306 fix(cache): ensure SQL is sanitized before cache key generation (#35419) 2025-10-02 13:25:54 -04:00
dependabot[bot]
6ad8d29fcd chore(deps-dev): bump globals from 16.3.0 to 16.4.0 in /superset-websocket (#35431)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 10:25:38 -07:00
dependabot[bot]
d83a88d5d9 chore(deps-dev): bump typescript-eslint from 8.19.0 to 8.45.0 in /superset-websocket (#35430)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 10:24:47 -07:00
SBIN2010
a7cc48dcda fix(test): changed test use unsaved changes prompt (#35447) 2025-10-02 10:20:30 -07:00
dependabot[bot]
e2a7dc9256 chore(deps): bump ioredis and @types/ioredis in /superset-websocket (#35428)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-02 10:19:28 -07:00
Kamil Gabryjelski
0364933e8b fix(explore): Remove query autotrigger (#35418) 2025-10-02 19:08:31 +02:00
Beto Dealmeida
3202ff4b3f fix(pinot): more functions (#35451) 2025-10-02 13:01:47 -04:00
Gabriel Torres Ruiz
553204e613 fix(dashboard): exit markdown edit mode when clicking outside of element (#35336) 2025-10-02 19:42:16 +03:00
Rafael Benitez
fe8348c03a fix(dataset): sort by database in Dataset and Saved queries Issue (#35277) 2025-10-02 16:44:19 +02:00
Beto Dealmeida
30021f8ede fix(pinot): SUBSTR function (#35427) 2025-10-02 10:29:18 -04:00
Beto Dealmeida
f3349388d0 fix(pinot): DATE_SUB function (#35426) 2025-10-02 10:12:19 -04:00
Antonio Rivero
449a89c214 fix(slice): Fix using isdigit when id passed as int (#35452) 2025-10-02 16:04:54 +02:00
Beto Dealmeida
5428376662 fix(pinot): DATE_ADD function (#35424) 2025-10-02 09:56:20 -04:00
Evan Rusackas
5493e2c96d chore(dependabot): switch back to daily cadence (a trickle rather than a flood) (#35421) 2025-10-01 14:53:11 -07:00
dependabot[bot]
2f8657f122 chore(deps-dev): bump eslint from 9.34.0 to 9.36.0 in /superset-websocket (#35359)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:26:06 -07:00
Beto Dealmeida
aa97d2fe03 fix(pinot): dialect date truncation (#35420)
Co-authored-by: bito-code-review[bot] <188872107+bito-code-review[bot]@users.noreply.github.com>
2025-10-01 13:16:46 -04:00
Joe Li
28389de93e fix(ci): fix GHA for docs during PRs (#35186)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Evan Rusackas <evan@rusackas.com>
2025-10-01 10:13:47 -07:00
dependabot[bot]
7c415c7cd9 chore(deps): bump hot-shots from 11.1.0 to 11.2.0 in /superset-websocket (#35358)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:12:30 -07:00
dependabot[bot]
f6b2abee81 chore(deps-dev): bump webpack from 5.101.3 to 5.102.0 in /docs (#35368)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:11:42 -07:00
dependabot[bot]
2ef7232959 chore(deps-dev): bump eslint from 9.34.0 to 9.36.0 in /docs (#35377)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:10:45 -07:00
dependabot[bot]
2991f60368 chore(deps-dev): bump @types/react-json-tree from 0.6.11 to 0.13.0 in /superset-frontend (#35406)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:10:25 -07:00
dependabot[bot]
85ec3b1901 chore(deps-dev): bump @applitools/eyes-storybook from 3.55.6 to 3.60.0 in /superset-frontend (#35407)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:10:05 -07:00
dependabot[bot]
0c639abe17 chore(deps-dev): bump jsdom from 26.0.0 to 27.0.0 in /superset-frontend (#35409)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:09:38 -07:00
dependabot[bot]
50ed9b9e0e chore(deps-dev): bump @types/jquery from 3.5.32 to 3.5.33 in /superset-frontend (#35410)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 10:08:36 -07:00
Beto Dealmeida
13a164dd63 fix: table quoting in DBs with supports_cross_catalog_queries=True (#35350) 2025-10-01 12:17:46 -04:00
dependabot[bot]
6b0b13e4e7 chore(deps-dev): bump typescript-eslint from 8.40.0 to 8.45.0 in /docs (#35381)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 08:49:51 -07:00
dependabot[bot]
c188952de2 chore(deps-dev): bump webpack from 5.99.9 to 5.102.0 in /superset-frontend (#35402)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 08:48:01 -07:00
dependabot[bot]
a3b91f924d chore(deps): bump @babel/runtime from 7.28.2 to 7.28.4 in /superset-frontend (#35403)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 08:47:11 -07:00
Rafael Benitez
d8688cf8b1 fix(explore): close unsaved changes modal when discarding changes (#35307) 2025-10-01 17:43:02 +03:00
dependabot[bot]
40378afbf8 chore(deps): bump actions/labeler from 5 to 6 (#35386)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 07:02:52 -07:00
dependabot[bot]
84e21434b3 chore(deps): bump aws-actions/configure-aws-credentials from 4 to 5 (#35387)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 07:02:26 -07:00
dependabot[bot]
d27210794c chore(deps): bump actions/setup-python from 5 to 6 (#35390)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 07:01:48 -07:00
dependabot[bot]
5a90a84685 chore(deps): bump actions/github-script from 7 to 8 (#35385)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 07:00:16 -07:00
dependabot[bot]
6fbbc85df7 chore(deps): bump actions/setup-node from 4 to 5 (#35394)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-01 06:59:44 -07:00
Geidō
a66c230058 fix(SqlLab): Hit tableschemaview with a valid queryEditorId (#35341) 2025-10-01 14:39:02 +03:00
Damian Pendrak
19db0353a9 feat(db): custom database error messages (#34674) 2025-10-01 14:29:57 +03:00
Kamil Gabryjelski
88e5581d04 fix: Broken splitter in sql lab and some minor visual fixes (#35416) 2025-10-01 13:11:50 +02:00
Beto Dealmeida
bf88d9bb1c fix(pinot): restrict types in dialect (#35337) 2025-09-30 16:34:53 -04:00
Beto Dealmeida
d51b35f61b fix: adhoc orderby in explore (#35342) 2025-09-30 16:34:44 -04:00
Gabriel Torres Ruiz
220480b627 feat(theming): add base theme config (#35220) 2025-09-30 11:01:31 -07:00
Mehmet Salih Yavuz
ef78d2af06 fix(doris): Don't set supports_cross_catalog_queries to true (#35332)
Co-authored-by: Beto Dealmeida <roberto@dealmeida.net>
2025-09-30 14:42:03 +03:00
Evan Rusackas
7deed00def chore(frontend): Consolidate ESLint configurations in superset-frontend (#35318)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-29 23:52:25 -07:00
Beto Dealmeida
4e093a8e2a feat: sqlglot dialect for Pinot (#35333) 2025-09-29 21:56:35 -04:00
Elizabeth Thompson
0b73b4842f fix: Enable DuckDB examples loading in showtime ephemeral environments (#35294)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-29 13:21:33 -07:00
Geidō
90f281f585 fix: AceEditor Autocomplete Highlight (#35316) 2025-09-29 13:37:30 +03:00
Evan Rusackas
d62249d13f test(frontend): Migrate from describe/it to flat test() pattern (#35305)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-28 11:45:33 -07:00
Maxime Beauchemin
ff102aadb3 refactor(llm): rename LLMS.md to AGENTS.md for modern AI tools (#35314)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-27 12:46:16 +03:00
Elizabeth Thompson
82e2bc6181 fix(DatasourceModal): replace imperative modal updates with declarative state (#35256)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-26 17:54:17 -07:00
Gabriel Torres Ruiz
784ff82847 fix(sqllab): fix blank bottom section in SQL Lab left panel (#35309) 2025-09-26 20:07:20 +03:00
Mehmet Salih Yavuz
027b25e6b8 fix(DateFilterControl): remove modal overlay style to fix z-index issues (#35292) 2025-09-26 15:42:46 +02:00
SBIN2010
b652fab042 fix(table): New ad-hoc columns retain the name of previous columns (#35274) 2025-09-26 10:34:55 -03:00
Nikita Rybalchenko
77a5969dc1 feat(pdf): add configurable PDF compression level support (#34096) 2025-09-25 08:29:54 -07:00
Geidō
fb9032c05c fix: Cosmetic issues (#35122) 2025-09-25 17:24:34 +03:00
Mehmet Salih Yavuz
7a9dbfe879 fix(BuilderComponentPane): navigation tabs padding (#35213) 2025-09-25 16:59:48 +03:00
Giulio Piccolo
0de78d8203 fix(deck.gl): ensure min/max values are included in polygon map legend breakpoints (#35033)
Co-authored-by: bito-code-review[bot] <188872107+bito-code-review[bot]@users.noreply.github.com>
2025-09-25 14:30:44 +03:00
Maxime Beauchemin
abc2d46fed refactor: remove obsolete Flask flash messaging system (#35237)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-25 00:05:16 -07:00
dependabot[bot]
927cc1cda1 chore(deps): bump tar-fs from 3.1.0 to 3.1.1 in /superset-frontend (#35272)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-24 22:29:13 -07:00
JUST.in DO IT
7f3840557a chore(react18): Migrate legacy react methods (#34892) 2025-09-24 12:34:22 -07:00
JUST.in DO IT
0defcb604b chore(sqllab): remove unused json param (#35065) 2025-09-24 10:26:55 -07:00
Beto Dealmeida
94686ddfbe fix(SQL Lab): syncTable on new tabs (#35216) 2025-09-24 11:58:54 -04:00
SBIN2010
ec322dfd8d fix(Mixed Chart): Tooltip incorrectly displays numbers with optional Y-axis format and showQueryIdentifiers set to true (#35224) 2025-09-24 17:44:01 +03:00
Mehmet Salih Yavuz
cb88d886c7 fix(PropertiesModal): do not show validation errors while loading (#35215) 2025-09-24 10:52:16 +03:00
Maxime Beauchemin
608e3baf43 feat(build): auto-rebuild/check TypeScript types for packages/plugins in webpack (#35240)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-23 19:22:59 -07:00
Elizabeth Thompson
b6f6b75348 fix(dashboard): update header border to use colorBorder token (#35199)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-23 18:08:17 -07:00
Elizabeth Thompson
a5ad1d186c docs: Add instruction to avoid time-specific language in code comments (#35200)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-23 18:07:59 -07:00
Beto Dealmeida
db88d80b3f fix: docker-compose-image-tag (#35246) 2025-09-23 14:57:53 -07:00
Rafael Benitez
4b71adaa9c feat(themes): Adding SupersetText support to Themes Modal (#35248) 2025-09-23 22:23:57 +02:00
Mehmet Salih Yavuz
5fbda3af40 chore(effect): add eslint plugin to reduce rerenders (#35223) 2025-09-23 22:31:10 +03:00
Tadeh Alexani
bc0c40c80e feat(helm): Allow multi-database connection support (#34327) 2025-09-23 11:46:52 -07:00
Michael S. Molina
f030d658c5 chore: Bumps @apache-superset/core to 0.0.1-rc5 (#35247) 2025-09-23 15:24:29 -03:00
Joe Li
e85337c543 fix(docs): escape comparison operators in MDX files to resolve build errors (#35185)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Sam Firke <sfirke@users.noreply.github.com>
2025-09-23 10:49:28 -07:00
Amin Ghadersohi
fe7f8062f3 fix: Enable Playwright migration with graceful Selenium fallback (#35063)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-23 10:47:45 -07:00
Damian Pendrak
dce74014da refactor(deckgl): update deck.gl charts to use new api (#34859) 2025-09-23 10:42:28 -07:00
Beto Dealmeida
619b341cad fix: docker-compose file and superset-core (#35235) 2025-09-23 10:24:23 -07:00
Michael S. Molina
9b6876be62 fix: Typescript declaration files (#35244) 2025-09-23 14:22:28 -03:00
Mehmet Salih Yavuz
c601341520 fix(ConditionalFormattingControl): icon color in dark mode (#35243) 2025-09-23 20:16:29 +03:00
Michael S. Molina
78faaee685 chore: Reference GenericDataType from @apache-superset/core (#35214) 2025-09-23 10:12:18 -07:00
Dimitri
4027bad1d6 docs(oracle): update driver (#35242) 2025-09-23 13:53:58 +03:00
Levis Mbote
ce55cc7dd7 fix(table-chart): fix cell bar visibility in dark theme (#35211) 2025-09-23 00:06:03 -07:00
Gabriel Torres Ruiz
48e1b1ff2c feat(bug): defensive code to avoid accesing attribute of a NoneType object (#35219) 2025-09-22 10:38:08 -07:00
Beto Dealmeida
5ec8f9d886 chore: bump sqlglot to 27.15.2 (#35176) 2025-09-22 12:40:16 -04:00
Maxime Beauchemin
ecb3ac68ff feat: AI-powered TypeScript migration framework with parallel processing (#35045)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
2025-09-20 15:47:42 -07:00
Mehmet Salih Yavuz
076e477fd4 fix(SQLPopover): Use correct component (#35212) 2025-09-20 12:12:37 +03:00
SBIN2010
1e4bc6ee78 fix: bug in tooltip timeseries chart in calculated total with annotation layer (#35179) 2025-09-19 10:30:42 -07:00
Pat Buxton
db178cf527 fix: Bump pandas to 2.1.4 for python 3.12 (#34999) 2025-09-19 09:18:00 -07:00
Alexandru Soare
5901320933 feat(database): Adding per-user caching option in Security tab (#34842) 2025-09-19 19:15:31 +03:00
SBIN2010
23bb4f88c0 fix(Funnel): onInit overridden row_limit to default value on save chart (#35076) 2025-09-19 09:13:45 -07:00
Levis Mbote
4130b92966 fix(gantt-chart): fix Y-axis label visibility in dark theme (#35189) 2025-09-19 12:33:53 +03:00
Mehmet Salih Yavuz
38297edc6b chore(matrixify): Remove leftover option (#35195) 2025-09-19 00:47:47 +03:00
sha174n
0c8f326258 docs: Add security warning for ENABLE_TEMPLATE_PROCESSING (#35192) 2025-09-18 17:36:41 -04:00
Joe Li
127f6b3d66 fix(tests): migrate Cypress control tests to React Testing Library (#35181)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-18 14:23:33 -07:00
Maxime Beauchemin
ea519a77b5 fix: only block showtime for unauthorized users on push (#35184)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-18 12:28:28 -07:00
Michael S. Molina
6cb3ef9f5d chore: TypeScript Configuration Modernization and Cleanup (#35159) 2025-09-18 16:27:57 -03:00
Kamil Gabryjelski
a889ae75fc chore: Bump ag grid to 34.2.0 (#35193) 2025-09-18 19:09:22 +02:00
Mehmet Salih Yavuz
b60be9655f feat(TimeTable): add other sparkline type options (#35180) 2025-09-18 16:41:05 +03:00
lc-4918
fd6da21ce0 chore(i18n): update French translations (#35070)
Co-authored-by: l.clement <l.clement@altereo.fr>
2025-09-17 21:05:15 -07:00
marun
1bf112a57a fix(CrudThemeProvider): Optimized theme loading logic (#35155) 2025-09-17 20:49:26 -07:00
marun
1f530d45cb fix(embedded): resolve theme context error in Loading component (#35168)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 20:44:04 -07:00
Joe Li
1187902e68 feat(playwright): Add Playwright CI Integration for Cypress Migration (SIP-178) (#35110)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-17 17:13:47 -07:00
Maxime Beauchemin
ad3eff9e90 feat(matrixify): replace single toggle with separate horizontal/vertical layout controls (#35067)
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Mehmet Salih Yavuz <salih.yavuz@proton.me>
2025-09-17 22:57:06 +03:00
SBIN2010
3e554674ff feat(waterfall): add changes label series and grouping customize settings (#34847) 2025-09-17 08:24:45 -03:00
Amin Ghadersohi
dced2f8564 feat: Add BaseDAO improvements and test reorganization (#35018)
Co-authored-by: bito-code-review[bot] <188872107+bito-code-review[bot]@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-16 18:15:16 -07:00
Maxime Beauchemin
05c6a1bf20 fix(viz): resolve dark mode compatibility issues in BigNumber and Heatmap (#35151)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-16 10:21:47 -07:00
SBIN2010
c193d6d6a1 fix: import bug template params (#35144) 2025-09-16 10:21:29 -07:00
Joe Li
fb840b8e71 fix(deck.gl): restore legend display for Polygon charts with linear palette and fixed color schemes (#35142)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-16 20:20:42 +03:00
Maxime Beauchemin
d0cc6f115b feat: add optional garbage collection after requests (#35061)
Co-authored-by: Claude <noreply@anthropic.com>
2025-09-16 09:23:39 -07:00
Hugh A. Miles II
966e231f94 feat: Add Dashboard Filter Support for Alert Reports (#32196)
Co-authored-by: Elizabeth Thompson <eschutho@gmail.com>
Co-authored-by: Hugh A Miles II <hugh@Mac.home>
2025-09-16 10:52:28 -04:00
Richard Fogaca Nienkotter
a66737cb05 feat(custom-tooltip): custom tooltip on deck.gl charts (#34276) 2025-09-16 17:11:19 +03:00
Michael S. Molina
bc6859a99d refactor: Organizes the src/core folder (#35119) 2025-09-16 08:21:16 -03:00
4741 changed files with 589908 additions and 212371 deletions

View File

@@ -24,7 +24,9 @@ notifications:
discussions: notifications@superset.apache.org
github:
del_branch_on_merge: true
pull_requests:
del_branch_on_merge: true
allow_update_branch: true
description: "Apache Superset is a Data Visualization and Data Exploration Platform"
homepage: https://superset.apache.org/
labels:
@@ -83,6 +85,7 @@ github:
- cypress-matrix (5, chrome)
- dependency-review
- frontend-build
- playwright-tests (chromium)
- pre-commit (current)
- pre-commit (previous)
- test-mysql

View File

@@ -0,0 +1,10 @@
# JavaScript to TypeScript Migration Command
## Usage
```
/js-to-ts <core-filename>
```
- `<core-filename>` - Path to CORE file relative to `superset-frontend/` (e.g., `src/utils/common.js`, `src/middleware/loggerMiddleware.js`)
## Agent Instructions
**See:** [../projects/js-to-ts/AGENT.md](../projects/js-to-ts/AGENT.md) for complete migration guide.

View File

@@ -0,0 +1,684 @@
# JavaScript to TypeScript Migration Agent Guide
**Complete technical reference for converting JavaScript/JSX files to TypeScript/TSX in Apache Superset frontend.**
**Agent Role:** Atomic migration unit - migrate the core file + ALL related tests/mocks as one cohesive unit. Use `git mv` to preserve history, NO `git commit`. NO global import changes. Report results upon completion.
---
## 🎯 Migration Principles
1. **Atomic migration units** - Core file + all related tests/mocks migrate together
2. **Zero `any` types** - Use proper TypeScript throughout
3. **Leverage existing types** - Reuse established definitions
4. **Type inheritance** - Derivatives extend base component types
5. **Strategic placement** - File types for maximum discoverability
6. **Surgical improvements** - Enhance existing types during migration
---
## Step 0: Dependency Check (MANDATORY)
**Command:**
```bash
grep -E "from '\.\./.*\.jsx?'|from '\./.*\.jsx?'|from 'src/.*\.jsx?'" superset-frontend/{filename}
```
**Decision:**
- ✅ No matches → Proceed with atomic migration (core + tests + mocks)
- ❌ Matches found → EXIT with dependency report (see format below)
---
## Step 1: Identify Related Files (REQUIRED)
**Atomic Migration Scope:**
For core file `src/utils/example.js`, also migrate:
- `src/utils/example.test.js` / `src/utils/example.test.jsx`
- `src/utils/example.spec.js` / `src/utils/example.spec.jsx`
- `src/utils/__mocks__/example.js`
- Any other related test/mock files found by pattern matching
**Find all related test and mock files:**
```bash
# Pattern-based search for related files
basename=$(basename {filename} .js)
dirname=$(dirname superset-frontend/{filename})
# Find test files
find "$dirname" -name "${basename}.test.js" -o -name "${basename}.test.jsx"
find "$dirname" -name "${basename}.spec.js" -o -name "${basename}.spec.jsx"
# Find mock files
find "$dirname" -name "__mocks__/${basename}.js"
find "$dirname" -name "${basename}.mock.js"
```
**Migration Requirement:** All discovered related files MUST be migrated together as one atomic unit.
**Test File Creation:** If NO test files exist for the core file, CREATE a minimal test file using the following pattern:
- Location: Same directory as core file
- Name: `{basename}.test.ts` (e.g., `DebouncedMessageQueue.test.ts`)
- Content: Basic test structure importing and testing the main functionality
- Use proper TypeScript types in test file
---
## 🗺️ Type Reference Map
### From `@superset-ui/core`
```typescript
// Data & Query
QueryFormData, QueryData, JsonObject, AnnotationData, AdhocMetric
LatestQueryFormData, GenericDataType, DatasourceType, ExtraFormData
DataMaskStateWithId, NativeFilterScope, NativeFiltersState, NativeFilterTarget
// UI & Theme
FeatureFlagMap, LanguagePack, ColorSchemeConfig, SequentialSchemeConfig
```
### From `@superset-ui/chart-controls`
```typescript
Dataset, ColumnMeta, ControlStateMapping
```
### From Local Types (`src/types/`)
```typescript
// Authentication
User, UserWithPermissionsAndRoles, BootstrapUser, PermissionsAndRoles
// Dashboard
Dashboard, DashboardState, DashboardInfo, DashboardLayout, LayoutItem
ComponentType, ChartConfiguration, ActiveFilters
// Charts
Chart, ChartState, ChartStatus, ChartLinkedDashboard, Slice, SaveActionType
// Data
Datasource, Database, Owner, Role
// UI Components
TagType, FavoriteStatus, Filter, ImportResourceName
```
### From Domain Types
```typescript
// src/dashboard/types.ts
RootState, ChartsState, DatasourcesState, FilterBarOrientation
ChartCrossFiltersConfig, ActiveTabs, MenuKeys
// src/explore/types.ts
ExplorePageInitialData, ExplorePageState, ExploreResponsePayload, OptionSortType
// src/SqlLab/types.ts
[SQL Lab specific types]
```
---
## 🏗️ Type Organization Strategy
### Type Placement Hierarchy
1. **Component-Colocated** (90% of cases)
```typescript
// Same file as component
interface MyComponentProps {
title: string;
onClick: () => void;
}
```
2. **Feature-Shared**
```typescript
// src/[domain]/components/[Feature]/types.ts
export interface FilterConfiguration {
filterId: string;
targets: NativeFilterTarget[];
}
```
3. **Domain-Wide**
```typescript
// src/[domain]/types.ts
export interface ExploreFormData extends QueryFormData {
viz_type: string;
}
```
4. **Global**
```typescript
// src/types/[TypeName].ts
export interface ApiResponse<T> {
result: T;
count?: number;
}
```
### Type Discovery Commands
```bash
# Search existing types before creating
find superset-frontend/src -name "types.ts" -exec grep -l "[TypeConcept]" {} \;
grep -r "interface.*Props\|type.*Props" superset-frontend/src/
```
### Derivative Component Patterns
**Rule:** Components that extend others should extend their type interfaces.
```typescript
// ✅ Base component type
interface SelectProps {
value: string | number;
options: SelectOption[];
onChange: (value: string | number) => void;
disabled?: boolean;
}
// ✅ Derivative extends base
interface ChartSelectProps extends SelectProps {
charts: Chart[];
onChartSelect: (chart: Chart) => void;
}
// ✅ Derivative with modified props
interface DatabaseSelectProps extends Omit<SelectProps, 'value' | 'onChange'> {
value: number; // Narrowed type
onChange: (databaseId: number) => void; // Specific signature
}
```
**Common Patterns:**
- **Extension:** `extends BaseProps` - adds new props
- **Omission:** `Omit<BaseProps, 'prop'>` - removes props
- **Modification:** `Omit<BaseProps, 'prop'> & { prop: NewType }` - changes prop type
- **Restriction:** Override with narrower types (union → specific)
---
## 📋 Migration Recipe
### Step 2: File Conversion
```bash
# Use git mv to preserve history
git mv component.js component.ts
git mv Component.jsx Component.tsx
```
### Step 3: Import & Type Setup
```typescript
// Import order (enforced by linting)
import { FC, ReactNode } from 'react';
import { JsonObject, QueryFormData } from '@superset-ui/core';
import { Dataset } from '@superset-ui/chart-controls';
import type { Dashboard } from 'src/types/Dashboard';
```
### Step 4: Function & Component Typing
```typescript
// Functions with proper parameter/return types
export function processData(
data: Dataset[],
config: JsonObject
): ProcessedData[] {
// implementation
}
// Component props with inheritance
interface ComponentProps extends BaseProps {
data: Chart[];
onSelect: (id: number) => void;
}
const Component: FC<ComponentProps> = ({ data, onSelect }) => {
// implementation
};
```
### Step 5: State & Redux Typing
```typescript
// Hooks with specific types
const [data, setData] = useState<Chart[]>([]);
const [selected, setSelected] = useState<number | null>(null);
// Redux with existing RootState
const mapStateToProps = (state: RootState) => ({
charts: state.charts,
user: state.user,
});
```
---
## 🧠 Type Debugging Strategies (Real-World Learnings)
### The Evolution of Type Approaches
When you hit type errors, follow this debugging evolution:
#### 1. ❌ Idealized Union Types (First Attempt)
```typescript
// Looks clean but doesn't match reality
type DatasourceInput = Datasource | QueryEditor;
```
**Problem**: Real calling sites pass variations, not exact types.
#### 2. ❌ Overly Precise Types (Second Attempt)
```typescript
// Tried to match exact calling signatures
type DatasourceInput =
| IDatasource // From DatasourcePanel
| (QueryEditor & { columns: ColumnMeta[] }); // From SaveQuery
```
**Problem**: Too rigid, doesn't handle legacy variations.
#### 3. ✅ Flexible Interface (Final Solution)
```typescript
// Captures what the function actually needs
interface DatasourceInput {
name?: string | null; // Allow null for compatibility
datasource_name?: string | null; // Legacy variations
columns?: any[]; // Multiple column types accepted
database?: { id?: number };
// ... other optional properties
}
```
**Success**: Works with all calling sites, focuses on function needs.
### Type Debugging Process
1. **Start with compilation errors** - they show exact mismatches
2. **Examine actual usage** - look at calling sites, not idealized types
3. **Build flexible interfaces** - capture what functions need, not rigid contracts
4. **Iterate based on downstream validation** - let calling sites guide your types
---
## 🚨 Anti-Patterns to Avoid
```typescript
// ❌ Never use any
const obj: any = {};
// ✅ Use proper types
const obj: Record<string, JsonObject> = {};
// ❌ Don't recreate base component props
interface ChartSelectProps {
value: string; // Duplicated from SelectProps
onChange: () => void; // Duplicated from SelectProps
charts: Chart[]; // New prop
}
// ✅ Inherit and extend
interface ChartSelectProps extends SelectProps {
charts: Chart[]; // Only new props
}
// ❌ Don't create ad-hoc type variations
interface UserInfo {
name: string;
email: string;
}
// ✅ Extend existing types (DRY principle)
import { User } from 'src/types/bootstrapTypes';
type UserDisplayInfo = Pick<User, 'firstName' | 'lastName' | 'email'>;
// ❌ Don't create overly rigid unions
type StrictInput = ExactTypeA | ExactTypeB;
// ✅ Create flexible interfaces for function parameters
interface FlexibleInput {
// Focus on what the function actually needs
commonProperty: string;
optionalVariations?: any; // Allow for legacy variations
}
```
## 📍 DRY Type Guidelines (WHERE TYPES BELONG)
### Type Placement Rules
**CRITICAL**: Type variations must live close to where they belong, not scattered across files.
#### ✅ Proper Type Organization
```typescript
// ❌ Don't create one-off interfaces in utility files
// src/utils/datasourceUtils.ts
interface DatasourceInput { /* custom interface */ } // Wrong!
// ✅ Use existing types or extend them in their proper domain
// src/utils/datasourceUtils.ts
import { IDatasource } from 'src/explore/components/DatasourcePanel';
import { QueryEditor } from 'src/SqlLab/types';
// Create flexible interface that references existing types
interface FlexibleDatasourceInput {
// Properties that actually exist across variations
}
```
#### Type Location Hierarchy
1. **Domain Types**: `src/{domain}/types.ts` (dashboard, explore, SqlLab)
2. **Component Types**: Co-located with components
3. **Global Types**: `src/types/` directory
4. **Utility Types**: Only when they truly don't belong elsewhere
#### ✅ DRY Type Patterns
```typescript
// ✅ Extend existing domain types
interface SaveQueryData extends Pick<QueryEditor, 'sql' | 'dbId' | 'catalog'> {
columns: ColumnMeta[]; // Add what's needed
}
// ✅ Create flexible interfaces for cross-domain utilities
interface CrossDomainInput {
// Common properties that exist across different source types
name?: string | null; // Accommodate legacy null values
// Only include properties the function actually uses
}
```
---
## 🎯 PropTypes Auto-Generation (Elegant Approach)
**IMPORTANT**: Superset has `babel-plugin-typescript-to-proptypes` configured to automatically generate PropTypes from TypeScript interfaces. Use this instead of manual PropTypes duplication!
### ❌ Manual PropTypes Duplication (Avoid This)
```typescript
export interface MyComponentProps {
title: string;
count?: number;
}
// 8+ lines of manual PropTypes duplication 😱
const propTypes = PropTypes.shape({
title: PropTypes.string.isRequired,
count: PropTypes.number,
});
export default propTypes;
```
### ✅ Auto-Generated PropTypes (Use This)
```typescript
import { InferProps } from 'prop-types';
export interface MyComponentProps {
title: string;
count?: number;
}
// Single validator function - babel plugin auto-generates PropTypes! ✨
export default function MyComponentValidator(props: MyComponentProps) {
return null; // PropTypes auto-assigned by babel-plugin-typescript-to-proptypes
}
// Optional: For consumers needing PropTypes type inference
export type MyComponentPropsInferred = InferProps<typeof MyComponentValidator>;
```
### Migration Pattern for Type-Only Files
**When migrating type-only files with manual PropTypes:**
1. **Keep the TypeScript interfaces** (single source of truth)
2. **Replace manual PropTypes** with validator function
3. **Remove PropTypes imports** and manual shape definitions
4. **Add InferProps import** if type inference needed
**Example Migration:**
```typescript
// Before: 25+ lines with manual PropTypes duplication
export interface AdhocFilterType { /* ... */ }
const adhocFilterTypePropTypes = PropTypes.oneOfType([...]);
// After: 3 lines with auto-generation
export interface AdhocFilterType { /* ... */ }
export default function AdhocFilterValidator(props: { filter: AdhocFilterType }) {
return null; // Auto-generated PropTypes by babel plugin
}
```
### Component PropTypes Pattern
**For React components, the babel plugin works automatically:**
```typescript
interface ComponentProps {
title: string;
onClick: () => void;
}
const MyComponent: FC<ComponentProps> = ({ title, onClick }) => {
// Component implementation
};
// PropTypes automatically generated by babel plugin - no manual work needed!
export default MyComponent;
```
### Auto-Generation Benefits
- ✅ **Single source of truth**: TypeScript interfaces drive PropTypes
- ✅ **No duplication**: Eliminate 15-20 lines of manual PropTypes code
- ✅ **Automatic updates**: Changes to TypeScript automatically update PropTypes
- ✅ **Type safety**: Compile-time checking ensures PropTypes match interfaces
- ✅ **Backward compatibility**: Existing JavaScript components continue working
### Babel Plugin Configuration
The plugin is already configured in `babel.config.js`:
```javascript
['babel-plugin-typescript-to-proptypes', { loose: true }]
```
**No additional setup required** - just use TypeScript interfaces and the plugin handles the rest!
---
## 🧪 Test File Migration Patterns
### Test File Priority
- **Always migrate test files** alongside production files
- **Test files are often leaf nodes** - good starting candidates
- **Create tests if missing** - Leverage new TypeScript types for better test coverage
### Test-Specific Type Patterns
```typescript
// Mock interfaces for testing
interface MockStore {
getState: () => Partial<RootState>; // Partial allows minimal mocking
}
// Type-safe mocking for complex objects
const mockDashboardInfo: Partial<DashboardInfo> as DashboardInfo = {
id: 123,
json_metadata: '{}',
};
// Sinon stub typing
let postStub: sinon.SinonStub;
beforeEach(() => {
postStub = sinon.stub(SupersetClient, 'post');
});
// Use stub reference instead of original method
expect(postStub.callCount).toBe(1);
expect(postStub.getCall(0).args[0].endpoint).toMatch('/api/');
```
### Test Migration Recipe
1. **Migrate production file first** (if both need migration)
2. **Update test imports** to point to `.ts/.tsx` files
3. **Add proper mock typing** using `Partial<T> as T` pattern
4. **Fix stub typing** - Use stub references, not original methods
5. **Verify all tests pass** with TypeScript compilation
---
## 🔧 Type Conflict Resolution
### Multiple Type Definitions Issue
**Problem**: Same type name defined in multiple files causes compilation errors.
**Example**: `DashboardInfo` defined in both:
- `src/dashboard/reducers/types.ts` (minimal)
- `src/dashboard/components/Header/types.ts` (different shape)
- `src/dashboard/types.ts` (complete - used by RootState)
### Resolution Strategy
1. **Identify the authoritative type**:
```bash
# Find which type is used by RootState/main interfaces
grep -r "DashboardInfo" src/dashboard/types.ts
```
2. **Use import from authoritative source**:
```typescript
// ✅ Import from main domain types
import { RootState, DashboardInfo } from 'src/dashboard/types';
// ❌ Don't import from component-specific files
import { DashboardInfo } from 'src/dashboard/components/Header/types';
```
3. **Mock complex types in tests**:
```typescript
// For testing - provide minimal required fields
const mockInfo: Partial<DashboardInfo> as DashboardInfo = {
id: 123,
json_metadata: '{}',
// Only provide fields actually used in test
};
```
### Type Hierarchy Discovery Commands
```bash
# Find all definitions of a type
grep -r "interface.*TypeName\|type.*TypeName" src/
# Find import usage patterns
grep -r "import.*TypeName" src/
# Check what RootState uses
grep -A 10 -B 10 "TypeName" src/*/types.ts
```
---
## Agent Constraints (CRITICAL)
1. **Use git mv** - Run `git mv file.js file.ts` to preserve git history, but NO `git commit`
2. **NO global import changes** - Don't update imports across codebase
3. **Type files OK** - Can modify existing type files to improve/align types
4. **Single-File TypeScript Validation** (CRITICAL) - tsc has known issues with multi-file compilation:
- **Core Issue**: TypeScript's `tsc` has documented problems validating multiple files simultaneously in complex projects
- **Solution**: ALWAYS validate files one at a time using individual `tsc` calls
- **Command Pattern**: `cd superset-frontend && npx tscw --noEmit --allowJs --composite false --project tsconfig.json {single-file-path}`
- **Why**: Multi-file validation can produce false positives, miss real errors, and conflict during parallel agent execution
5. **Downstream Impact Validation** (CRITICAL) - Your migration affects calling sites:
- **Find downstream files**: `find superset-frontend/src -name "*.tsx" -o -name "*.ts" | xargs grep -l "your-core-filename" 2>/dev/null || echo "No files found"`
- **Validate each downstream file individually**: `cd superset-frontend && npx tscw --noEmit --allowJs --composite false --project tsconfig.json {each-downstream-file}`
- **Fix type mismatches** you introduced in calling sites
- **NEVER ignore downstream errors** - they indicate your types don't match reality
6. **Avoid Project-Wide Validation During Migration**:
- **NEVER use `npm run type`** during parallel agent execution - produces unreliable results
- **Single-file validation is authoritative** - trust individual file checks over project-wide scans
6. **ESLint validation** - Run `npm run eslint -- --fix {file}` for each migrated file to auto-fix formatting/linting issues
6. Zero `any` types - use proper TypeScript types
7. Search existing types before creating new ones
8. Follow patterns from this guide
---
## Success Report Format
```
SUCCESS: Atomic Migration of {core-filename}
## Files Migrated (Atomic Unit)
- Core: {core-filename} → {core-filename.ts/tsx}
- Tests: {list-of-test-files} → {list-of-test-files.ts/tsx} OR "CREATED: {basename}.test.ts"
- Mocks: {list-of-mock-files} → {list-of-mock-files.ts}
- Type files modified: {list-of-type-files}
## Types Created/Improved
- {TypeName}: {location} ({scope}) - {rationale}
- {ExistingType}: enhanced in {location} - {improvement-description}
## Documentation Recommendations
- ADD_TO_DIRECTORY: {TypeName} - {reason}
- NO_DOCUMENTATION: {TypeName} - {reason}
## Quality Validation
- **Single-File TypeScript Validation**: ✅ PASS - Core files individually validated
- Core file: `npx tscw --noEmit --allowJs --composite false --project tsconfig.json {core-file}`
- Test files: `npx tscw --noEmit --allowJs --composite false --project tsconfig.json {test-file}` (if exists)
- **Downstream Impact Check**: ✅ PASS - Found {N} files importing this module, all validate individually
- Downstream files: {list-of-files-that-import-your-module}
- Individual validation: `npx tscw --noEmit --allowJs --composite false --project tsconfig.json {each-downstream-file}`
- **ESLint validation**: ✅ PASS (using `npm run eslint -- --fix {files}` to auto-fix formatting)
- **Zero any types**: ✅ PASS
- **Local imports resolved**: ✅ PASS
- **Functionality preserved**: ✅ PASS
- **Tests pass** (if test file): ✅ PASS
- **Follow-up action required**: {YES/NO}
## Validation Strategy Notes
- **Single-file approach used**: Avoided multi-file tsc validation due to known TypeScript compilation issues
- **Project-wide validation skipped**: `npm run type` not used during parallel migration to prevent false positives
## Migration Learnings
- Type conflicts encountered: {describe any multiple type definitions}
- Mock patterns used: {describe test mocking approaches}
- Import hierarchy decisions: {note authoritative type sources used}
- PropTypes strategy: {AUTO_GENERATED via babel plugin | MANUAL_DUPLICATION_REMOVED | N/A}
## Improvement Suggestions for Documentation
- AGENT.md enhancement: {suggest additions to migration guide}
- Common pattern identified: {note reusable patterns for future migrations}
```
---
## Dependency Block Report Format
```
DEPENDENCY_BLOCK: Cannot migrate {filename}
## Blocking Dependencies
- {path}: {type} - {usage} - {priority}
## Impact Analysis
- Estimated types: {number}
- Expected locations: {list}
- Cross-domain: {YES/NO}
## Recommended Order
{ordered-list}
```
---
## 📚 Quick Reference
**Type Utilities:**
- `Record<K, V>` - Object with specific key/value types
- `Partial<T>` - All properties optional
- `Pick<T, K>` - Subset of properties
- `Omit<T, K>` - Exclude specific properties
- `NonNullable<T>` - Exclude null/undefined
**Event Types:**
- `MouseEvent<HTMLButtonElement>`
- `ChangeEvent<HTMLInputElement>`
- `FormEvent<HTMLFormElement>`
**React Types:**
- `FC<Props>` - Functional component
- `ReactNode` - Any renderable content
- `CSSProperties` - Style objects
---
**Remember:** Every type should add value and clarity. The goal is meaningful type safety that catches bugs and improves developer experience.

View File

@@ -0,0 +1,199 @@
# JS-to-TS Coordinator Workflow
**Role:** Strategic migration coordination - select leaf-node files, trigger agents, review results, handle integration, manage dependencies.
---
## 1. Core File Selection Strategy
**Target ONLY Core Files**: Coordinators identify core files (production code), agents handle related tests/mocks atomically.
**File Analysis Commands**:
```bash
# Find CORE files with no JS/JSX dependencies (exclude tests/mocks) - SIZE PRIORITIZED
find superset-frontend/src -name "*.js" -o -name "*.jsx" | grep -v "test\|spec\|mock" | xargs wc -l | sort -n | head -20
# Alternative: Get file sizes in lines with paths
find superset-frontend/src -name "*.js" -o -name "*.jsx" | grep -v "test\|spec\|mock" | while read file; do
lines=$(wc -l < "$file")
echo "$lines $file"
done | sort -n | head -20
# Check dependencies for core files only (start with smallest)
for file in <core-files-sorted-by-size>; do
echo "=== $file ($(wc -l < "$file") lines) ==="
grep -E "from '\.\./.*\.jsx?'|from '\./.*\.jsx?'|from 'src/.*\.jsx?'" "$file" || echo "✅ LEAF CANDIDATE"
done
# Identify heavily imported files (migrate last)
grep -r "from.*utils/common" superset-frontend/src/ | wc -l
# Quick leaf analysis with size priority
find superset-frontend/src -name "*.js" -o -name "*.jsx" | grep -v "test\|spec\|mock" | head -30 | while read file; do
deps=$(grep -E "from '\.\./.*\.jsx?'|from '\./.*\.jsx?'|from 'src/.*\.jsx?'" "$file" | wc -l)
lines=$(wc -l < "$file")
if [ "$deps" -eq 0 ]; then
echo "✅ LEAF: $lines lines - $file"
fi
done | sort -n
```
**Priority Order** (Smallest files first for easier wins):
1. **Small leaf files** (<50 lines) - No JS/JSX imports, quick TypeScript conversion
2. **Medium leaf files** (50-200 lines) - Self-contained utilities and helpers
3. **Small dependency files** (<100 lines) - Import only already-migrated files
4. **Larger components** (200+ lines) - Complex but well-contained functionality
5. **Core foundational files** (utils/common.js, controls.jsx) - migrate last regardless of size
**Size-First Benefits**:
- Faster completion builds momentum
- Earlier validation of migration patterns
- Easier rollback if issues arise
- Better success rate for agent learning
**Migration Unit**: Each agent call migrates:
- 1 core file (primary target)
- All related `*.test.js/jsx` files
- All related `*.mock.js` files
- All related `__mocks__/` files
---
## 2. Task Creation & Agent Control
### Task Triggering
When triggering the `/js-to-ts` command:
- **Task Title**: Use the core filename as the task title (e.g., "DebouncedMessageQueue.js migration", "hostNamesConfig.js migration")
- **Task Description**: Include the full relative path to help agent locate the file
- **Reference**: Point agent to [AGENT.md](./AGENT.md) for technical instructions
### Post-Processing Workflow
After each agent completes:
1. **Review Agent Report**: Always read and analyze the complete agent report
2. **Share Summary**: Provide user with key highlights from agent's work:
- Files migrated (core + tests/mocks)
- Types created or improved
- Any validation issues or coordinator actions needed
3. **Quality Assessment**: Evaluate agent's TypeScript implementation against criteria:
-**Type Usage**: Proper types used, no `any` types
-**Type Filing**: Types placed in correct hierarchy (component → feature → domain → global)
-**Side Effects**: No unintended changes to other files
-**Import Alignment**: Proper .ts/.tsx import extensions
4. **Integration Decision**:
- **COMMIT**: If agent work is complete and high quality
- **FIX & COMMIT**: If minor issues need coordinator fixes
- **ROLLBACK**: If major issues require complete rework
5. **Next Action**: Ask user preference - commit this work or trigger next migration
---
## 3. Integration Decision Framework
**Automatic Integration** ✅:
- `npm run type` passes without errors
- Agent created clean TypeScript with proper types
- Types appropriately filed in hierarchy
**Coordinator Integration** (Fix Side-Effects) 🔧:
- `npm run type` fails BUT agent's work is high quality
- Good type usage, proper patterns, well-organized
- Side-effects are manageable TypeScript compilation errors
- **Coordinator Action**: Integrate the change, then fix global compilation issues
**Rollback Only** ❌:
- Agent introduced `any` types or poor type choices
- Types poorly organized or conflicting with existing patterns
- Fundamental approach issues requiring complete rework
**Integration Process**:
1. **Review**: Agent already used `git mv` to preserve history
2. **Fix Side-Effects**: Update dependent files with proper import extensions
3. **Resolve Types**: Fix any cascading type issues across codebase
4. **Validate**: Ensure `npm run type` passes after fixes
---
## 4. Common Integration Patterns
**Common Side-Effects (Expect These)**:
- **Type import conflicts**: Multiple definitions of same type name
- **Mock object typing**: Tests need complete type satisfaction
- **Stub method references**: Use stub vars instead of original methods
**Coordinator Fixes (Standard Process)**:
1. **Import Resolution**:
```bash
# Find authoritative type source
grep -r "TypeName" src/*/types.ts
# Import from domain types (src/dashboard/types.ts) not component types
```
2. **Test Mock Completion**:
```typescript
// Use Partial<T> as T pattern for minimal mocking
const mockDashboard: Partial<DashboardInfo> as DashboardInfo = {
id: 123,
json_metadata: '{}',
};
```
3. **Stub Reference Fixes**:
```typescript
// ✅ Use stub variable
expect(postStub.callCount).toBe(1);
// ❌ Don't use original method
expect(SupersetClient.post.callCount).toBe(1);
```
4. **Validation Commands**:
```bash
npm run type # TypeScript compilation
npm test -- filename # Test functionality
git status # Should show rename, not add/delete
```
---
## 5. File Categories for Planning
### Leaf Files (Start Here)
**Self-contained files with minimal JS/JSX dependencies**:
- Test files (80 files) - Usually only import the file being tested
- Utility files without internal dependencies
- Components importing only external libraries
### Heavily Imported Files (Migrate Last)
**Core files that many others depend on**:
- `utils/common.js` - Core utility functions
- `utils/reducerUtils.js` - Redux helpers
- `@superset-ui/core` equivalent files
- Major state management files (`explore/store.js`, `dashboard/actions/`)
### Complex Components (Middle Priority)
**Large files requiring careful type analysis**:
- `components/Datasource/DatasourceEditor.jsx` (1,809 lines)
- `explore/components/controls/AnnotationLayerControl/AnnotationLayer.jsx` (1,031 lines)
- `explore/components/ExploreViewContainer/index.jsx` (911 lines)
---
## 6. Success Metrics & Continuous Improvement
**Per-File Gates**:
- ✅ `npm run type` passes after each migration
- ✅ Zero `any` types introduced
- ✅ All imports properly typed
- ✅ Types filed in correct hierarchy
**Linear Scheduling**:
When agents report `DEPENDENCY_BLOCK`:
- Queue dependencies in linear order
- Process one file at a time to avoid conflicts
- Handle cascading type changes between files
**After Each Migration**:
1. **Update guides** with new patterns discovered
2. **Document coordinator fixes** that become common
3. **Enhance agent instructions** based on recurring issues
4. **Track success metrics** - automatic vs coordinator integration rates

View File

@@ -0,0 +1,76 @@
# JavaScript to TypeScript Migration Project
Progressive migration of 219 JS/JSX files to TypeScript in Apache Superset frontend.
## 📁 Project Documentation
- **[AGENT.md](./AGENT.md)** - Complete technical migration guide for agents (includes type reference, patterns, validation)
- **[COORDINATOR.md](./COORDINATOR.md)** - Strategic workflow for coordinators (file selection, task management, integration)
## 🎯 Quick Start
**For Agents:** Read [AGENT.md](./AGENT.md) for complete migration instructions
**For Coordinators:** Read [COORDINATOR.md](./COORDINATOR.md) for workflow and [AGENT.md](./AGENT.md) for supervision
**Command:** `/js-to-ts <filename>` - See [../../commands/js-to-ts.md](../../commands/js-to-ts.md)
## 📊 Migration Progress
**Scope**: 219 files total (112 JS + 107 JSX)
- Production files: 139 (63%)
- Test files: 80 (37%)
**Strategy**: Leaf-first migration with dependency-aware coordination
### Completed Migrations ✅
1. **roundDecimal** - `plugins/legacy-plugin-chart-map-box/src/utils/roundDecimal.js`
- Migrated core + test files
- Added proper TypeScript function signature with optional precision parameter
- All tests pass
2. **timeGrainSqlaAnimationOverrides** - `src/explore/controlPanels/timeGrainSqlaAnimationOverrides.js`
- Migrated to TypeScript with ControlPanelState and Dataset types
- Added TimeGrainOverrideState interface for return type
- Used type guards for safe property access
3. **DebouncedMessageQueue** - `src/utils/DebouncedMessageQueue.js`
- Migrated to TypeScript with proper generics
- Created DebouncedMessageQueueOptions interface
- **CREATED test file** with 4 comprehensive test cases
- Excellent class property typing with private/readonly modifiers
**Files Migrated**: 3/219 (1.4%)
**Tests Created**: 2 (roundDecimal had existing, DebouncedMessageQueue created)
### Next Candidates (Leaf Nodes) 🎯
**Identified leaf files with no JS/JSX dependencies:**
- `src/utils/hostNamesConfig.js` - Domain configuration utility
- `src/explore/controlPanels/Separator.js` - Control panel configuration
- `src/middleware/loggerMiddleware.js` - Logging middleware
**Migration Quality**: All completed migrations have:
- ✅ Zero `any` types
- ✅ Proper TypeScript compilation
- ✅ ESLint validation passed
- ✅ Test coverage (created where missing)
---
## 📈 Success Metrics
**Per-File Gates**:
-`npm run type` passes after each migration
- ✅ Zero `any` types introduced
- ✅ All imports properly typed
- ✅ Types filed in correct hierarchy
**Overall Progress**:
- **Automatic Integration Rate**: 100% (3/3 migrations required no coordinator fixes)
- **Test Coverage**: Improved (1 new test file created)
- **Type Safety**: Enhanced with proper interfaces and generics
---
*This is a claudette-managed progressive refactor. All documentation and coordination resources are organized under `.claude/projects/js-to-ts/`*

15
.claude/settings.json Normal file
View File

@@ -0,0 +1,15 @@
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.command // \"\"' | grep -qE '^git commit' && cd \"$CLAUDE_PROJECT_DIR\" && echo '🔍 Running pre-commit before commit...' && pre-commit run || true"
}
]
}
]
}
}

View File

@@ -3,14 +3,3 @@
For complete documentation on using GitHub Codespaces with Apache Superset, please see:
**[Setting up a Development Environment - GitHub Codespaces](https://superset.apache.org/docs/contributing/development#github-codespaces-cloud-development)**
## Pre-installed Development Environment
When you create a new Codespace from this repository, it automatically:
1. **Creates a Python virtual environment** using `uv venv`
2. **Installs all development dependencies** via `uv pip install -r requirements/development.txt`
3. **Sets up pre-commit hooks** with `pre-commit install`
4. **Activates the virtual environment** automatically in all terminals
The virtual environment is located at `/workspaces/{repository-name}/.venv` and is automatically activated through environment variables set in the devcontainer configuration.

View File

@@ -0,0 +1,19 @@
{
// Extend the base configuration
"extends": "../devcontainer-base.json",
"name": "Apache Superset Development (Default)",
// Forward ports for development
"forwardPorts": [9001],
"portsAttributes": {
"9001": {
"label": "Superset (via Webpack Dev Server)",
"onAutoForward": "notify",
"visibility": "public"
}
},
// Auto-start Superset on Codespace resume
"postStartCommand": ".devcontainer/start-superset.sh"
}

View File

@@ -0,0 +1,39 @@
{
"name": "Apache Superset Development",
// Keep this in sync with the base image in Dockerfile (ARG PY_VER)
// Using the same base as Dockerfile, but non-slim for dev tools
"image": "python:3.11.13-bookworm",
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"moby": true,
"dockerDashComposeVersion": "v2"
},
"ghcr.io/devcontainers/features/node:1": {
"version": "20"
},
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/common-utils:2": {
"configureZshAsDefaultShell": true
},
"ghcr.io/devcontainers/features/sshd:1": {
"version": "latest"
}
},
// Run commands after container is created
"postCreateCommand": "chmod +x .devcontainer/setup-dev.sh && .devcontainer/setup-dev.sh",
// VS Code customizations
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode"
]
}
}
}

View File

@@ -13,7 +13,7 @@
"features": {
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"moby": true,
"moby": false,
"dockerDashComposeVersion": "v2"
},
"ghcr.io/devcontainers/features/node:1": {

View File

@@ -3,76 +3,30 @@
echo "🔧 Setting up Superset development environment..."
# System dependencies and uv are now pre-installed in the Docker image
# This speeds up Codespace creation significantly!
# The universal image has most tools, just need Superset-specific libs
echo "📦 Installing Superset-specific dependencies..."
sudo apt-get update
sudo apt-get install -y \
libsasl2-dev \
libldap2-dev \
libpq-dev \
tmux \
gh
# Create virtual environment using uv
echo "🐍 Creating Python virtual environment..."
if ! uv venv; then
echo "❌ Failed to create virtual environment"
exit 1
fi
# Install uv for fast Python package management
echo "📦 Installing uv..."
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install Python dependencies
echo "📦 Installing Python dependencies..."
if ! uv pip install -r requirements/development.txt; then
echo "❌ Failed to install Python dependencies"
echo "💡 You may need to run this manually after the Codespace starts"
exit 1
fi
# Install pre-commit hooks
echo "🪝 Installing pre-commit hooks..."
if source .venv/bin/activate && pre-commit install; then
echo "✅ Pre-commit hooks installed"
else
echo "⚠️ Pre-commit hooks installation failed (non-critical)"
fi
# Add cargo/bin to PATH for uv
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshrc
# Install Claude Code CLI via npm
echo "🤖 Installing Claude Code..."
if npm install -g @anthropic-ai/claude-code; then
echo "✅ Claude Code installed"
else
echo "⚠️ Claude Code installation failed (non-critical)"
fi
npm install -g @anthropic-ai/claude-code
# Make the start script executable
chmod +x .devcontainer/start-superset.sh
# Add bashrc additions for automatic venv activation
echo "🔧 Setting up automatic environment activation..."
if [ -f ~/.bashrc ]; then
# Check if we've already added our additions
if ! grep -q "Superset Codespaces environment setup" ~/.bashrc; then
echo "" >> ~/.bashrc
cat .devcontainer/bashrc-additions >> ~/.bashrc
echo "✅ Added automatic venv activation to ~/.bashrc"
else
echo "✅ Bashrc additions already present"
fi
else
# Create bashrc if it doesn't exist
cat .devcontainer/bashrc-additions > ~/.bashrc
echo "✅ Created ~/.bashrc with automatic venv activation"
fi
# Also add to zshrc since that's the default shell
if [ -f ~/.zshrc ] || [ -n "$ZSH_VERSION" ]; then
if ! grep -q "Superset Codespaces environment setup" ~/.zshrc; then
echo "" >> ~/.zshrc
cat .devcontainer/bashrc-additions >> ~/.zshrc
echo "✅ Added automatic venv activation to ~/.zshrc"
fi
fi
echo "✅ Development environment setup complete!"
echo ""
echo "📝 The virtual environment will be automatically activated in new terminals"
echo ""
echo "🔄 To activate in this terminal, run:"
echo " source ~/.bashrc"
echo ""
echo "🚀 To start Superset:"
echo " start-superset"
echo ""
echo "🚀 Run '.devcontainer/start-superset.sh' to start Superset"

View File

@@ -1,14 +1,14 @@
#!/bin/bash
# Startup script for Superset in Codespaces
# Log to a file for debugging
LOG_FILE="/tmp/superset-startup.log"
echo "[$(date)] Starting Superset startup script" >> "$LOG_FILE"
echo "[$(date)] User: $(whoami), PWD: $(pwd)" >> "$LOG_FILE"
echo "🚀 Starting Superset in Codespaces..."
echo "🌐 Frontend will be available at port 9001"
# Check if MCP is enabled
if [ "$ENABLE_MCP" = "true" ]; then
echo "🤖 MCP Service will be available at port 5008"
fi
# Find the workspace directory (Codespaces clones as 'superset', not 'superset-2')
WORKSPACE_DIR=$(find /workspaces -maxdepth 1 -name "superset*" -type d | head -1)
if [ -n "$WORKSPACE_DIR" ]; then
@@ -18,71 +18,32 @@ else
echo "📁 Using current directory: $(pwd)"
fi
# Wait for Docker to be available
echo "⏳ Waiting for Docker to start..."
echo "[$(date)] Waiting for Docker..." >> "$LOG_FILE"
max_attempts=30
attempt=0
while ! docker info > /dev/null 2>&1; do
if [ $attempt -eq $max_attempts ]; then
echo "❌ Docker failed to start after $max_attempts attempts"
echo "[$(date)] Docker failed to start after $max_attempts attempts" >> "$LOG_FILE"
echo "🔄 Please restart the Codespace or run this script manually later"
exit 1
fi
echo " Attempt $((attempt + 1))/$max_attempts..."
echo "[$(date)] Docker check attempt $((attempt + 1))/$max_attempts" >> "$LOG_FILE"
sleep 2
attempt=$((attempt + 1))
done
echo "✅ Docker is ready!"
echo "[$(date)] Docker is ready" >> "$LOG_FILE"
# Check if Superset containers are already running
if docker ps | grep -q "superset"; then
echo "✅ Superset containers are already running!"
echo ""
echo "🌐 To access Superset:"
echo " 1. Click the 'Ports' tab at the bottom of VS Code"
echo " 2. Find port 9001 and click the globe icon to open"
echo " 3. Wait 10-20 minutes for initial startup"
echo ""
echo "📝 Login credentials: admin/admin"
exit 0
# Check if docker is running
if ! docker info > /dev/null 2>&1; then
echo " Waiting for Docker to start..."
sleep 5
fi
# Clean up any existing containers
echo "🧹 Cleaning up existing containers..."
docker-compose -f docker-compose-light.yml down
docker-compose -f docker-compose-light.yml --profile mcp down
# Start services
echo "🏗️ Starting Superset in background (daemon mode)..."
echo "🏗️ Building and starting services..."
echo ""
echo "📝 Once started, login with:"
echo " Username: admin"
echo " Password: admin"
echo ""
echo "📋 Running in foreground with live logs (Ctrl+C to stop)..."
# Start in detached mode
docker-compose -f docker-compose-light.yml up -d
echo ""
echo "✅ Docker Compose started successfully!"
echo ""
echo "📋 Important information:"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "⏱️ Initial startup takes 10-20 minutes"
echo "🌐 Check the 'Ports' tab for your Superset URL (port 9001)"
echo "👤 Login: admin / admin"
echo ""
echo "📊 Useful commands:"
echo " docker-compose -f docker-compose-light.yml logs -f # Follow logs"
echo " docker-compose -f docker-compose-light.yml ps # Check status"
echo " docker-compose -f docker-compose-light.yml down # Stop services"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "💤 Keeping terminal open for 60 seconds to test persistence..."
sleep 60
echo "✅ Test complete - check if this terminal is still visible!"
# Show final status
docker-compose -f docker-compose-light.yml ps
# Run docker-compose and capture exit code
if [ "$ENABLE_MCP" = "true" ]; then
echo "🤖 Starting with MCP Service enabled..."
docker-compose -f docker-compose-light.yml --profile mcp up
else
docker-compose -f docker-compose-light.yml up
fi
EXIT_CODE=$?
# If it failed, provide helpful instructions

View File

@@ -0,0 +1,29 @@
{
// Extend the base configuration
"extends": "../devcontainer-base.json",
"name": "Apache Superset Development with MCP",
// Forward ports for development
"forwardPorts": [9001, 5008],
"portsAttributes": {
"9001": {
"label": "Superset (via Webpack Dev Server)",
"onAutoForward": "notify",
"visibility": "public"
},
"5008": {
"label": "MCP Service (Model Context Protocol)",
"onAutoForward": "notify",
"visibility": "private"
}
},
// Auto-start Superset with MCP on Codespace resume
"postStartCommand": "ENABLE_MCP=true .devcontainer/start-superset.sh",
// Environment variables
"containerEnv": {
"ENABLE_MCP": "true"
}
}

41
.envrc.example Normal file
View File

@@ -0,0 +1,41 @@
#
# 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.
#
# Auto-configure Docker Compose for multi-instance support
# Requires direnv: https://direnv.net/
#
# Install: brew install direnv (or apt install direnv)
# Setup: Add 'eval "$(direnv hook bash)"' to ~/.bashrc (or ~/.zshrc)
# Allow: Run 'direnv allow' in this directory once
# Generate unique project name from directory
export COMPOSE_PROJECT_NAME=$(basename "$PWD" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9]/-/g')
# Find available ports sequentially to avoid collisions
_is_free() { ! lsof -i ":$1" &>/dev/null 2>&1; }
_p=80; while ! _is_free $_p; do ((_p++)); done; export NGINX_PORT=$_p
_p=8088; while ! _is_free $_p; do ((_p++)); done; export SUPERSET_PORT=$_p
_p=9000; while ! _is_free $_p; do ((_p++)); done; export NODE_PORT=$_p
_p=8080; while ! _is_free $_p || [ $_p -eq $NGINX_PORT ]; do ((_p++)); done; export WEBSOCKET_PORT=$_p
_p=8081; while ! _is_free $_p || [ $_p -eq $WEBSOCKET_PORT ]; do ((_p++)); done; export CYPRESS_PORT=$_p
_p=5432; while ! _is_free $_p; do ((_p++)); done; export DATABASE_PORT=$_p
_p=6379; while ! _is_free $_p; do ((_p++)); done; export REDIS_PORT=$_p
unset _p _is_free
echo "🐳 Superset configured: http://localhost:$SUPERSET_PORT (dev: localhost:$NODE_PORT)"

3
.github/CODEOWNERS vendored
View File

@@ -20,7 +20,7 @@
# Notify PMC members of changes to GitHub Actions
/.github/ @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @kgabryje @dpgaspar
/.github/ @villebro @geido @eschutho @rusackas @betodealmeida @nytai @mistercrunch @craig-rueda @kgabryje @dpgaspar @sadpandajoe @hainenber
# Notify PMC members of changes to required GitHub Actions
@@ -33,6 +33,7 @@
# Notify PMC members of changes to extension-related files
/docs/developer_portal/extensions/ @michael-s-molina @villebro @rusackas
/superset-core/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
/superset-extensions-cli/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje
/superset/core/ @michael-s-molina @villebro @geido @eschutho @rusackas @kgabryje

View File

@@ -41,8 +41,8 @@ body:
label: Superset version
options:
- master / latest-dev
- "6.0.0"
- "5.0.0"
- "4.1.3"
validations:
required: true
- type: dropdown

37
.github/SECURITY.md vendored
View File

@@ -18,10 +18,32 @@ e-mail address [security@superset.apache.org](mailto:security@superset.apache.or
More details can be found on the ASF website at
[ASF vulnerability reporting process](https://apache.org/security/#reporting-a-vulnerability)
We kindly ask you to include the following information in your report:
- Apache Superset version that you are using
- A sanitized copy of your `superset_config.py` file or any config overrides
- Detailed steps to reproduce the vulnerability
**Submission Standards & AI Policy**
To ensure engineering focus remains on verified risks and to manage high reporting volumes, all reports must meet the following criteria:
- Plain Text Format: In accordance with Apache guidelines, please provide all details in plain text within the email body. Avoid sending PDFs, Word documents, or password-protected archives.
- Mandatory AI Disclosure: If you utilized Large Language Models (LLMs) or AI tools to identify a flaw or assist in writing a report, you must disclose this in your submission so our triage team can contextualize the findings.
- Human-Verified PoC: All submissions must include a manual, step-by-step Proof of Concept (PoC) performed on a supported release. Raw AI outputs, hypothetical chat transcripts, or unverified scanner logs will be closed as Invalid.
We kindly ask you to include the following information in your report to assist our developers in triaging and remediating issues efficiently:
- Version/Commit: The specific version of Apache Superset or the Git commit hash you are using.
- Configuration: A sanitized copy of your `superset_config.py` file or any config overrides.
- Environment: Your deployment method (e.g., Docker Compose, Helm, or source) and relevant OS/Browser details.
- Impacted Component: Identification of the affected area (e.g., Python backend, React frontend, or a specific database connector).
- Expected vs. Actual Behavior: A clear description of the intended system behavior versus the observed vulnerability.
- Detailed Reproduction Steps: Clear, manual steps to reproduce the vulnerability.
**Out of Scope Vulnerabilities**
To prioritize engineering efforts on genuine architectural risks, the following scenarios are explicitly out of scope and will not be issued a CVE:
- Attacks requiring Admin privileges: (e.g., CSS injection, template manipulation, dashboard ownership overrides, or modifying global system settings). Per the CVE vulnerability definition in CNA Operational Rules 4.1, a qualifying vulnerability must allow violation of a security policy. The Admin role is a fully trusted operational boundary defined by Apache Superset's security policy; actions within this boundary do not violate that policy and are therefore considered intended capabilities 'by design,' not vulnerabilities.
- Brute Force and Rate Limiting: Reports targeting a lack of resource exhaustion protections, generic rate-limiting, or volumetric Denial of Service (DoS) attempts.
- Theoretical attack vectors: Issues without a demonstrable, reproducible exploit path.
- Non-Exploitable Findings: Missing security headers, generic banner disclosures, or descriptive error messages that do not lead to a direct, documented exploit.
**Outcome of Reports**
Reports that are deemed out-of-scope for a CVE but represent valid security best practices or hardening opportunities may be converted into public GitHub issues. This allows the community to contribute to the general hardening of the platform even when a specific vulnerability threshold is not met.
Note that Apache Superset is not responsible for any third-party dependencies that may
have security issues. Any vulnerabilities found in third-party dependencies should be
@@ -29,6 +51,13 @@ reported to the maintainers of those projects. Results from security scans of Ap
Superset dependencies found on its official Docker image can be remediated at release time
by extending the image itself.
**Vulnerability Aggregation & CVE Attribution**
In accordance with MITRE CNA Operational Rules (4.1.10, 4.1.11, and 4.2.13), Apache Superset issues CVEs based on the underlying architectural root cause rather than the number of affected endpoints or exploit payloads.
- Aggregation: If multiple exploit vectors stem from the same programmatic failure or shared vulnerable code, they must be aggregated into a single, comprehensive report.
- Independent Fixes: Separate CVEs will only be assigned if the vulnerabilities reside in decoupled architectural modules and can be fixed independently of one another.
Reports that fail to aggregate related findings will be merged during triage to ensure an accurate and defensible CVE record.
**Your responsible disclosure and collaboration are invaluable.**
## Extra Information

View File

@@ -10,7 +10,7 @@ jobs:
steps:
- name: Check if the PR is a draft
id: check-draft
uses: actions/github-script@v6
uses: actions/github-script@v8
with:
script: |
const isDraft = context.payload.pull_request.draft;

View File

@@ -26,16 +26,16 @@ runs:
- name: Set up QEMU
if: ${{ inputs.build == 'true' }}
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- name: Set up Docker Buildx
if: ${{ inputs.build == 'true' }}
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
- name: Try to login to DockerHub
if: ${{ inputs.login-to-dockerhub == 'true' }}
continue-on-error: true
uses: docker/login-action@v3
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
username: ${{ inputs.dockerhub-user }}
password: ${{ inputs.dockerhub-token }}

View File

@@ -1 +1 @@
../LLMS.md
../AGENTS.md

180
.github/dependabot.yml vendored
View File

@@ -4,21 +4,50 @@ updates:
- package-ecosystem: "github-actions"
directory: "/"
ignore:
# Ignore temporarily as release schedule is too mentally taxing for dep-handling maintainers
# Additionally, very few PRs are reviewed by this action.
- dependency-name: anthropics/claude-code-action
schedule:
interval: "monthly"
interval: "daily"
- package-ecosystem: "npm"
ignore:
# not until React >= 18.0.0
# TODO: remove below entries until React >= 18.0.0
- dependency-name: "storybook"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- dependency-name: "@storybook*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- dependency-name: "eslint-plugin-storybook"
- dependency-name: "react-error-boundary"
- dependency-name: "@rjsf/*"
# remark-gfm v4+ requires react-markdown v9+, which needs React 18
- dependency-name: "remark-gfm"
- dependency-name: "react-markdown"
# TODO: remove below entries until React >= 19.0.0
- dependency-name: "react-icons"
# JSDOM v30 doesn't play well with Jest v30
# Source: https://jestjs.io/blog#known-issues
# GH thread: https://github.com/jsdom/jsdom/issues/3492
- dependency-name: "jest-environment-jsdom"
# `@swc/plugin-transform-imports` doesn't work with current Webpack-SWC hybrid setup
# See https://github.com/apache/superset/pull/37384#issuecomment-3793991389
# TODO: remove the plugin once Lodash usage has been migrated to a more readily tree-shakeable alternative
- dependency-name: "@swc/plugin-transform-imports"
# `just-handlerbars-helpers` library in plugin-chart-handlebars requires `currencyformatter`` to be < 2
- dependency-name: "currencyformatter.js"
update-types: ["version-update:semver-major"]
groups:
storybook:
applies-to: version-updates
patterns:
- "@storybook*"
- "storybook"
update-types:
- "patch"
directory: "/superset-frontend/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -40,21 +69,37 @@ updates:
- package-ecosystem: "npm"
directory: ".github/actions"
schedule:
interval: "monthly"
interval: "daily"
open-pull-requests-limit: 10
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/docs/"
ignore:
# TODO: remove below entries until React >= 18.0.0 in superset-frontend
- dependency-name: "storybook"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- dependency-name: "@storybook*"
update-types: ["version-update:semver-major", "version-update:semver-minor"]
- dependency-name: "eslint-plugin-storybook"
- dependency-name: "react-error-boundary"
groups:
storybook:
applies-to: version-updates
patterns:
- "@storybook*"
- "storybook"
update-types:
- "patch"
schedule:
interval: "monthly"
interval: "daily"
open-pull-requests-limit: 10
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-websocket/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -63,7 +108,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-websocket/utils/client-ws-app/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -75,17 +120,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-calendar/"
schedule:
interval: "monthly"
labels:
- npm
- dependabot
open-pull-requests-limit: 5
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-histogram/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -95,7 +130,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-partition/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -105,7 +140,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-world-map/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -114,8 +149,11 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/plugin-chart-pivot-table/"
ignore:
# TODO: remove below entries until React >= 19.0.0
- dependency-name: "react-icons"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -125,7 +163,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-chord/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -135,7 +173,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-horizon/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -145,7 +183,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-rose/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -155,7 +193,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-preset-chart-deckgl/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -164,8 +202,11 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/plugin-chart-table/"
ignore:
# TODO: remove below entries until React >= 19.0.0
- dependency-name: "react-icons"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -175,7 +216,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-country-map/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -185,17 +226,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-map-box/"
schedule:
interval: "monthly"
labels:
- npm
- dependabot
open-pull-requests-limit: 5
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-sankey/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -205,7 +236,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-preset-chart-nvd3/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -215,17 +246,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/plugin-chart-word-cloud/"
schedule:
interval: "monthly"
labels:
- npm
- dependabot
open-pull-requests-limit: 5
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-event-flow/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -235,17 +256,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-paired-t-test/"
schedule:
interval: "monthly"
labels:
- npm
- dependabot
open-pull-requests-limit: 5
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-sankey-loop/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -255,7 +266,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/plugin-chart-echarts/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -263,9 +274,9 @@ updates:
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/preset-chart-xy/"
directory: "/superset-frontend/plugins/plugin-chart-ag-grid-table/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -273,9 +284,9 @@ updates:
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-heatmap/"
directory: "/superset-frontend/plugins/plugin-chart-cartodiagram/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -285,17 +296,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-parallel-coordinates/"
schedule:
interval: "monthly"
labels:
- npm
- dependabot
open-pull-requests-limit: 5
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/legacy-plugin-chart-sunburst/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -304,8 +305,12 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/plugins/plugin-chart-handlebars/"
ignore:
# `just-handlerbars-helpers` library in plugin-chart-handlebars requires `currencyformatter`` to be < 2
- dependency-name: "currencyformatter.js"
update-types: ["version-update:semver-major"]
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -315,7 +320,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/packages/generator-superset/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -325,7 +330,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/packages/superset-ui-chart-controls/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -338,18 +343,9 @@ updates:
# not until React >= 18.0.0
- dependency-name: "react-markdown"
- dependency-name: "remark-gfm"
- dependency-name: "react-error-boundary"
schedule:
interval: "monthly"
labels:
- npm
- dependabot
open-pull-requests-limit: 5
versioning-strategy: increase
- package-ecosystem: "npm"
directory: "/superset-frontend/packages/superset-ui-demo/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot
@@ -359,7 +355,7 @@ updates:
- package-ecosystem: "npm"
directory: "/superset-frontend/packages/superset-ui-switchboard/"
schedule:
interval: "monthly"
interval: "daily"
labels:
- npm
- dependabot

View File

@@ -59,6 +59,15 @@ build-assets() {
say "::endgroup::"
}
build-embedded-sdk() {
cd "$GITHUB_WORKSPACE/superset-embedded-sdk"
say "::group::Build embedded SDK bundle for E2E tests"
npm ci
npm run build
say "::endgroup::"
}
build-instrumented-assets() {
cd "$GITHUB_WORKSPACE/superset-frontend"
@@ -117,6 +126,19 @@ testdata() {
say "::endgroup::"
}
playwright_testdata() {
cd "$GITHUB_WORKSPACE"
say "::group::Load all examples for Playwright tests"
# must specify PYTHONPATH to make `tests.superset_test_config` importable
export PYTHONPATH="$GITHUB_WORKSPACE"
pip install -e .
superset db upgrade
superset load_test_users
superset load_examples
superset init
say "::endgroup::"
}
celery-worker() {
cd "$GITHUB_WORKSPACE"
say "::group::Start Celery worker"
@@ -182,6 +204,95 @@ cypress-run-all() {
kill $flaskProcessId
}
playwright-install() {
cd "$GITHUB_WORKSPACE/superset-frontend"
say "::group::Install Playwright browsers"
npx playwright install --with-deps chromium
# Create output directories for test results and debugging
mkdir -p playwright-results
mkdir -p test-results
say "::endgroup::"
}
playwright-run() {
local APP_ROOT=$1
local TEST_PATH=$2
# Start Flask from the project root (same as Cypress)
cd "$GITHUB_WORKSPACE"
local flasklog="${HOME}/flask-playwright.log"
local port=8081
PLAYWRIGHT_BASE_URL="http://localhost:${port}"
if [ -n "$APP_ROOT" ]; then
export SUPERSET_APP_ROOT=$APP_ROOT
PLAYWRIGHT_BASE_URL=${PLAYWRIGHT_BASE_URL}${APP_ROOT}/
fi
export PLAYWRIGHT_BASE_URL
nohup flask run --no-debugger -p $port >"$flasklog" 2>&1 </dev/null &
local flaskProcessId=$!
# Ensure cleanup on exit
trap "kill $flaskProcessId 2>/dev/null || true" EXIT
# Wait for server to be ready with health check
local timeout=60
say "Waiting for Flask server to start on port $port..."
while [ $timeout -gt 0 ]; do
if curl -f ${PLAYWRIGHT_BASE_URL}/health >/dev/null 2>&1; then
say "Flask server is ready"
break
fi
sleep 1
timeout=$((timeout - 1))
done
if [ $timeout -eq 0 ]; then
echo "::error::Flask server failed to start within 60 seconds"
echo "::group::Flask startup log"
cat "$flasklog"
echo "::endgroup::"
return 1
fi
# Change to frontend directory for Playwright execution
cd "$GITHUB_WORKSPACE/superset-frontend"
say "::group::Run Playwright tests"
echo "Running Playwright with baseURL: ${PLAYWRIGHT_BASE_URL}"
if [ -n "$TEST_PATH" ]; then
# Check if there are any test files in the specified path
if ! find "playwright/tests/${TEST_PATH}" -name "*.spec.ts" -type f 2>/dev/null | grep -q .; then
echo "No test files found in ${TEST_PATH} - skipping test run"
say "::endgroup::"
kill $flaskProcessId
return 0
fi
echo "Running tests: ${TEST_PATH}"
# Set INCLUDE_EXPERIMENTAL=true to allow experimental tests to run
export INCLUDE_EXPERIMENTAL=true
npx playwright test "${TEST_PATH}" --output=playwright-results
local status=$?
# Unset to prevent leaking into subsequent commands
unset INCLUDE_EXPERIMENTAL
else
echo "Running all required tests (experimental/ excluded via playwright.config.ts)"
npx playwright test --output=playwright-results
local status=$?
fi
say "::endgroup::"
# After job is done, print out Flask log for debugging
echo "::group::Flask log for Playwright run"
cat "$flasklog"
echo "::endgroup::"
# make sure the program exits
kill $flaskProcessId
return $status
}
eyes-storybook-dependencies() {
say "::group::install eyes-storyook dependencies"
sudo apt-get update -y && sudo apt-get -y install gconf-service ca-certificates libxshmfence-dev fonts-liberation libappindicator3-1 libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libgconf-2-4 libglib2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libnspr4 libnss3 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release xdg-utils libappindicator1
@@ -202,26 +313,3 @@ monitor_memory() {
sleep 2
done
}
cypress-run-applitools() {
cd "$GITHUB_WORKSPACE/superset-frontend/cypress-base"
local flasklog="${HOME}/flask.log"
local port=8081
local cypress="./node_modules/.bin/cypress run"
local browser=${CYPRESS_BROWSER:-chrome}
export CYPRESS_BASE_URL="http://localhost:${port}"
nohup flask run --no-debugger -p $port >"$flasklog" 2>&1 </dev/null &
local flaskProcessId=$!
$cypress --spec "cypress/applitools/**/*" --browser "$browser" --headless
say "::group::Flask log for default run"
cat "$flasklog"
say "::endgroup::"
# make sure the program exits
kill $flaskProcessId
}

View File

@@ -32,7 +32,7 @@ jobs:
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: true
ref: master
@@ -41,7 +41,7 @@ jobs:
uses: ./.github/actions/setup-supersetbot/
- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: "3.10"
@@ -51,27 +51,31 @@ jobs:
- name: supersetbot bump-python -p "${{ github.event.inputs.package }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
INPUT_PACKAGE: ${{ github.event.inputs.package }}
INPUT_GROUP: ${{ github.event.inputs.group }}
INPUT_EXTRA_FLAGS: ${{ github.event.inputs.extra-flags }}
INPUT_LIMIT: ${{ github.event.inputs.limit }}
run: |
git config --global user.email "action@github.com"
git config --global user.name "GitHub Action"
PACKAGE_OPT=""
if [ -n "${{ github.event.inputs.package }}" ]; then
PACKAGE_OPT="-p ${{ github.event.inputs.package }}"
if [ -n "${INPUT_PACKAGE}" ]; then
PACKAGE_OPT="-p ${INPUT_PACKAGE}"
fi
GROUP_OPT=""
if [ -n "${{ github.event.inputs.group }}" ]; then
GROUP_OPT="-g ${{ github.event.inputs.group }}"
if [ -n "${INPUT_GROUP}" ]; then
GROUP_OPT="-g ${INPUT_GROUP}"
fi
EXTRA_FLAGS="${{ github.event.inputs.extra-flags }}"
EXTRA_FLAGS="${INPUT_EXTRA_FLAGS}"
supersetbot bump-python \
--verbose \
--use-current-repo \
--include-subpackages \
--limit ${{ github.event.inputs.limit }} \
--limit ${INPUT_LIMIT} \
$PACKAGE_OPT \
$GROUP_OPT \
$EXTRA_FLAGS

View File

@@ -31,7 +31,7 @@ jobs:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
if: steps.check_queued.outputs.count >= 20
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Cancel duplicate workflow runs
if: steps.check_queued.outputs.count >= 20

View File

@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive

View File

@@ -25,9 +25,9 @@ jobs:
pull-requests: write
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Check and notify
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
github-token: ${{ github.token }}
script: |
@@ -69,7 +69,7 @@ jobs:
`❗ @${pull.user.login} Your base branch \`${currentBranch}\` has ` +
'also updated `superset/migrations`.\n' +
'\n' +
'**Please consider rebasing your branch and [resolving potential db migration conflicts](https://github.com/apache/superset/blob/master/CONTRIBUTING.md#merging-db-migrations).**',
'**Please consider rebasing your branch and [resolving potential db migration conflicts](https://superset.apache.org/docs/contributing/development#merging-db-migrations).**',
});
}
}

View File

@@ -44,7 +44,7 @@ jobs:
pull-requests: write
steps:
- name: Comment access denied
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const message = `👋 Hi @${{ github.event.comment.user.login || github.event.review.user.login || github.event.issue.user.login }}!
@@ -71,12 +71,12 @@ jobs:
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 1
- name: Run Claude PR Action
uses: anthropics/claude-code-action@beta
uses: anthropics/claude-code-action@5fb899572b81d2bb648d4d187173a2f423a9677c # beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
timeout_minutes: "60"

View File

@@ -31,7 +31,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Check for file changes
id: check
@@ -41,7 +41,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -53,6 +53,6 @@ jobs:
- name: Perform CodeQL Analysis
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{matrix.language}}"

View File

@@ -27,9 +27,9 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout Repository"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: "Dependency Review"
uses: actions/dependency-review-action@v4
uses: actions/dependency-review-action@2031cfc080254a8a887f58cffee85186f0e49e48 # v4.9.0
continue-on-error: true
with:
fail-on-severity: critical
@@ -39,13 +39,9 @@ jobs:
# pkg:npm/store2@2.14.2
# adding an exception for an ambigious license on store2, which has been resolved in
# the latest version. It's MIT: https://github.com/nbubna/store/blob/master/LICENSE-MIT
# pkg:npm/applitools/*
# adding exception for all applitools modules (eyes-cypress and its dependencies),
# which has an explicit OSS license approved by ASF
# license: https://applitools.com/legal/open-source-terms-of-use/
# pkg:npm/node-forge@1.3.1
# selecting BSD-3-Clause licensing terms for node-forge to ensure compatibility with Apache
allow-dependencies-licenses: pkg:npm/store2@2.14.2, pkg:npm/applitools/core, pkg:npm/applitools/core-base, pkg:npm/applitools/css-tree, pkg:npm/applitools/ec-client, pkg:npm/applitools/eg-socks5-proxy-server, pkg:npm/applitools/eyes, pkg:npm/applitools/eyes-cypress, pkg:npm/applitools/nml-client, pkg:npm/applitools/tunnel-client, pkg:npm/applitools/utils, pkg:npm/node-forge@1.3.1, pkg:npm/rgbcolor, pkg:npm/jszip@3.10.1
allow-dependencies-licenses: pkg:npm/store2@2.14.2, pkg:npm/node-forge@1.3.1, pkg:npm/rgbcolor, pkg:npm/jszip@3.10.1
python-dependency-liccheck:
# NOTE: Configuration for liccheck lives in our pyproject.yml.
@@ -53,7 +49,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: "Checkout Repository"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Setup Python
uses: ./.github/actions/setup-backend/

View File

@@ -42,7 +42,7 @@ jobs:
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
@@ -117,7 +117,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Check for file changes

View File

@@ -16,10 +16,12 @@ jobs:
id: check
shell: bash
run: |
if [ -n "${{ (secrets.NPM_TOKEN != '') || '' }}" ]; then
if [ -n "${NPM_TOKEN}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
env:
NPM_TOKEN: ${{ (secrets.NPM_TOKEN != '') || '' }}
build:
needs: config
if: needs.config.outputs.has-secrets
@@ -28,8 +30,8 @@ jobs:
run:
working-directory: superset-embedded-sdk
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-embedded-sdk/.nvmrc'
registry-url: 'https://registry.npmjs.org'

View File

@@ -18,8 +18,8 @@ jobs:
run:
working-directory: superset-embedded-sdk
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-embedded-sdk/.nvmrc'
registry-url: 'https://registry.npmjs.org'

View File

@@ -20,10 +20,12 @@ jobs:
id: check
shell: bash
run: |
if [ -n "${{ (secrets.AWS_ACCESS_KEY_ID != '' && secrets.AWS_SECRET_ACCESS_KEY != '') || '' }}" ]; then
if [ -n "${AWS_ACCESS_KEY_ID}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
env:
AWS_ACCESS_KEY_ID: ${{ (secrets.AWS_ACCESS_KEY_ID != '' && secrets.AWS_SECRET_ACCESS_KEY != '') || '' }}
ephemeral-env-cleanup:
needs: config
if: needs.config.outputs.has-secrets
@@ -33,7 +35,7 @@ jobs:
pull-requests: write
steps:
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 # v6
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -56,7 +58,7 @@ jobs:
- name: Login to Amazon ECR
if: steps.describe-services.outputs.active == 'true'
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
uses: aws-actions/amazon-ecr-login@f2e9fc6c2b355c1890b65e6f6f0e2ac3e6e22f78 # v2
- name: Delete ECR image tag
if: steps.describe-services.outputs.active == 'true'
@@ -69,7 +71,7 @@ jobs:
- name: Comment (success)
if: steps.describe-services.outputs.active == 'true'
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
github-token: ${{github.token}}
script: |

View File

@@ -47,7 +47,7 @@ jobs:
id: eval-label
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
LABEL_NAME="${{ github.event.inputs.label_name }}"
LABEL_NAME="${INPUT_LABEL_NAME}"
else
LABEL_NAME="${{ github.event.label.name }}"
fi
@@ -60,10 +60,12 @@ jobs:
echo "result=noop" >> $GITHUB_OUTPUT
fi
env:
INPUT_LABEL_NAME: ${{ github.event.inputs.label_name }}
- name: Get event SHA
id: get-sha
if: steps.eval-label.outputs.result == 'up'
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
@@ -94,7 +96,7 @@ jobs:
core.setOutput("sha", prSha);
- name: Looking for feature flags in PR description
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
id: eval-feature-flags
if: steps.eval-label.outputs.result == 'up'
with:
@@ -116,7 +118,7 @@ jobs:
return results;
- name: Reply with confirmation comment
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
if: steps.eval-label.outputs.result == 'up'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
@@ -160,7 +162,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ needs.ephemeral-env-label.outputs.sha }} : ${{steps.get-sha.outputs.sha}} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ needs.ephemeral-env-label.outputs.sha }}
persist-credentials: false
@@ -189,7 +191,7 @@ jobs:
--extra-flags "--build-arg INCLUDE_CHROMIUM=false"
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 # v6
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -197,7 +199,7 @@ jobs:
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
uses: aws-actions/amazon-ecr-login@f2e9fc6c2b355c1890b65e6f6f0e2ac3e6e22f78 # v2
- name: Load, tag and push image to ECR
id: push-image
@@ -220,12 +222,12 @@ jobs:
pull-requests: write
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
uses: aws-actions/configure-aws-credentials@8df5847569e6427dd6c4fb1cf565c83acfa8afa7 # v6
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -233,7 +235,7 @@ jobs:
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
uses: aws-actions/amazon-ecr-login@f2e9fc6c2b355c1890b65e6f6f0e2ac3e6e22f78 # v2
- name: Check target image exists in ECR
id: check-image
@@ -248,7 +250,7 @@ jobs:
- name: Fail on missing container image
if: steps.check-image.outcome == 'failure'
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
github-token: ${{ github.token }}
script: |
@@ -263,7 +265,7 @@ jobs:
- name: Fill in the new image ID in the Amazon ECS task definition
id: task-def
uses: aws-actions/amazon-ecs-render-task-definition@v1
uses: aws-actions/amazon-ecs-render-task-definition@77954e213ba1f9f9cb016b86a1d4f6fcdea0d57e # v1
with:
task-definition: .github/workflows/ecs-task-definition.json
container-name: superset-ci
@@ -276,7 +278,9 @@ jobs:
- name: Describe ECS service
id: describe-services
run: |
echo "active=$(aws ecs describe-services --cluster superset-ci --services pr-${{ github.event.inputs.issue_number || github.event.pull_request.number }}-service | jq '.services[] | select(.status == "ACTIVE") | any')" >> $GITHUB_OUTPUT
echo "active=$(aws ecs describe-services --cluster superset-ci --services pr-${INPUT_ISSUE_NUMBER}-service | jq '.services[] | select(.status == "ACTIVE") | any')" >> $GITHUB_OUTPUT
env:
INPUT_ISSUE_NUMBER: ${{ github.event.inputs.issue_number || github.event.pull_request.number }}
- name: Create ECS service
id: create-service
if: steps.describe-services.outputs.active != 'true'
@@ -296,7 +300,7 @@ jobs:
--tags key=pr,value=$PR_NUMBER key=github_user,value=${{ github.actor }}
- name: Deploy Amazon ECS task definition
id: deploy-task
uses: aws-actions/amazon-ecs-deploy-task-definition@v2
uses: aws-actions/amazon-ecs-deploy-task-definition@fc8fc60f3a60ffd500fcb13b209c59d221ac8c8c # v2
with:
task-definition: ${{ steps.task-def.outputs.task-definition }}
service: pr-${{ github.event.inputs.issue_number || github.event.pull_request.number }}-service
@@ -307,7 +311,9 @@ jobs:
- name: List tasks
id: list-tasks
run: |
echo "task=$(aws ecs list-tasks --cluster superset-ci --service-name pr-${{ github.event.inputs.issue_number || github.event.pull_request.number }}-service | jq '.taskArns | first')" >> $GITHUB_OUTPUT
echo "task=$(aws ecs list-tasks --cluster superset-ci --service-name pr-${INPUT_ISSUE_NUMBER}-service | jq '.taskArns | first')" >> $GITHUB_OUTPUT
env:
INPUT_ISSUE_NUMBER: ${{ github.event.inputs.issue_number || github.event.pull_request.number }}
- name: Get network interface
id: get-eni
run: |
@@ -318,7 +324,7 @@ jobs:
echo "ip=$(aws ec2 describe-network-interfaces --network-interface-ids ${{ steps.get-eni.outputs.eni }} | jq -r '.NetworkInterfaces | first | .Association.PublicIp')" >> $GITHUB_OUTPUT
- name: Comment (success)
if: ${{ success() }}
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
github-token: ${{github.token}}
script: |
@@ -331,7 +337,7 @@ jobs:
});
- name: Comment (failure)
if: ${{ failure() }}
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
github-token: ${{github.token}}
script: |

View File

@@ -16,10 +16,12 @@ jobs:
id: check
shell: bash
run: |
if [ -n "${{ (secrets.FOSSA_API_KEY != '' ) || '' }}" ]; then
if [ -n "${FOSSA_API_KEY}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
env:
FOSSA_API_KEY: ${{ (secrets.FOSSA_API_KEY != '' ) || '' }}
license_check:
needs: config
if: needs.config.outputs.has-secrets
@@ -27,12 +29,12 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
- name: Setup Java
uses: actions/setup-java@v5
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: "temurin"
java-version: "11"

View File

@@ -14,10 +14,10 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Checkout Repository
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: '20'

View File

@@ -17,7 +17,7 @@ jobs:
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

View File

@@ -9,7 +9,7 @@ jobs:
pull-requests: write
runs-on: ubuntu-24.04
steps:
- uses: actions/labeler@v5
- uses: actions/labeler@v6
with:
sync-labels: true

View File

@@ -12,7 +12,7 @@ jobs:
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive

View File

@@ -15,12 +15,12 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
- name: Setup Java
uses: actions/setup-java@v5
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: 'temurin'
java-version: '11'

View File

@@ -4,6 +4,9 @@ on:
pull_request:
types: [labeled, unlabeled, opened, reopened, synchronize]
permissions:
pull-requests: read
# cancel previous workflow jobs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
@@ -14,7 +17,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Check for 'hold' label
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
github-token: ${{secrets.GITHUB_TOKEN}}
script: |

View File

@@ -16,7 +16,7 @@ jobs:
pull-requests: write
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive

View File

@@ -8,6 +8,9 @@ on:
pull_request:
types: [synchronize, opened, reopened, ready_for_review]
permissions:
contents: read
# cancel previous workflow jobs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
@@ -21,7 +24,7 @@ jobs:
python-version: ["current", "previous", "next"]
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -39,7 +42,7 @@ jobs:
echo "HOMEBREW_REPOSITORY=$HOMEBREW_REPOSITORY" >>"${GITHUB_ENV}"
brew install norwoodj/tap/helm-docs
- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: '20'
@@ -54,24 +57,32 @@ jobs:
yarn install --immutable
- name: Cache pre-commit environments
uses: actions/cache@v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: ~/.cache/pre-commit
key: pre-commit-v2-${{ runner.os }}-py${{ matrix.python-version }}-${{ hashFiles('.pre-commit-config.yaml') }}
restore-keys: |
pre-commit-v2-${{ runner.os }}-py${{ matrix.python-version }}-
- name: Get changed files
id: changed_files
uses: ./.github/actions/file-changes-action
with:
output: ' '
- name: pre-commit
run: |
set +e # Don't exit immediately on failure
export SKIP=eslint-frontend,type-checking-frontend
pre-commit run --all-files
export SKIP=type-checking-frontend
pre-commit run --files ${{ steps.changed_files.outputs.files }}
PRE_COMMIT_EXIT_CODE=$?
git diff --quiet --exit-code
GIT_DIFF_EXIT_CODE=$?
if [ "${PRE_COMMIT_EXIT_CODE}" -ne 0 ] || [ "${GIT_DIFF_EXIT_CODE}" -ne 0 ]; then
if [ "${PRE_COMMIT_EXIT_CODE}" -ne 0 ]; then
echo "❌ Pre-commit check failed (exit code: ${EXIT_CODE})."
echo "❌ Pre-commit check failed (exit code: ${PRE_COMMIT_EXIT_CODE})."
echo "🔍 Modified files:"
git diff --name-only
else
echo "❌ Git working directory is dirty."
echo "📌 This likely means that pre-commit made changes that were not committed."

View File

@@ -1,70 +0,0 @@
name: Prefer TypeScript
on:
push:
branches:
- "master"
- "[0-9].[0-9]*"
paths:
- "superset-frontend/src/**"
pull_request:
types: [synchronize, opened, reopened, ready_for_review]
paths:
- "superset-frontend/src/**"
# cancel previous workflow jobs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
jobs:
prefer_typescript:
if: github.ref == 'ref/heads/master' && github.event_name == 'pull_request'
name: Prefer TypeScript
runs-on: ubuntu-24.04
permissions:
contents: read
pull-requests: write
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
with:
persist-credentials: false
submodules: recursive
- name: Get changed files
id: changed
uses: ./.github/actions/file-changes-action
with:
githubToken: ${{ github.token }}
- name: Determine if a .js or .jsx file was added
id: check
run: |
js_files_added() {
jq -r '
map(
select(
endswith(".js") or endswith(".jsx")
)
) | join("\n")
' ${HOME}/files_added.json
}
echo "js_files_added=$(js_files_added)" >> $GITHUB_OUTPUT
- if: steps.check.outputs.js_files_added
name: Add Comment to PR
uses: ./.github/actions/comment-on-pr
continue-on-error: true
env:
GITHUB_TOKEN: ${{ github.token }}
with:
msg: |
### WARNING: Prefer TypeScript
Looks like your PR contains new `.js` or `.jsx` files:
```
${{steps.check.outputs.js_files_added}}
```
As decided in [SIP-36](https://github.com/apache/superset/issues/9101), all new frontend code should be written in TypeScript. Please convert above files to TypeScript then re-request review.

View File

@@ -16,17 +16,19 @@ jobs:
id: check
shell: bash
run: |
if [ -n "${{ (secrets.NPM_TOKEN != '' && secrets.GH_PERSONAL_ACCESS_TOKEN != '') || '' }}" ]; then
if [ -n "${NPM_TOKEN}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
env:
NPM_TOKEN: ${{ (secrets.NPM_TOKEN != '' && secrets.GH_PERSONAL_ACCESS_TOKEN != '') || '' }}
build:
needs: config
if: needs.config.outputs.has-secrets
name: Bump version and publish package(s)
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
# pulls all commits (needed for lerna / semantic release to correctly version)
fetch-depth: 0
@@ -42,13 +44,13 @@ jobs:
- name: Install Node.js
if: env.HAS_TAGS
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-frontend/.nvmrc'
- name: Cache npm
if: env.HAS_TAGS
uses: actions/cache@v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: ~/.npm # npm cache files are stored in `~/.npm` on Linux/macOS
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
@@ -62,7 +64,7 @@ jobs:
run: echo "dir=$(npm config get cache)" >> $GITHUB_OUTPUT
- name: Cache npm
if: env.HAS_TAGS
uses: actions/cache@v4
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
id: npm-cache # use this to check for `cache-hit` (`steps.npm-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.npm-cache-dir-path.outputs.dir }}

View File

@@ -7,12 +7,6 @@ on:
# Manual trigger for testing
workflow_dispatch:
inputs:
max_age_hours:
description: 'Maximum age in hours before cleanup'
required: false
default: '48'
type: string
# Common environment variables
env:
@@ -38,13 +32,5 @@ jobs:
- name: Cleanup expired environments
run: |
MAX_AGE="${{ github.event.inputs.max_age_hours || '48' }}"
# Validate max_age is numeric
if [[ ! "$MAX_AGE" =~ ^[0-9]+$ ]]; then
echo "❌ Invalid max_age_hours format: $MAX_AGE (must be numeric)"
exit 1
fi
echo "Cleaning up environments older than ${MAX_AGE}h"
python -m showtime cleanup --older-than "${MAX_AGE}h"
echo "Cleaning up environments respecting TTL labels"
python -m showtime cleanup --respect-ttl

View File

@@ -37,7 +37,7 @@ jobs:
steps:
- name: Security Check - Authorize Maintainers Only
id: auth
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
@@ -61,17 +61,8 @@ jobs:
console.log(`📊 Permission level for ${actor}: ${permission.permission}`);
const authorized = ['write', 'admin'].includes(permission.permission);
if (!authorized) {
console.log(`🚨 Unauthorized user ${actor} - skipping all operations`);
core.setOutput('authorized', 'false');
return;
}
console.log(`✅ Authorized maintainer: ${actor}`);
core.setOutput('authorized', 'true');
// If this is a synchronize event, check if Showtime is active and set blocked label
if (context.eventName === 'pull_request_target' && context.payload.action === 'synchronize') {
// If this is a synchronize event from unauthorized user, check if Showtime is active and set blocked label
if (!authorized && context.eventName === 'pull_request_target' && context.payload.action === 'synchronize') {
console.log(`🔒 Synchronize event detected - checking if Showtime is active`);
// Check if PR has any circus tent labels (Showtime is in use)
@@ -99,13 +90,24 @@ jobs:
}
}
if (!authorized) {
console.log(`🚨 Unauthorized user ${actor} - skipping all operations`);
core.setOutput('authorized', 'false');
return;
}
console.log(`✅ Authorized maintainer: ${actor}`);
core.setOutput('authorized', 'true');
- name: Install Superset Showtime
if: steps.auth.outputs.authorized == 'true'
run: |
echo "::notice::Maintainer ${{ github.actor }} triggered deploy for PR ${{ github.event.pull_request.number || github.event.inputs.pr_number }}"
echo "::notice::Maintainer ${{ github.actor }} triggered deploy for PR ${PULL_REQUEST_NUMBER}"
pip install --upgrade superset-showtime
showtime version
env:
PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number || github.event.inputs.pr_number }}
- name: Check what actions are needed
if: steps.auth.outputs.authorized == 'true'
id: check
@@ -113,12 +115,14 @@ jobs:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
INPUT_PR_NUMBER: ${{ github.event.inputs.pr_number }}
INPUT_SHA: ${{ github.event.inputs.sha }}
run: |
# Bulletproof PR number extraction
if [[ -n "${{ github.event.pull_request.number }}" ]]; then
PR_NUM="${{ github.event.pull_request.number }}"
elif [[ -n "${{ github.event.inputs.pr_number }}" ]]; then
PR_NUM="${{ github.event.inputs.pr_number }}"
elif [[ -n "${INPUT_PR_NUMBER}" ]]; then
PR_NUM="${INPUT_PR_NUMBER}"
else
echo "❌ No PR number found in event or inputs"
exit 1
@@ -127,8 +131,8 @@ jobs:
echo "Using PR number: $PR_NUM"
# Run sync check-only with optional SHA override
if [[ -n "${{ github.event.inputs.sha }}" ]]; then
OUTPUT=$(python -m showtime sync $PR_NUM --check-only --sha "${{ github.event.inputs.sha }}")
if [[ -n "${INPUT_SHA}" ]]; then
OUTPUT=$(python -m showtime sync $PR_NUM --check-only --sha "${INPUT_SHA}")
else
OUTPUT=$(python -m showtime sync $PR_NUM --check-only)
fi
@@ -147,7 +151,7 @@ jobs:
- name: Checkout PR code (only if build needed)
if: steps.auth.outputs.authorized == 'true' && steps.check.outputs.build_needed == 'true'
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ steps.check.outputs.target_sha }}
persist-credentials: false

View File

@@ -23,7 +23,7 @@ jobs:
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
services:
postgres:
image: postgres:16-alpine
image: postgres:17-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
@@ -37,7 +37,7 @@ jobs:
- 16379:6379
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive

View File

@@ -1,91 +0,0 @@
name: Applitools Cypress
on:
schedule:
- cron: "0 1 * * *"
jobs:
config:
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
- name: "Check for secrets"
id: check
shell: bash
run: |
if [ -n "${{ (secrets.APPLITOOLS_API_KEY != '' && secrets.APPLITOOLS_API_KEY != '') || '' }}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
cypress-applitools:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
browser: ["chrome"]
env:
SUPERSET_ENV: development
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
PYTHONPATH: ${{ github.workspace }}
REDIS_PORT: 16379
GITHUB_TOKEN: ${{ github.token }}
APPLITOOLS_APP_NAME: Superset
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_BATCH_ID: ${{ github.sha }}
APPLITOOLS_BATCH_NAME: Superset Cypress
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
ports:
- 15432:5432
redis:
image: redis:7-alpine
ports:
- 16379:6379
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
with:
persist-credentials: false
submodules: recursive
ref: master
- name: Setup Python
uses: ./.github/actions/setup-backend/
- name: Import test data
uses: ./.github/actions/cached-dependencies
with:
run: testdata
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: './superset-frontend/.nvmrc'
- name: Install npm dependencies
uses: ./.github/actions/cached-dependencies
with:
run: npm-install
- name: Build javascript packages
uses: ./.github/actions/cached-dependencies
with:
run: build-instrumented-assets
- name: Setup Postgres
if: steps.check.outcome == 'failure'
uses: ./.github/actions/cached-dependencies
with:
run: setup-postgres
- name: Install cypress
uses: ./.github/actions/cached-dependencies
with:
run: cypress-install
- name: Run Cypress
uses: ./.github/actions/cached-dependencies
env:
CYPRESS_BROWSER: ${{ matrix.browser }}
with:
run: cypress-run-applitools

View File

@@ -1,52 +0,0 @@
name: Applitools Storybook
on:
schedule:
- cron: "0 0 * * *"
env:
APPLITOOLS_APP_NAME: Superset
APPLITOOLS_API_KEY: ${{ secrets.APPLITOOLS_API_KEY }}
APPLITOOLS_BATCH_ID: ${{ github.sha }}
APPLITOOLS_BATCH_NAME: Superset Storybook
jobs:
config:
runs-on: ubuntu-24.04
outputs:
has-secrets: ${{ steps.check.outputs.has-secrets }}
steps:
- name: "Check for secrets"
id: check
shell: bash
run: |
if [ -n "${{ (secrets.APPLITOOLS_API_KEY != '' && secrets.APPLITOOLS_API_KEY != '') || '' }}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
cron:
needs: config
if: needs.config.outputs.has-secrets
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
with:
persist-credentials: false
submodules: recursive
ref: master
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: './superset-frontend/.nvmrc'
- name: Install eyes-storybook dependencies
uses: ./.github/actions/cached-dependencies
with:
run: eyes-storybook-dependencies
- name: Install NPM dependencies
uses: ./.github/actions/cached-dependencies
with:
run: npm-install
- name: Run Applitools Eyes-Storybook
working-directory: ./superset-frontend
run: npx eyes-storybook -u https://superset-storybook.netlify.app/

View File

@@ -1,6 +1,13 @@
name: Docs Deployment
on:
# Deploy after integration tests complete on master
workflow_run:
workflows: ["Python-Integration"]
types: [completed]
branches: [master]
# Also allow manual trigger and direct pushes to docs
push:
paths:
- "docs/**"
@@ -20,28 +27,31 @@ jobs:
id: check
shell: bash
run: |
if [ -n "${{ (secrets.SUPERSET_SITE_BUILD != '' && secrets.SUPERSET_SITE_BUILD != '') || '' }}" ]; then
if [ -n "${SUPERSET_SITE_BUILD}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
env:
SUPERSET_SITE_BUILD: ${{ (secrets.SUPERSET_SITE_BUILD != '' && secrets.SUPERSET_SITE_BUILD != '') || '' }}
build-deploy:
needs: config
if: needs.config.outputs.has-secrets
name: Build & Deploy
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
- name: "Checkout ${{ github.event.workflow_run.head_sha || github.sha }}"
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ github.event.workflow_run.head_sha || github.sha }}
persist-credentials: false
submodules: recursive
- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './docs/.nvmrc'
- name: Setup Python
uses: ./.github/actions/setup-backend/
- uses: actions/setup-java@v5
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5
with:
distribution: 'zulu'
java-version: '21'
@@ -58,6 +68,35 @@ jobs:
working-directory: docs
run: |
yarn install --check-cache
- name: Download database diagnostics (if triggered by integration tests)
if: github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success'
uses: dawidd6/action-download-artifact@8305c0f1062bb0d184d09ef4493ecb9288447732 # v20
continue-on-error: true
with:
workflow: superset-python-integrationtest.yml
run_id: ${{ github.event.workflow_run.id }}
name: database-diagnostics
path: docs/src/data/
- name: Try to download latest diagnostics (for push/dispatch triggers)
if: github.event_name != 'workflow_run'
uses: dawidd6/action-download-artifact@8305c0f1062bb0d184d09ef4493ecb9288447732 # v20
continue-on-error: true
with:
workflow: superset-python-integrationtest.yml
name: database-diagnostics
path: docs/src/data/
branch: master
search_artifacts: true
if_no_artifact_found: warn
- name: Use diagnostics artifact if available
working-directory: docs
run: |
if [ -f "src/data/databases-diagnostics.json" ]; then
echo "Using fresh diagnostics from integration tests"
mv src/data/databases-diagnostics.json src/data/databases.json
else
echo "Using committed databases.json (no artifact found)"
fi
- name: yarn build
working-directory: docs
run: |
@@ -71,5 +110,5 @@ jobs:
destination-github-username: "apache"
destination-repository-name: "superset-site"
target-branch: "asf-site"
commit-message: "deploying docs: ${{ github.event.head_commit.message }} (apache/superset@${{ github.sha }})"
commit-message: "deploying docs: ${{ github.event.head_commit.message || 'triggered by integration tests' }} (apache/superset@${{ github.event.workflow_run.head_sha || github.sha }})"
user-email: dev@superset.apache.org

View File

@@ -4,29 +4,37 @@ on:
pull_request:
paths:
- "docs/**"
- "superset/db_engine_specs/**"
- ".github/workflows/superset-docs-verify.yml"
types: [synchronize, opened, reopened, ready_for_review]
workflow_run:
workflows: ["Python-Integration"]
types: [completed]
# cancel previous workflow jobs for PRs
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.event.workflow_run.head_sha || github.run_id }}
cancel-in-progress: true
jobs:
linkinator:
# See docs here: https://github.com/marketplace/actions/linkinator
# Only run on pull_request, not workflow_run
if: github.event_name == 'pull_request'
name: Link Checking
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
# Do not bump this linkinator-action version without opening
# an ASF Infra ticket to allow the new version first!
- uses: JustinBeckwith/linkinator-action@v1.11.0
- uses: JustinBeckwith/linkinator-action@af984b9f30f63e796ae2ea5be5e07cb587f1bbd9 # v2.3
continue-on-error: true # This will make the job advisory (non-blocking, no red X)
with:
paths: "**/*.md, **/*.mdx, !superset-frontend/CHANGELOG.md"
paths: "**/*.md, **/*.mdx"
linksToSkip: >-
^https://github.com/apache/(superset|incubator-superset)/(pull|issue)/\d+,
^https://github.com/apache/(superset|incubator-superset)/(pull|issues)/\d+,
^https://github.com/apache/(superset|incubator-superset)/commit/[a-f0-9]+,
superset-frontend/.*CHANGELOG\.md,
http://localhost:8088/,
http://127.0.0.1:3000/,
http://localhost:9001/,
@@ -41,27 +49,30 @@ jobs:
http://theiconic.com.au/,
https://dev.mysql.com/doc/refman/5.7/en/innodb-limits.html,
^https://img\.shields\.io/.*,
https://vkusvill.ru/
https://www.linkedin.com/in/mark-thomas-b16751158/
https://theiconic.com.au/
https://wattbewerb.de/
https://timbr.ai/
https://opensource.org/license/apache-2-0
https://vkusvill.ru/,
https://www.linkedin.com/in/mark-thomas-b16751158/,
https://theiconic.com.au/,
https://wattbewerb.de/,
https://timbr.ai/,
https://opensource.org/license/apache-2-0,
https://www.plaidcloud.com/
build-deploy:
name: Build & Deploy
build-on-pr:
# Build docs when PR changes docs/** (uses committed databases.json)
if: github.event_name == 'pull_request'
name: Build (PR trigger)
runs-on: ubuntu-24.04
defaults:
run:
working-directory: docs
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './docs/.nvmrc'
- name: yarn install
@@ -73,3 +84,51 @@ jobs:
- name: yarn build
run: |
yarn build
build-after-tests:
# Build docs after integration tests complete (uses fresh diagnostics)
# Only runs if integration tests succeeded
if: >
github.event_name == 'workflow_run' &&
github.event.workflow_run.conclusion == 'success'
name: Build (after integration tests)
runs-on: ubuntu-24.04
defaults:
run:
working-directory: docs
steps:
- name: "Checkout PR head: ${{ github.event.workflow_run.head_sha }}"
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ github.event.workflow_run.head_sha }}
persist-credentials: false
submodules: recursive
- name: Set up Node.js
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './docs/.nvmrc'
- name: yarn install
run: |
yarn install --check-cache
- name: Download database diagnostics from integration tests
uses: dawidd6/action-download-artifact@8305c0f1062bb0d184d09ef4493ecb9288447732 # v20
with:
workflow: superset-python-integrationtest.yml
run_id: ${{ github.event.workflow_run.id }}
name: database-diagnostics
path: docs/src/data/
if_no_artifact_found: 'warning'
- name: Use fresh diagnostics
run: |
if [ -f "src/data/databases-diagnostics.json" ]; then
echo "Using fresh diagnostics from integration tests"
mv src/data/databases-diagnostics.json src/data/databases.json
else
echo "Warning: No diagnostics artifact found, using committed data"
fi
- name: yarn typecheck
run: |
yarn typecheck
- name: yarn build
run: |
yarn build

View File

@@ -54,7 +54,7 @@ jobs:
USE_DASHBOARD: ${{ github.event.inputs.use_dashboard == 'true' || 'false' }}
services:
postgres:
image: postgres:16-alpine
image: postgres:17-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
@@ -69,21 +69,21 @@ jobs:
# Conditional checkout based on context
- name: Checkout for push or pull_request event
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
- name: Checkout using ref (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.ref != ''
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
ref: ${{ github.event.inputs.ref }}
submodules: recursive
- name: Checkout using PR ID (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.pr_id != ''
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
ref: refs/pull/${{ github.event.inputs.pr_id }}/merge
@@ -109,7 +109,7 @@ jobs:
run: testdata
- name: Setup Node.js
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-frontend/.nvmrc'
- name: Install npm dependencies
@@ -146,8 +146,128 @@ jobs:
SAFE_APP_ROOT=${APP_ROOT//\//_}
echo "safe_app_root=$SAFE_APP_ROOT" >> $GITHUB_OUTPUT
- name: Upload Artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
if: failure()
with:
path: ${{ github.workspace }}/superset-frontend/cypress-base/cypress/screenshots
name: cypress-artifact-${{ github.run_id }}-${{ github.job }}-${{ matrix.browser }}-${{ matrix.parallel_id }}--${{ steps.set-safe-app-root.outputs.safe_app_root }}
playwright-tests:
runs-on: ubuntu-22.04
permissions:
contents: read
pull-requests: read
strategy:
fail-fast: false
matrix:
browser: ["chromium"]
app_root: ["", "/app/prefix"]
env:
SUPERSET_ENV: development
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
PYTHONPATH: ${{ github.workspace }}
REDIS_PORT: 16379
GITHUB_TOKEN: ${{ github.token }}
services:
postgres:
image: postgres:17-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
ports:
- 15432:5432
redis:
image: redis:7-alpine
ports:
- 16379:6379
steps:
# -------------------------------------------------------
# Conditional checkout based on context (same as Cypress workflow)
- name: Checkout for push or pull_request event
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
- name: Checkout using ref (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.ref != ''
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
ref: ${{ github.event.inputs.ref }}
submodules: recursive
- name: Checkout using PR ID (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.pr_id != ''
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
ref: refs/pull/${{ github.event.inputs.pr_id }}/merge
submodules: recursive
# -------------------------------------------------------
- name: Check for file changes
id: check
uses: ./.github/actions/change-detector/
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outputs.python || steps.check.outputs.frontend
- name: Setup postgres
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: setup-postgres
- name: Import test data
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: playwright_testdata
- name: Setup Node.js
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-frontend/.nvmrc'
- name: Install npm dependencies
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: npm-install
- name: Build javascript packages
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: build-instrumented-assets
- name: Build embedded SDK
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: build-embedded-sdk
- name: Install Playwright
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: playwright-install
- name: Run Playwright (Required Tests)
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
env:
NODE_OPTIONS: "--max-old-space-size=4096"
with:
run: playwright-run "${{ matrix.app_root }}"
- name: Set safe app root
if: failure()
id: set-safe-app-root
run: |
APP_ROOT="${{ matrix.app_root }}"
SAFE_APP_ROOT=${APP_ROOT//\//_}
echo "safe_app_root=$SAFE_APP_ROOT" >> $GITHUB_OUTPUT
- name: Upload Playwright Artifacts
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
if: failure()
with:
path: |
${{ github.workspace }}/superset-frontend/playwright-results/
${{ github.workspace }}/superset-frontend/test-results/
name: playwright-artifact-${{ github.run_id }}-${{ github.job }}-${{ matrix.browser }}--${{ steps.set-safe-app-root.outputs.safe_app_root }}

View File

@@ -24,7 +24,7 @@ jobs:
working-directory: superset-extensions-cli
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -49,7 +49,7 @@ jobs:
- name: Upload coverage reports to Codecov
if: steps.check.outputs.superset-extensions-cli
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
file: ./coverage.xml
flags: superset-extensions-cli
@@ -58,7 +58,7 @@ jobs:
- name: Upload HTML coverage report
if: steps.check.outputs.superset-extensions-cli
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: superset-extensions-cli-coverage-html
path: htmlcov/

View File

@@ -23,7 +23,7 @@ jobs:
should-run: ${{ steps.check.outputs.frontend }}
steps:
- name: Checkout Code
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
fetch-depth: 0
@@ -54,14 +54,14 @@ jobs:
- name: Save Docker Image as Artifact
if: steps.check.outputs.frontend
run: |
docker save $TAG | gzip > docker-image.tar.gz
docker save $TAG | zstd -3 --threads=0 > docker-image.tar.zst
- name: Upload Docker Image Artifact
if: steps.check.outputs.frontend
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: docker-image
path: docker-image.tar.gz
path: docker-image.tar.zst
sharded-jest-tests:
needs: frontend-build
@@ -73,12 +73,13 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Download Docker Image Artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: docker-image
- name: Load Docker Image
run: docker load < docker-image.tar.gz
run: |
zstd -d < docker-image.tar.zst | docker load
- name: npm run test with coverage
run: |
@@ -87,10 +88,10 @@ jobs:
-v ${{ github.workspace }}/superset-frontend/coverage:/app/superset-frontend/coverage \
--rm $TAG \
bash -c \
"npm run test -- --coverage --shard=${{ matrix.shard }}/8 --coverageReporters=json-summary"
"npm run test -- --coverage --shard=${{ matrix.shard }}/8 --coverageReporters=json"
- name: Upload Coverage Artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: coverage-artifacts-${{ matrix.shard }}
path: superset-frontend/coverage
@@ -99,25 +100,40 @@ jobs:
needs: [sharded-jest-tests]
if: needs.frontend-build.outputs.should-run == 'true'
runs-on: ubuntu-24.04
permissions:
id-token: write
steps:
- name: Checkout Code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
fetch-depth: 0
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
- name: Download Coverage Artifacts
uses: actions/download-artifact@v5
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
pattern: coverage-artifacts-*
path: coverage/
- name: Show Files
run: find coverage/
- name: Reorganize test result reports
run: |
find coverage/
for i in {1..8}; do
mv coverage/coverage-artifacts-${i}/coverage-final.json coverage/coverage-shard-${i}.json
done
shell: bash
- name: Merge Code Coverage
run: npx nyc merge coverage/ merged-output/coverage-summary.json
- name: Upload Code Coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
flags: javascript
token: ${{ secrets.CODECOV_TOKEN }}
use_oidc: true
verbose: true
disable_search: true
files: merged-output/coverage-summary.json
slug: apache/superset
@@ -127,23 +143,23 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Download Docker Image Artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: docker-image
- name: Load Docker Image
run: |
docker load < docker-image.tar.gz
zstd -d < docker-image.tar.zst | docker load
- name: eslint
- name: lint
run: |
docker run --rm $TAG bash -c \
"npm i && npm run eslint -- . --quiet"
"npm i && npm run lint"
- name: tsc
run: |
docker run --rm $TAG bash -c \
"npm run type"
"npm i && npm run plugins:build && npm run type"
validate-frontend:
needs: frontend-build
@@ -151,19 +167,34 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: Download Docker Image Artifact
uses: actions/download-artifact@v5
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: docker-image
- name: Load Docker Image
run: docker load < docker-image.tar.gz
run: |
zstd -d < docker-image.tar.zst | docker load
- name: Build Plugins Packages
run: |
docker run --rm $TAG bash -c \
"npm run plugins:build"
- name: Build Plugins Storybook
test-storybook:
needs: frontend-build
if: needs.frontend-build.outputs.should-run == 'true'
runs-on: ubuntu-24.04
steps:
- name: Download Docker Image Artifact
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: docker-image
- name: Load Docker Image
run: |
zstd -d < docker-image.tar.zst | docker load
- name: Build Storybook and Run Tests
run: |
docker run --rm $TAG bash -c \
"npm run plugins:build-storybook"
"npm run build-storybook && npx playwright install-deps && npx playwright install chromium && npm run test-storybook:ci"

View File

@@ -16,14 +16,14 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
fetch-depth: 0
- name: Set up Helm
uses: azure/setup-helm@v4
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
with:
version: v3.16.4

View File

@@ -29,7 +29,7 @@ jobs:
steps:
- name: Checkout code
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
ref: ${{ inputs.ref || github.ref_name }}
persist-credentials: true
@@ -42,7 +42,7 @@ jobs:
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Install Helm
uses: azure/setup-helm@v4
uses: azure/setup-helm@dda3372f752e03dde6b3237bc9431cdc2f7a02a2 # v5.0.0
with:
version: v3.5.4
@@ -101,7 +101,7 @@ jobs:
CR_RELEASE_NAME_TEMPLATE: "superset-helm-chart-{{ .Version }}"
- name: Open Pull Request
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const branchName = '${{ env.branch_name }}';

View File

@@ -0,0 +1,147 @@
name: Playwright Experimental Tests
on:
push:
branches:
- "master"
- "[0-9].[0-9]*"
pull_request:
types: [synchronize, opened, reopened, ready_for_review]
workflow_dispatch:
inputs:
ref:
description: 'The branch or tag to checkout'
required: false
default: ''
pr_id:
description: 'The pull request ID to checkout'
required: false
default: ''
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }}
cancel-in-progress: true
jobs:
# NOTE: Required Playwright tests are in superset-e2e.yml (E2E / playwright-tests)
# This workflow contains only experimental tests that run in shadow mode
playwright-tests-experimental:
runs-on: ubuntu-22.04
continue-on-error: true
permissions:
contents: read
pull-requests: read
strategy:
fail-fast: false
matrix:
browser: ["chromium"]
app_root: ["", "/app/prefix"]
env:
SUPERSET_ENV: development
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
PYTHONPATH: ${{ github.workspace }}
REDIS_PORT: 16379
GITHUB_TOKEN: ${{ github.token }}
services:
postgres:
image: postgres:17-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
ports:
- 15432:5432
redis:
image: redis:7-alpine
ports:
- 16379:6379
steps:
# -------------------------------------------------------
# Conditional checkout based on context (same as Cypress workflow)
- name: Checkout for push or pull_request event
if: github.event_name == 'push' || github.event_name == 'pull_request'
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
- name: Checkout using ref (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.ref != ''
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
ref: ${{ github.event.inputs.ref }}
submodules: recursive
- name: Checkout using PR ID (workflow_dispatch)
if: github.event_name == 'workflow_dispatch' && github.event.inputs.pr_id != ''
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
ref: refs/pull/${{ github.event.inputs.pr_id }}/merge
submodules: recursive
# -------------------------------------------------------
- name: Check for file changes
id: check
uses: ./.github/actions/change-detector/
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Python
uses: ./.github/actions/setup-backend/
if: steps.check.outputs.python || steps.check.outputs.frontend
- name: Setup postgres
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: setup-postgres
- name: Import test data
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: playwright_testdata
- name: Setup Node.js
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-frontend/.nvmrc'
- name: Install npm dependencies
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: npm-install
- name: Build javascript packages
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: build-instrumented-assets
- name: Build embedded SDK
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: build-embedded-sdk
- name: Install Playwright
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
with:
run: playwright-install
- name: Run Playwright (Experimental Tests)
if: steps.check.outputs.python || steps.check.outputs.frontend
uses: ./.github/actions/cached-dependencies
env:
NODE_OPTIONS: "--max-old-space-size=4096"
with:
run: playwright-run "${{ matrix.app_root }}" experimental/
- name: Set safe app root
if: failure()
id: set-safe-app-root
run: |
APP_ROOT="${{ matrix.app_root }}"
SAFE_APP_ROOT=${APP_ROOT//\//_}
echo "safe_app_root=$SAFE_APP_ROOT" >> $GITHUB_OUTPUT
- name: Upload Playwright Artifacts
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
if: failure()
with:
path: |
${{ github.workspace }}/superset-frontend/playwright-results/
${{ github.workspace }}/superset-frontend/test-results/
name: playwright-experimental-artifact-${{ github.run_id }}-${{ github.job }}-${{ matrix.browser }}--${{ steps.set-safe-app-root.outputs.safe_app_root }}

View File

@@ -16,6 +16,8 @@ concurrency:
jobs:
test-mysql:
runs-on: ubuntu-24.04
permissions:
id-token: write
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -41,7 +43,7 @@ jobs:
- 16379:6379
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -68,13 +70,46 @@ jobs:
run: |
./scripts/python_tests.sh
- name: Upload code coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
flags: python,mysql
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
use_oidc: true
slug: apache/superset
- name: Generate database diagnostics for docs
if: steps.check.outputs.python
env:
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
SUPERSET__SQLALCHEMY_DATABASE_URI: |
mysql+mysqldb://superset:superset@127.0.0.1:13306/superset?charset=utf8mb4&binary_prefix=true
run: |
python -c "
import json
from superset.app import create_app
from superset.db_engine_specs.lib import generate_yaml_docs
app = create_app()
with app.app_context():
docs = generate_yaml_docs()
# Wrap in the expected format
output = {
'generated': '$(date -Iseconds)',
'databases': docs
}
with open('databases-diagnostics.json', 'w') as f:
json.dump(output, f, indent=2, default=str)
print(f'Generated diagnostics for {len(docs)} databases')
"
- name: Upload database diagnostics artifact
if: steps.check.outputs.python
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7
with:
name: database-diagnostics
path: databases-diagnostics.json
retention-days: 7
test-postgres:
runs-on: ubuntu-24.04
permissions:
id-token: write
strategy:
matrix:
python-version: ["current", "previous", "next"]
@@ -85,7 +120,7 @@ jobs:
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@127.0.0.1:15432/superset
services:
postgres:
image: postgres:16-alpine
image: postgres:17-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
@@ -99,7 +134,7 @@ jobs:
- 16379:6379
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -129,14 +164,17 @@ jobs:
run: |
./scripts/python_tests.sh
- name: Upload code coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
flags: python,postgres
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
use_oidc: true
slug: apache/superset
test-sqlite:
runs-on: ubuntu-24.04
permissions:
id-token: write
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -152,7 +190,7 @@ jobs:
- 16379:6379
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -181,8 +219,9 @@ jobs:
run: |
./scripts/python_tests.sh
- name: Upload code coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
flags: python,sqlite
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
use_oidc: true
slug: apache/superset

View File

@@ -17,6 +17,8 @@ concurrency:
jobs:
test-postgres-presto:
runs-on: ubuntu-24.04
permissions:
id-token: write
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -25,7 +27,7 @@ jobs:
SUPERSET__SQLALCHEMY_EXAMPLES_URI: presto://localhost:15433/memory/default
services:
postgres:
image: postgres:16-alpine
image: postgres:17-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
@@ -48,7 +50,7 @@ jobs:
- 16379:6379
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -77,14 +79,17 @@ jobs:
run: |
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
- name: Upload code coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
flags: python,presto
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
use_oidc: true
slug: apache/superset
test-postgres-hive:
runs-on: ubuntu-24.04
permissions:
id-token: write
env:
PYTHONPATH: ${{ github.workspace }}
SUPERSET_CONFIG: tests.integration_tests.superset_test_config
@@ -94,7 +99,7 @@ jobs:
UPLOAD_FOLDER: /tmp/.superset/uploads/
services:
postgres:
image: postgres:16-alpine
image: postgres:17-alpine
env:
POSTGRES_USER: superset
POSTGRES_PASSWORD: superset
@@ -108,7 +113,7 @@ jobs:
- 16379:6379
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -145,8 +150,9 @@ jobs:
pip install -e .[hive]
./scripts/python_tests.sh -m 'chart_data_flow or sql_json_flow'
- name: Upload code coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
flags: python,hive
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
use_oidc: true
slug: apache/superset

View File

@@ -17,6 +17,8 @@ concurrency:
jobs:
unit-tests:
runs-on: ubuntu-24.04
permissions:
id-token: write
strategy:
matrix:
python-version: ["previous", "current", "next"]
@@ -24,7 +26,7 @@ jobs:
PYTHONPATH: ${{ github.workspace }}
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -53,8 +55,9 @@ jobs:
run: |
pytest --durations-min=0.5 --cov=superset/sql/ ./tests/unit_tests/sql/ --cache-clear --cov-fail-under=100
- name: Upload code coverage
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
flags: python,unit
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true
use_oidc: true
slug: apache/superset

View File

@@ -18,7 +18,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -31,7 +31,7 @@ jobs:
- name: Setup Node.js
if: steps.check.outputs.frontend
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-frontend/.nvmrc'
- name: Install dependencies
@@ -49,7 +49,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
submodules: recursive
@@ -62,6 +62,10 @@ jobs:
- name: Setup Python
if: steps.check.outputs.python
uses: ./.github/actions/setup-backend/
- name: Install msgcat
run: sudo apt update && sudo apt install gettext
- name: Test babel extraction
if: steps.check.outputs.python
run: ./scripts/translations/babel_update.sh

View File

@@ -21,7 +21,7 @@ jobs:
runs-on: ubuntu-24.04
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false
- name: Install dependencies

View File

@@ -26,7 +26,7 @@ jobs:
steps:
- name: Quickly add thumbs up!
if: github.event_name == 'issue_comment' && contains(github.event.comment.body, '@supersetbot')
uses: actions/github-script@v7
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
with:
script: |
const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/')
@@ -38,7 +38,7 @@ jobs:
});
- name: "Checkout ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
persist-credentials: false

View File

@@ -31,10 +31,12 @@ jobs:
id: check
shell: bash
run: |
if [ -n "${{ (secrets.DOCKERHUB_USER != '' && secrets.DOCKERHUB_TOKEN != '') || '' }}" ]; then
if [ -n "${DOCKERHUB_USER}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
env:
DOCKERHUB_USER: ${{ (secrets.DOCKERHUB_USER != '' && secrets.DOCKERHUB_TOKEN != '') || '' }}
docker-release:
needs: config
if: needs.config.outputs.has-secrets
@@ -47,7 +49,7 @@ jobs:
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
@@ -60,7 +62,7 @@ jobs:
build: "true"
- name: Use Node.js 20
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: 20
@@ -72,17 +74,20 @@ jobs:
DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
INPUT_RELEASE: ${{ github.event.inputs.release }}
INPUT_FORCE_LATEST: ${{ github.event.inputs.force-latest }}
INPUT_GIT_REF: ${{ github.event.inputs.git-ref }}
run: |
RELEASE="${{ github.event.release.tag_name }}"
FORCE_LATEST=""
EVENT="${{github.event_name}}"
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
# in the case of a manually-triggered run, read release from input
RELEASE="${{ github.event.inputs.release }}"
if [ "${{ github.event.inputs.force-latest }}" = "true" ]; then
RELEASE="${INPUT_RELEASE}"
if [ "${INPUT_FORCE_LATEST}" = "true" ]; then
FORCE_LATEST="--force-latest"
fi
git checkout "${{ github.event.inputs.git-ref }}"
git checkout "${INPUT_GIT_REF}"
EVENT="release"
fi
@@ -107,12 +112,12 @@ jobs:
steps:
- name: "Checkout ${{ github.ref }} ( ${{ github.sha }} )"
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
- name: Use Node.js 20
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: 20
@@ -122,6 +127,7 @@ jobs:
- name: Label the PRs with the right release-related labels
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
INPUT_RELEASE: ${{ github.event.inputs.release }}
run: |
export GITHUB_ACTOR=""
git fetch --all --tags
@@ -129,6 +135,6 @@ jobs:
RELEASE="${{ github.event.release.tag_name }}"
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
# in the case of a manually-triggered run, read release from input
RELEASE="${{ github.event.inputs.release }}"
RELEASE="${INPUT_RELEASE}"
fi
supersetbot release-label $RELEASE

View File

@@ -6,6 +6,9 @@ on:
- master
- "[0-9].[0-9]*"
permissions:
contents: read
jobs:
config:
runs-on: ubuntu-24.04
@@ -16,10 +19,12 @@ jobs:
id: check
shell: bash
run: |
if [ -n "${{ (secrets.GSHEET_KEY != '' ) || '' }}" ]; then
if [ -n "${GSHEET_KEY}" ]; then
echo "has-secrets=1" >> "$GITHUB_OUTPUT"
fi
env:
GSHEET_KEY: ${{ (secrets.GSHEET_KEY != '' ) || '' }}
process-and-upload:
needs: config
if: needs.config.outputs.has-secrets
@@ -27,10 +32,10 @@ jobs:
name: Generate Reports
steps:
- name: Checkout Repository
uses: actions/checkout@v5
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version-file: './superset-frontend/.nvmrc'

14
.gitignore vendored
View File

@@ -33,6 +33,7 @@ cover
.env
.envrc
.idea
.roo
.mypy_cache
.python-version
.tox
@@ -60,21 +61,18 @@ tmp
rat-results.txt
superset/app/
superset-websocket/config.json
.direnv
# Node.js, webpack artifacts, storybook
*.entry.js
*.js.map
node_modules
npm-debug.log*
superset/static/*
superset/static/assets/*
!superset/static/assets/.gitkeep
superset/static/uploads/*
!superset/static/uploads/.gitkeep
superset/static/version_info.json
superset-frontend/**/esm/*
superset-frontend/**/lib/*
superset-frontend/**/storybook-static/*
superset-frontend/migration-storybook.log
yarn-error.log
*.map
*.min.js
@@ -121,6 +119,8 @@ docker/requirements-local.txt
cache/
docker/*local*
docker/superset-websocket/config.json
docker-compose.override.yml
.temp_cache
@@ -133,4 +133,8 @@ CLAUDE.local.md
PROJECT.md
.aider*
.claude_rc*
.claude/settings.local.json
.env.local
oxc-custom-build/
*.code-workspace
*.duckdb

View File

@@ -27,6 +27,7 @@ repos:
args: [--check-untyped-defs]
exclude: ^superset-extensions-cli/
additional_dependencies: [
types-cachetools,
types-simplejson,
types-python-dateutil,
types-requests,
@@ -49,26 +50,40 @@ repos:
hooks:
- id: check-docstring-first
- id: check-added-large-files
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*|^superset-frontend/CHANGELOG\.md$
exclude: ^.*\.(geojson)$|^docs/static/img/screenshots/.*|^superset-frontend/CHANGELOG\.md$|^superset/examples/.*/data\.parquet$
- id: check-yaml
exclude: ^helm/superset/templates/
- id: debug-statements
- id: end-of-file-fixer
exclude: .*/lerna\.json$
exclude: .*/lerna\.json$|^docs/static/img/logos/
- id: trailing-whitespace
exclude: ^.*\.(snap)
args: ["--markdown-linebreak-ext=md"]
- repo: local
hooks:
- id: eslint-frontend
name: eslint (frontend)
entry: ./scripts/eslint.sh
- id: prettier-frontend
name: prettier (frontend)
entry: bash -c 'cd superset-frontend && for file in "$@"; do npx prettier --write "${file#superset-frontend/}"; done'
language: system
pass_filenames: true
files: ^superset-frontend/.*\.(js|jsx|ts|tsx|css|scss|sass|json)$
- repo: local
hooks:
- id: oxlint-frontend
name: oxlint (frontend)
entry: ./scripts/oxlint.sh
language: system
pass_filenames: true
files: ^superset-frontend/.*\.(js|jsx|ts|tsx)$
- id: custom-rules-frontend
name: custom rules (frontend)
entry: ./scripts/check-custom-rules.sh
language: system
pass_filenames: true
files: ^superset-frontend/.*\.(js|jsx|ts|tsx)$
- id: eslint-docs
name: eslint (docs)
entry: bash -c 'cd docs && FILES=$(echo "$@" | sed "s|docs/||g") && yarn eslint --fix --ext .js,.jsx,.ts,.tsx --quiet $FILES'
entry: bash -c 'cd docs && FILES=$(printf "%s\n" "$@" | sed "s|^docs/||" | tr "\n" " ") && yarn eslint --fix --quiet $FILES'
language: system
pass_filenames: true
files: ^docs/.*\.(js|jsx|ts|tsx)$
@@ -92,12 +107,19 @@ repos:
files: helm
verbose: false
args: ["--log-level", "error"]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.7
# Using local hooks ensures ruff version matches requirements/development.txt
- repo: local
hooks:
- id: ruff-format
name: ruff-format
entry: ruff format
language: system
types: [python]
- id: ruff
args: [--fix]
name: ruff
entry: ruff check --fix --show-fixes
language: system
types: [python]
- repo: local
hooks:
- id: pylint
@@ -110,11 +132,29 @@ repos:
- -c
- |
TARGET_BRANCH=${GITHUB_BASE_REF:-master}
git fetch origin "$TARGET_BRANCH"
BASE=$(git merge-base origin/"$TARGET_BRANCH" HEAD)
files=$(git diff --name-only --diff-filter=ACM "$BASE"..HEAD | grep '^superset/.*\.py$' || true)
# Only fetch if we're not in CI (CI already has all refs)
if [ -z "$CI" ]; then
git fetch --no-recurse-submodules origin "$TARGET_BRANCH" 2>/dev/null || true
fi
BASE=$(git merge-base origin/"$TARGET_BRANCH" HEAD 2>/dev/null) || BASE="HEAD"
files=$(git diff --name-only --diff-filter=ACM "$BASE"..HEAD 2>/dev/null | grep '^superset/.*\.py$' || true)
if [ -n "$files" ]; then
pylint --rcfile=.pylintrc --load-plugins=superset.extensions.pylint --reports=no $files
else
echo "No Python files to lint."
fi
- id: db-engine-spec-metadata
name: database engine spec metadata validation
entry: python superset/db_engine_specs/lint_metadata.py --strict
language: system
files: ^superset/db_engine_specs/.*\.py$
exclude: ^superset/db_engine_specs/(base|lib|lint_metadata|__init__)\.py$
pass_filenames: false
- repo: local
hooks:
- id: feature-flags-sync
name: feature flags documentation sync
entry: bash -c 'python scripts/extract_feature_flags.py > docs/static/feature-flags.json.tmp && if ! diff -q docs/static/feature-flags.json docs/static/feature-flags.json.tmp > /dev/null 2>&1; then mv docs/static/feature-flags.json.tmp docs/static/feature-flags.json && echo "Updated docs/static/feature-flags.json" && exit 1; else rm docs/static/feature-flags.json.tmp; fi'
language: system
files: ^superset/config\.py$
pass_filenames: false

View File

@@ -53,7 +53,7 @@ extension-pkg-whitelist=pyarrow
[MESSAGES CONTROL]
disable=all
enable=disallowed-json-import,disallowed-sql-import,consider-using-transaction
enable=json-import,disallowed-sql-import,consider-using-transaction
[REPORTS]

View File

@@ -11,6 +11,7 @@
.nvmrc
.prettierrc
.rat-excludes
.swcrc
.*log
.*pyc
.*lock
@@ -66,22 +67,20 @@ temporary_superset_ui/*
# skip license checks for auto-generated test snapshots
.*snap
# docs overrides for third party logos we don't have the rights to
google-big-query.svg
google-sheets.svg
ibm-db2.svg
postgresql.svg
snowflake.svg
ydb.svg
loading.svg
# docs third-party logos (database logos, org logos, etc.)
databases/*
logos/*
# docs-related
erd.puml
erd.svg
intro_header.txt
TODO.md
# for LLMs
llm-context.md
llms.txt
AGENTS.md
LLMS.md
CLAUDE.md
CURSOR.md

269
AGENTS.md Normal file
View File

@@ -0,0 +1,269 @@
# LLM Context Guide for Apache Superset
Apache Superset is a data visualization platform with Flask/Python backend and React/TypeScript frontend.
## ⚠️ CRITICAL: Always Run Pre-commit Before Pushing
**ALWAYS run `pre-commit run --all-files` before pushing commits.** CI will fail if pre-commit checks don't pass. This is non-negotiable.
```bash
# Stage your changes first
git add .
# Run pre-commit on all files
pre-commit run --all-files
# If there are auto-fixes, stage them and commit
git add .
git commit --amend # or new commit
```
Common pre-commit failures:
- **Formatting** - black, prettier, eslint will auto-fix
- **Type errors** - mypy failures need manual fixes
- **Linting** - ruff, pylint issues need manual fixes
## ⚠️ CRITICAL: Ongoing Refactors (What NOT to Do)
**These migrations are actively happening - avoid deprecated patterns:**
### Frontend Modernization
- **NO `any` types** - Use proper TypeScript types
- **NO JavaScript files** - Convert to TypeScript (.ts/.tsx)
- **Use @superset-ui/core** - Don't import Ant Design directly, prefer Ant Design component wrappers from @superset-ui/core/components
- **Use antd theming tokens** - Prefer antd tokens over legacy theming tokens
- **Avoid custom css and styles** - Follow antd best practices and avoid styling and custom CSS whenever possible
### Testing Strategy Migration
- **Prefer unit tests** over integration tests
- **Prefer integration tests** over end-to-end tests
- **Use Playwright for E2E tests** - Migrating from Cypress
- **Cypress is deprecated** - Will be removed once migration is completed
- **Use Jest + React Testing Library** for component testing
- **Use `test()` instead of `describe()`** - Follow [avoid nesting when testing](https://kentcdodds.com/blog/avoid-nesting-when-youre-testing) principles
### Backend Type Safety
- **Add type hints** - All new Python code needs proper typing
- **MyPy compliance** - Run `pre-commit run mypy` to validate
- **SQLAlchemy typing** - Use proper model annotations
### UUID Migration
- **Prefer UUIDs over auto-incrementing IDs** - New models should use UUID primary keys
- **External API exposure** - Use UUIDs in public APIs instead of internal integer IDs
- **Existing models** - Add UUID fields alongside integer IDs for gradual migration
## Key Directories
```
superset/
├── superset/ # Python backend (Flask, SQLAlchemy)
│ ├── views/api/ # REST API endpoints
│ ├── models/ # Database models
│ └── connectors/ # Database connections
├── superset-frontend/src/ # React TypeScript frontend
│ ├── components/ # Reusable components
│ ├── explore/ # Chart builder
│ ├── dashboard/ # Dashboard interface
│ └── SqlLab/ # SQL editor
├── superset-frontend/packages/
│ └── superset-ui-core/ # UI component library (USE THIS)
├── tests/ # Python/integration tests
├── docs/ # Documentation (UPDATE FOR CHANGES)
└── UPDATING.md # Breaking changes log
```
## Code Standards
### TypeScript Frontend
- **Avoid `any` types** - Use proper TypeScript, reuse existing types
- **Functional components** with hooks
- **@superset-ui/core** for UI components (not direct antd)
- **Jest** for testing (NO Enzyme)
- **Redux** for global state where it exists, hooks for local
### Python Backend
- **Type hints required** for all new code
- **MyPy compliant** - run `pre-commit run mypy`
- **SQLAlchemy models** with proper typing
- **pytest** for testing
### Apache License Headers
- **New files require ASF license headers** - When creating new code files, include the standard Apache Software Foundation license header
- **LLM instruction files are excluded** - Files like AGENTS.md, CLAUDE.md, etc. are in `.rat-excludes` to avoid header token overhead
### Code Comments
- **Avoid time-specific language** - Don't use words like "now", "currently", "today" in code comments as they become outdated
- **Write timeless comments** - Comments should remain accurate regardless of when they're read
## Documentation Requirements
- **docs/**: Update for any user-facing changes
- **UPDATING.md**: Add breaking changes here
- **Docstrings**: Required for new functions/classes
## Developer Portal: Storybook-to-MDX Documentation
The Developer Portal auto-generates MDX documentation from Storybook stories. **Stories are the single source of truth.**
### Core Philosophy
- **Fix issues in the STORY, not the generator** - When something doesn't render correctly, update the story file first
- **Generator should be lightweight** - It extracts and passes through data; avoid special cases
- **Stories define everything** - Props, controls, galleries, examples all come from story metadata
### Story Requirements for Docs Generation
- Use `export default { title: '...' }` (inline), not `const meta = ...; export default meta;`
- Name interactive stories `Interactive${ComponentName}` (e.g., `InteractiveButton`)
- Define `args` for default prop values
- Define `argTypes` at the story level (not meta level) with control types and descriptions
- Use `parameters.docs.gallery` for size×style variant grids
- Use `parameters.docs.sampleChildren` for components that need children
- Use `parameters.docs.liveExample` for custom live code blocks
- Use `parameters.docs.staticProps` for complex object props that can't be parsed inline
### Generator Location
- Script: `docs/scripts/generate-superset-components.mjs`
- Wrapper: `docs/src/components/StorybookWrapper.jsx`
- Output: `docs/developer_portal/components/`
## Architecture Patterns
### Security & Features
- **RBAC**: Role-based access via Flask-AppBuilder
- **Feature flags**: Control feature rollouts
- **Row-level security**: SQL-based data access control
## Test Utilities
### Python Test Helpers
- **`SupersetTestCase`** - Base class in `tests/integration_tests/base_tests.py`
- **`@with_config`** - Config mocking decorator
- **`@with_feature_flags`** - Feature flag testing
- **`login_as()`, `login_as_admin()`** - Authentication helpers
- **`create_dashboard()`, `create_slice()`** - Data setup utilities
### TypeScript Test Helpers
- **`superset-frontend/spec/helpers/testing-library.tsx`** - Custom render() with providers
- **`createWrapper()`** - Redux/Router/Theme wrapper
- **`selectOption()`** - Select component helper
- **React Testing Library** - NO Enzyme (removed)
### Test Database Patterns
- **Mock patterns**: Use `MagicMock()` for config objects, avoid `AsyncMock` for synchronous code
- **API tests**: Update expected columns when adding new model fields
### Running Tests
```bash
# Frontend
npm run test # All tests
npm run test -- filename.test.tsx # Single file
# E2E Tests (Playwright - NEW)
npm run playwright:test # All Playwright tests
npm run playwright:ui # Interactive UI mode
npm run playwright:headed # See browser during tests
npx playwright test tests/auth/login.spec.ts # Single file
npm run playwright:debug tests/auth/login.spec.ts # Debug specific file
# E2E Tests (Cypress - DEPRECATED)
cd superset-frontend/cypress-base
npm run cypress-run-chrome # All Cypress tests (headless)
npm run cypress-debug # Interactive Cypress UI
# Backend
pytest # All tests
pytest tests/unit_tests/specific_test.py # Single file
pytest tests/unit_tests/ # Directory
# If pytest fails with database/setup issues, ask the user to run test environment setup
```
## Environment Validation
**Quick Setup Check (run this first):**
```bash
# Verify Superset is running
curl -f http://localhost:8088/health || echo "❌ Setup required - see https://superset.apache.org/docs/contributing/development#working-with-llms"
```
**If health checks fail:**
"It appears you aren't set up properly. Please refer to the [Working with LLMs](https://superset.apache.org/docs/contributing/development#working-with-llms) section in the development docs for setup instructions."
**Key Project Files:**
- `superset-frontend/package.json` - Frontend build scripts (`npm run dev` on port 9000, `npm run test`, `npm run lint`)
- `pyproject.toml` - Python tooling (ruff, mypy configs)
- `requirements/` folder - Python dependencies (base.txt, development.txt)
## SQLAlchemy Query Best Practices
- **Use negation operator**: `~Model.field` instead of `== False` to avoid ruff E712 errors
- **Example**: `~Model.is_active` instead of `Model.is_active == False`
## Pull Request Guidelines
**When creating pull requests:**
1. **Read the current PR template**: Always check `.github/PULL_REQUEST_TEMPLATE.md` for the latest format
2. **Use the template sections**: Include all sections from the template (SUMMARY, BEFORE/AFTER, TESTING INSTRUCTIONS, ADDITIONAL INFORMATION)
3. **Follow PR title conventions**: Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
- Format: `type(scope): description`
- Example: `fix(dashboard): load charts correctly`
- Types: `fix`, `feat`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`
**Important**: Always reference the actual template file at `.github/PULL_REQUEST_TEMPLATE.md` instead of using cached content, as the template may be updated over time.
## Pre-commit Validation
**Use pre-commit hooks for quality validation:**
```bash
# Install hooks
pre-commit install
# IMPORTANT: Stage your changes first!
git add . # Pre-commit only checks staged files
# Quick validation (faster than --all-files)
pre-commit run # Staged files only
pre-commit run mypy # Python type checking
pre-commit run prettier # Code formatting
pre-commit run eslint # Frontend linting
```
**Important pre-commit usage notes:**
- **Stage files first**: Run `git add .` before `pre-commit run` to check only changed files (much faster)
- **Virtual environment**: Activate your Python virtual environment before running pre-commit
```bash
# Common virtual environment locations (yours may differ):
source .venv/bin/activate # if using .venv
source venv/bin/activate # if using venv
source ~/venvs/superset/bin/activate # if using a central location
```
If you get a "command not found" error, ask the user which virtual environment to activate
- **Auto-fixes**: Some hooks auto-fix issues (e.g., trailing whitespace). Re-run after fixes are applied
## Common File Patterns
### API Structure
- **`/api.py`** - REST endpoints with decorators and OpenAPI docstrings
- **`/schemas.py`** - Marshmallow validation schemas for OpenAPI spec
- **`/commands/`** - Business logic classes with @transaction() decorators
- **`/models/`** - SQLAlchemy database models
- **OpenAPI docs**: Auto-generated at `/swagger/v1` from docstrings and schemas
### Migration Files
- **Location**: `superset/migrations/versions/`
- **Naming**: `YYYY-MM-DD_HH-MM_hash_description.py`
- **Utilities**: Use helpers from `superset.migrations.shared.utils` for database compatibility
- **Pattern**: Import utilities instead of raw SQLAlchemy operations
## Platform-Specific Instructions
- **[CLAUDE.md](CLAUDE.md)** - For Claude/Anthropic tools
- **[.github/copilot-instructions.md](.github/copilot-instructions.md)** - For GitHub Copilot
- **[GEMINI.md](GEMINI.md)** - For Google Gemini tools
- **[GPT.md](GPT.md)** - For OpenAI/ChatGPT tools
- **[.cursor/rules/dev-standard.mdc](.cursor/rules/dev-standard.mdc)** - For Cursor editor
---
**LLM Note**: This codebase is actively modernizing toward full TypeScript and type safety. Always run `pre-commit run` to validate changes. Follow the ongoing refactors section to avoid deprecated patterns.

View File

@@ -49,3 +49,4 @@ under the License.
- [4.1.3](./CHANGELOG/4.1.3.md)
- [4.1.4](./CHANGELOG/4.1.4.md)
- [5.0.0](./CHANGELOG/5.0.0.md)
- [6.0.0](./CHANGELOG/6.0.0.md)

1062
CHANGELOG/6.0.0.md Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1 @@
LLMS.md
AGENTS.md

View File

@@ -5,7 +5,7 @@
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
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
@@ -16,9 +16,23 @@
specific language governing permissions and limitations
under the License.
-->
# Contributing to Apache Superset
Contributions are welcome and are greatly appreciated! Every
little bit helps, and credit will always be given.
All matters related to contributions have moved to [this section of
the official Superset documentation](https://superset.apache.org/docs/contributing/). Source for the documentation is
[located here](https://github.com/apache/superset/tree/master/docs/docs).
## Developer Portal
All developer and contribution documentation has moved to the Apache Superset Developer Portal:
**[📚 View the Developer Portal →](https://superset.apache.org/developer_portal/)**
The Developer Portal includes comprehensive guides for:
- [Contributing Overview](https://superset.apache.org/developer_portal/contributing/overview)
- [Development Setup](https://superset.apache.org/developer_portal/contributing/development-setup)
- [Submitting Pull Requests](https://superset.apache.org/developer_portal/contributing/submitting-pr)
- [Contribution Guidelines](https://superset.apache.org/developer_portal/contributing/guidelines)
- [Code Review Process](https://superset.apache.org/developer_portal/contributing/code-review)
- [Development How-tos](https://superset.apache.org/developer_portal/contributing/howtos)
Source for the Developer Portal documentation is [located here](https://github.com/apache/superset/tree/master/docs/developer_portal).

View File

@@ -18,7 +18,7 @@
######################################################################
# Node stage to deal with static asset construction
######################################################################
ARG PY_VER=3.11.13-slim-trixie
ARG PY_VER=3.11.14-slim-trixie
# If BUILDPLATFORM is null, set it to 'amd64' (or leave as is otherwise).
ARG BUILDPLATFORM=${BUILDPLATFORM:-amd64}
@@ -143,9 +143,6 @@ RUN if [ "${BUILD_TRANSLATIONS}" = "true" ]; then \
######################################################################
FROM python-base AS python-common
# Build arg to pre-populate examples DuckDB file
ARG LOAD_EXAMPLES_DUCKDB="false"
ENV SUPERSET_HOME="/app/superset_home" \
HOME="/app/superset_home" \
SUPERSET_ENV="production" \
@@ -157,7 +154,7 @@ ENV SUPERSET_HOME="/app/superset_home" \
COPY --chmod=755 docker/entrypoints /app/docker/entrypoints
WORKDIR /app
# Set up necessary directories and user
# Set up necessary directories
RUN mkdir -p \
${PYTHONPATH} \
superset/static \
@@ -168,6 +165,8 @@ RUN mkdir -p \
&& touch superset/static/version_info.json
# Install Playwright and optionally setup headless browsers
ENV PLAYWRIGHT_BROWSERS_PATH=/usr/local/share/playwright-browsers
ARG INCLUDE_CHROMIUM="false"
ARG INCLUDE_FIREFOX="false"
RUN --mount=type=cache,target=${SUPERSET_HOME}/.cache/uv \
@@ -197,17 +196,9 @@ RUN /app/docker/apt-install.sh \
libecpg-dev \
libldap2-dev
# Pre-load examples DuckDB file if requested
RUN if [ "$LOAD_EXAMPLES_DUCKDB" = "true" ]; then \
mkdir -p /app/data && \
echo "Downloading pre-built examples.duckdb..." && \
curl -L -o /app/data/examples.duckdb \
"https://raw.githubusercontent.com/apache-superset/examples-data/master/examples.duckdb" && \
chown -R superset:superset /app/data; \
else \
mkdir -p /app/data && \
chown -R superset:superset /app/data; \
fi
# Create data directory for DuckDB examples database
# The database file will be created at runtime when examples are loaded from Parquet files
RUN mkdir -p /app/data && chown -R superset:superset /app/data
# Copy compiled things from previous stages
COPY --from=superset-node /app/superset/static/assets superset/static/assets

View File

@@ -1 +1 @@
LLMS.md
AGENTS.md

2
GPT.md
View File

@@ -1 +1 @@
LLMS.md
AGENTS.md

View File

@@ -16,8 +16,20 @@ KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# INSTALL / BUILD instructions for Apache Superset
# Installing Apache Superset
At this time, the docker file at RELEASING/Dockerfile.from_local_tarball
constitutes the recipe on how to get to a working release from a source
release tarball.
For comprehensive installation instructions, please see the Apache Superset documentation:
**[📚 Installation Guide →](https://superset.apache.org/docs/installation/installation-methods)**
The documentation covers:
- [Docker Compose](https://superset.apache.org/docs/installation/docker-compose) (recommended for development)
- [Kubernetes / Helm](https://superset.apache.org/docs/installation/kubernetes)
- [PyPI](https://superset.apache.org/docs/installation/pypi)
- [Docker Builds](https://superset.apache.org/docs/installation/docker-builds)
- [Architecture Overview](https://superset.apache.org/docs/installation/architecture)
## Building from Source
For building from a source release tarball, see the Dockerfile at:
`RELEASING/Dockerfile.from_local_tarball`

207
LLMS.md
View File

@@ -1,207 +0,0 @@
# LLM Context Guide for Apache Superset
Apache Superset is a data visualization platform with Flask/Python backend and React/TypeScript frontend.
## ⚠️ CRITICAL: Ongoing Refactors (What NOT to Do)
**These migrations are actively happening - avoid deprecated patterns:**
### Frontend Modernization
- **NO `any` types** - Use proper TypeScript types
- **NO JavaScript files** - Convert to TypeScript (.ts/.tsx)
- **Use @superset-ui/core** - Don't import Ant Design directly, prefer Ant Design component wrappers from @superset-ui/core/components
- **Use antd theming tokens** - Prefer antd tokens over legacy theming tokens
- **Avoid custom css and styles** - Follow antd best practices and avoid styling and custom CSS whenever possible
### Testing Strategy Migration
- **Prefer unit tests** over integration tests
- **Prefer integration tests** over Cypress end-to-end tests
- **Cypress is last resort** - Actively moving away from Cypress
- **Use Jest + React Testing Library** for component testing
- **Use `test()` instead of `describe()`** - Follow [avoid nesting when testing](https://kentcdodds.com/blog/avoid-nesting-when-youre-testing) principles
### Backend Type Safety
- **Add type hints** - All new Python code needs proper typing
- **MyPy compliance** - Run `pre-commit run mypy` to validate
- **SQLAlchemy typing** - Use proper model annotations
### UUID Migration
- **Prefer UUIDs over auto-incrementing IDs** - New models should use UUID primary keys
- **External API exposure** - Use UUIDs in public APIs instead of internal integer IDs
- **Existing models** - Add UUID fields alongside integer IDs for gradual migration
## Key Directories
```
superset/
├── superset/ # Python backend (Flask, SQLAlchemy)
│ ├── views/api/ # REST API endpoints
│ ├── models/ # Database models
│ └── connectors/ # Database connections
├── superset-frontend/src/ # React TypeScript frontend
│ ├── components/ # Reusable components
│ ├── explore/ # Chart builder
│ ├── dashboard/ # Dashboard interface
│ └── SqlLab/ # SQL editor
├── superset-frontend/packages/
│ └── superset-ui-core/ # UI component library (USE THIS)
├── tests/ # Python/integration tests
├── docs/ # Documentation (UPDATE FOR CHANGES)
└── UPDATING.md # Breaking changes log
```
## Code Standards
### TypeScript Frontend
- **Avoid `any` types** - Use proper TypeScript, reuse existing types
- **Functional components** with hooks
- **@superset-ui/core** for UI components (not direct antd)
- **Jest** for testing (NO Enzyme)
- **Redux** for global state where it exists, hooks for local
### Python Backend
- **Type hints required** for all new code
- **MyPy compliant** - run `pre-commit run mypy`
- **SQLAlchemy models** with proper typing
- **pytest** for testing
### Apache License Headers
- **New files require ASF license headers** - When creating new code files, include the standard Apache Software Foundation license header
- **LLM instruction files are excluded** - Files like LLMS.md, CLAUDE.md, etc. are in `.rat-excludes` to avoid header token overhead
## Documentation Requirements
- **docs/**: Update for any user-facing changes
- **UPDATING.md**: Add breaking changes here
- **Docstrings**: Required for new functions/classes
## Architecture Patterns
### Security & Features
- **RBAC**: Role-based access via Flask-AppBuilder
- **Feature flags**: Control feature rollouts
- **Row-level security**: SQL-based data access control
## Test Utilities
### Python Test Helpers
- **`SupersetTestCase`** - Base class in `tests/integration_tests/base_tests.py`
- **`@with_config`** - Config mocking decorator
- **`@with_feature_flags`** - Feature flag testing
- **`login_as()`, `login_as_admin()`** - Authentication helpers
- **`create_dashboard()`, `create_slice()`** - Data setup utilities
### TypeScript Test Helpers
- **`superset-frontend/spec/helpers/testing-library.tsx`** - Custom render() with providers
- **`createWrapper()`** - Redux/Router/Theme wrapper
- **`selectOption()`** - Select component helper
- **React Testing Library** - NO Enzyme (removed)
### Test Database Patterns
- **Mock patterns**: Use `MagicMock()` for config objects, avoid `AsyncMock` for synchronous code
- **API tests**: Update expected columns when adding new model fields
### Running Tests
```bash
# Frontend
npm run test # All tests
npm run test -- filename.test.tsx # Single file
# Backend
pytest # All tests
pytest tests/unit_tests/specific_test.py # Single file
pytest tests/unit_tests/ # Directory
# If pytest fails with database/setup issues, ask the user to run test environment setup
```
## Environment Validation
**Quick Setup Check (run this first):**
```bash
# Verify Superset is running
curl -f http://localhost:8088/health || echo "❌ Setup required - see https://superset.apache.org/docs/contributing/development#working-with-llms"
```
**If health checks fail:**
"It appears you aren't set up properly. Please refer to the [Working with LLMs](https://superset.apache.org/docs/contributing/development#working-with-llms) section in the development docs for setup instructions."
**Key Project Files:**
- `superset-frontend/package.json` - Frontend build scripts (`npm run dev` on port 9000, `npm run test`, `npm run lint`)
- `pyproject.toml` - Python tooling (ruff, mypy configs)
- `requirements/` folder - Python dependencies (base.txt, development.txt)
## SQLAlchemy Query Best Practices
- **Use negation operator**: `~Model.field` instead of `== False` to avoid ruff E712 errors
- **Example**: `~Model.is_active` instead of `Model.is_active == False`
## Pull Request Guidelines
**When creating pull requests:**
1. **Read the current PR template**: Always check `.github/PULL_REQUEST_TEMPLATE.md` for the latest format
2. **Use the template sections**: Include all sections from the template (SUMMARY, BEFORE/AFTER, TESTING INSTRUCTIONS, ADDITIONAL INFORMATION)
3. **Follow PR title conventions**: Use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/)
- Format: `type(scope): description`
- Example: `fix(dashboard): load charts correctly`
- Types: `fix`, `feat`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`
**Important**: Always reference the actual template file at `.github/PULL_REQUEST_TEMPLATE.md` instead of using cached content, as the template may be updated over time.
## Pre-commit Validation
**Use pre-commit hooks for quality validation:**
```bash
# Install hooks
pre-commit install
# IMPORTANT: Stage your changes first!
git add . # Pre-commit only checks staged files
# Quick validation (faster than --all-files)
pre-commit run # Staged files only
pre-commit run mypy # Python type checking
pre-commit run prettier # Code formatting
pre-commit run eslint # Frontend linting
```
**Important pre-commit usage notes:**
- **Stage files first**: Run `git add .` before `pre-commit run` to check only changed files (much faster)
- **Virtual environment**: Activate your Python virtual environment before running pre-commit
```bash
# Common virtual environment locations (yours may differ):
source .venv/bin/activate # if using .venv
source venv/bin/activate # if using venv
source ~/venvs/superset/bin/activate # if using a central location
```
If you get a "command not found" error, ask the user which virtual environment to activate
- **Auto-fixes**: Some hooks auto-fix issues (e.g., trailing whitespace). Re-run after fixes are applied
## Common File Patterns
### API Structure
- **`/api.py`** - REST endpoints with decorators and OpenAPI docstrings
- **`/schemas.py`** - Marshmallow validation schemas for OpenAPI spec
- **`/commands/`** - Business logic classes with @transaction() decorators
- **`/models/`** - SQLAlchemy database models
- **OpenAPI docs**: Auto-generated at `/swagger/v1` from docstrings and schemas
### Migration Files
- **Location**: `superset/migrations/versions/`
- **Naming**: `YYYY-MM-DD_HH-MM_hash_description.py`
- **Utilities**: Use helpers from `superset.migrations.shared.utils` for database compatibility
- **Pattern**: Import utilities instead of raw SQLAlchemy operations
## Platform-Specific Instructions
- **[CLAUDE.md](CLAUDE.md)** - For Claude/Anthropic tools
- **[.github/copilot-instructions.md](.github/copilot-instructions.md)** - For GitHub Copilot
- **[GEMINI.md](GEMINI.md)** - For Google Gemini tools
- **[GPT.md](GPT.md)** - For OpenAI/ChatGPT tools
- **[.cursor/rules/dev-standard.mdc](.cursor/rules/dev-standard.mdc)** - For Cursor editor
---
**LLM Note**: This codebase is actively modernizing toward full TypeScript and type safety. Always run `pre-commit run` to validate changes. Follow the ongoing refactors section to avoid deprecated patterns.

View File

@@ -18,7 +18,7 @@
# Python version installed; we need 3.10-3.11
PYTHON=`command -v python3.11 || command -v python3.10`
.PHONY: install superset venv pre-commit
.PHONY: install superset venv pre-commit up down logs ps nuke ports open
install: superset pre-commit
@@ -112,3 +112,28 @@ report-celery-beat:
admin-user:
superset fab create-admin
# Docker Compose with auto-assigned ports (for running multiple instances)
up:
./scripts/docker-compose-up.sh
up-detached:
./scripts/docker-compose-up.sh -d
down:
./scripts/docker-compose-up.sh down
logs:
./scripts/docker-compose-up.sh logs -f
ps:
./scripts/docker-compose-up.sh ps
nuke:
./scripts/docker-compose-up.sh nuke
ports:
./scripts/docker-compose-up.sh ports
open:
./scripts/docker-compose-up.sh open

128
README.md
View File

@@ -23,8 +23,12 @@ under the License.
[![Latest Release on Github](https://img.shields.io/github/v/release/apache/superset?sort=semver)](https://github.com/apache/superset/releases/latest)
[![Build Status](https://github.com/apache/superset/actions/workflows/superset-python-unittest.yml/badge.svg)](https://github.com/apache/superset/actions)
[![PyPI version](https://badge.fury.io/py/apache_superset.svg)](https://badge.fury.io/py/apache_superset)
[![Coverage Status](https://codecov.io/github/apache/superset/coverage.svg?branch=master)](https://codecov.io/github/apache/superset)
[![PyPI](https://img.shields.io/pypi/pyversions/apache_superset.svg?maxAge=2592000)](https://pypi.python.org/pypi/apache_superset)
[![GitHub Stars](https://img.shields.io/github/stars/apache/superset?style=social)](https://github.com/apache/superset/stargazers)
[![Contributors](https://img.shields.io/github/contributors/apache/superset)](https://github.com/apache/superset/graphs/contributors)
[![Last Commit](https://img.shields.io/github/last-commit/apache/superset)](https://github.com/apache/superset/commits/master)
[![Open Issues](https://img.shields.io/github/issues/apache/superset)](https://github.com/apache/superset/issues)
[![Open PRs](https://img.shields.io/github/issues-pr/apache/superset)](https://github.com/apache/superset/pulls)
[![Get on Slack](https://img.shields.io/badge/slack-join-orange.svg)](http://bit.ly/join-superset-slack)
[![Documentation](https://img.shields.io/badge/docs-apache.org-blue.svg)](https://superset.apache.org)
@@ -44,14 +48,18 @@ under the License.
A modern, enterprise-ready business intelligence web application.
### Documentation
- **[User Guide](https://superset.apache.org/user-docs/)** — For analysts and business users. Explore data, build charts, create dashboards, and connect databases.
- **[Administrator Guide](https://superset.apache.org/admin-docs/)** — Install, configure, and operate Superset. Covers security, scaling, and database drivers.
- **[Developer Guide](https://superset.apache.org/developer-docs/)** — Contribute to Superset or build on its REST API and extension framework.
[**Why Superset?**](#why-superset) |
[**Supported Databases**](#supported-databases) |
[**Installation and Configuration**](#installation-and-configuration) |
[**Release Notes**](https://github.com/apache/superset/blob/master/RELEASING/README.md#release-notes-for-recent-releases) |
[**Get Involved**](#get-involved) |
[**Contributor Guide**](#contributor-guide) |
[**Resources**](#resources) |
[**Organizations Using Superset**](https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md)
[**Organizations Using Superset**](https://superset.apache.org/inTheWild)
## Why Superset?
@@ -85,7 +93,7 @@ Superset provides:
**Craft Beautiful, Dynamic Dashboards**
<kbd><img title="View Dashboards" src="https://superset.apache.org/img/screenshots/slack_dash.jpg"/></kbd><br/>
<kbd><img title="View Dashboards" src="https://superset.apache.org/img/screenshots/dashboard.jpg"/></kbd><br/>
**No-Code Chart Builder**
@@ -97,51 +105,77 @@ Superset provides:
## Supported Databases
Superset can query data from any SQL-speaking datastore or data engine (Presto, Trino, Athena, [and more](https://superset.apache.org/docs/configuration/databases)) that has a Python DB-API driver and a SQLAlchemy dialect.
Superset can query data from any SQL-speaking datastore or data engine (Presto, Trino, Athena, [and more](https://superset.apache.org/docs/databases)) that has a Python DB-API driver and a SQLAlchemy dialect.
Here are some of the major database solutions that are supported:
<!-- SUPPORTED_DATABASES_START -->
<p align="center">
<img src="https://superset.apache.org/img/databases/redshift.png" alt="redshift" border="0" width="200"/>
<img src="https://superset.apache.org/img/databases/google-biquery.png" alt="google-bigquery" border="0" width="200"/>
<img src="https://superset.apache.org/img/databases/snowflake.png" alt="snowflake" border="0" width="200"/>
<img src="https://superset.apache.org/img/databases/trino.png" alt="trino" border="0" width="150" />
<img src="https://superset.apache.org/img/databases/presto.png" alt="presto" border="0" width="200"/>
<img src="https://superset.apache.org/img/databases/databricks.png" alt="databricks" border="0" width="160" />
<img src="https://superset.apache.org/img/databases/druid.png" alt="druid" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/firebolt.png" alt="firebolt" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/timescale.png" alt="timescale" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/postgresql.png" alt="postgresql" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/mysql.png" alt="mysql" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/mssql-server.png" alt="mssql-server" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/ibm-db2.svg" alt="db2" border="0" width="220" />
<img src="https://superset.apache.org/img/databases/sqlite.png" alt="sqlite" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/sybase.png" alt="sybase" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/mariadb.png" alt="mariadb" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/vertica.png" alt="vertica" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/oracle.png" alt="oracle" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/firebird.png" alt="firebird" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/greenplum.png" alt="greenplum" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/clickhouse.png" alt="clickhouse" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/exasol.png" alt="exasol" border="0" width="160" />
<img src="https://superset.apache.org/img/databases/monet-db.png" alt="monet-db" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/apache-kylin.png" alt="apache-kylin" border="0" width="80"/>
<img src="https://superset.apache.org/img/databases/hologres.png" alt="hologres" border="0" width="80"/>
<img src="https://superset.apache.org/img/databases/netezza.png" alt="netezza" border="0" width="80"/>
<img src="https://superset.apache.org/img/databases/pinot.png" alt="pinot" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/teradata.png" alt="teradata" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/yugabyte.png" alt="yugabyte" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/databend.png" alt="databend" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/starrocks.png" alt="starrocks" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/doris.png" alt="doris" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/oceanbase.svg" alt="oceanbase" border="0" width="220" />
<img src="https://superset.apache.org/img/databases/sap-hana.png" alt="sap-hana" border="0" width="220" />
<img src="https://superset.apache.org/img/databases/denodo.png" alt="denodo" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/ydb.svg" alt="ydb" border="0" width="200" />
<img src="https://superset.apache.org/img/databases/tdengine.png" alt="TDengine" border="0" width="200" />
<a href="https://superset.apache.org/docs/databases/supported/amazon-athena" title="Amazon Athena"><img src="docs/static/img/databases/amazon-athena.jpg" alt="Amazon Athena" width="76" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/amazon-dynamodb" title="Amazon DynamoDB"><img src="docs/static/img/databases/aws.png" alt="Amazon DynamoDB" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/amazon-redshift" title="Amazon Redshift"><img src="docs/static/img/databases/redshift.png" alt="Amazon Redshift" width="100" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-doris" title="Apache Doris"><img src="docs/static/img/databases/doris.png" alt="Apache Doris" width="103" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-drill" title="Apache Drill"><img src="docs/static/img/databases/apache-drill.png" alt="Apache Drill" width="81" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-druid" title="Apache Druid"><img src="docs/static/img/databases/druid.png" alt="Apache Druid" width="117" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-hive" title="Apache Hive"><img src="docs/static/img/databases/apache-hive.svg" alt="Apache Hive" width="44" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-impala" title="Apache Impala"><img src="docs/static/img/databases/apache-impala.png" alt="Apache Impala" width="21" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-kylin" title="Apache Kylin"><img src="docs/static/img/databases/apache-kylin.png" alt="Apache Kylin" width="44" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-pinot" title="Apache Pinot"><img src="docs/static/img/databases/apache-pinot.svg" alt="Apache Pinot" width="76" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-solr" title="Apache Solr"><img src="docs/static/img/databases/apache-solr.png" alt="Apache Solr" width="79" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/apache-spark-sql" title="Apache Spark SQL"><img src="docs/static/img/databases/apache-spark.png" alt="Apache Spark SQL" width="75" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/ascend" title="Ascend"><img src="docs/static/img/databases/ascend.webp" alt="Ascend" width="117" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/aurora-mysql-data-api" title="Aurora MySQL (Data API)"><img src="docs/static/img/databases/mysql.png" alt="Aurora MySQL (Data API)" width="77" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/aurora-postgresql-data-api" title="Aurora PostgreSQL (Data API)"><img src="docs/static/img/databases/postgresql.svg" alt="Aurora PostgreSQL (Data API)" width="76" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/azure-data-explorer" title="Azure Data Explorer"><img src="docs/static/img/databases/kusto.png" alt="Azure Data Explorer" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/azure-synapse" title="Azure Synapse"><img src="docs/static/img/databases/azure.svg" alt="Azure Synapse" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/clickhouse" title="ClickHouse"><img src="docs/static/img/databases/clickhouse.png" alt="ClickHouse" width="150" height="37" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/cloudflare-d1" title="Cloudflare D1"><img src="docs/static/img/databases/cloudflare.png" alt="Cloudflare D1" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/cockroachdb" title="CockroachDB"><img src="docs/static/img/databases/cockroachdb.png" alt="CockroachDB" width="150" height="24" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/couchbase" title="Couchbase"><img src="docs/static/img/databases/couchbase.svg" alt="Couchbase" width="150" height="35" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/cratedb" title="CrateDB"><img src="docs/static/img/databases/cratedb.svg" alt="CrateDB" width="180" height="24" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/databend" title="Databend"><img src="docs/static/img/databases/databend.png" alt="Databend" width="100" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/databricks" title="Databricks"><img src="docs/static/img/databases/databricks.png" alt="Databricks" width="152" height="24" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/denodo" title="Denodo"><img src="docs/static/img/databases/denodo.png" alt="Denodo" width="138" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/dremio" title="Dremio"><img src="docs/static/img/databases/dremio.png" alt="Dremio" width="126" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/duckdb" title="DuckDB"><img src="docs/static/img/databases/duckdb.png" alt="DuckDB" width="52" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/elasticsearch" title="Elasticsearch"><img src="docs/static/img/databases/elasticsearch.png" alt="Elasticsearch" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/exasol" title="Exasol"><img src="docs/static/img/databases/exasol.png" alt="Exasol" width="72" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/firebird" title="Firebird"><img src="docs/static/img/databases/firebird.png" alt="Firebird" width="100" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/firebolt" title="Firebolt"><img src="docs/static/img/databases/firebolt.png" alt="Firebolt" width="100" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/google-bigquery" title="Google BigQuery"><img src="docs/static/img/databases/google-big-query.svg" alt="Google BigQuery" width="76" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/google-sheets" title="Google Sheets"><img src="docs/static/img/databases/google-sheets.svg" alt="Google Sheets" width="76" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/greenplum" title="Greenplum"><img src="docs/static/img/databases/greenplum.png" alt="Greenplum" width="124" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/hologres" title="Hologres"><img src="docs/static/img/databases/hologres.png" alt="Hologres" width="44" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/ibm-db2" title="IBM Db2"><img src="docs/static/img/databases/ibm-db2.svg" alt="IBM Db2" width="91" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/ibm-netezza-performance-server" title="IBM Netezza Performance Server"><img src="docs/static/img/databases/netezza.png" alt="IBM Netezza Performance Server" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/mariadb" title="MariaDB"><img src="docs/static/img/databases/mariadb.png" alt="MariaDB" width="150" height="37" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/microsoft-sql-server" title="Microsoft SQL Server"><img src="docs/static/img/databases/msql.png" alt="Microsoft SQL Server" width="50" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/monetdb" title="MonetDB"><img src="docs/static/img/databases/monet-db.png" alt="MonetDB" width="100" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/mongodb" title="MongoDB"><img src="docs/static/img/databases/mongodb.png" alt="MongoDB" width="150" height="38" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/motherduck" title="MotherDuck"><img src="docs/static/img/databases/motherduck.png" alt="MotherDuck" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/oceanbase" title="OceanBase"><img src="docs/static/img/databases/oceanbase.svg" alt="OceanBase" width="175" height="24" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/oracle" title="Oracle"><img src="docs/static/img/databases/oraclelogo.png" alt="Oracle" width="111" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/presto" title="Presto"><img src="docs/static/img/databases/presto-og.png" alt="Presto" width="127" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/risingwave" title="RisingWave"><img src="docs/static/img/databases/risingwave.svg" alt="RisingWave" width="147" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/sap-hana" title="SAP HANA"><img src="docs/static/img/databases/sap-hana.png" alt="SAP HANA" width="137" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/sap-sybase" title="SAP Sybase"><img src="docs/static/img/databases/sybase.png" alt="SAP Sybase" width="100" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/shillelagh" title="Shillelagh"><img src="docs/static/img/databases/shillelagh.png" alt="Shillelagh" width="40" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/singlestore" title="SingleStore"><img src="docs/static/img/databases/singlestore.png" alt="SingleStore" width="150" height="31" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/snowflake" title="Snowflake"><img src="docs/static/img/databases/snowflake.svg" alt="Snowflake" width="76" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/sqlite" title="SQLite"><img src="docs/static/img/databases/sqlite.png" alt="SQLite" width="84" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/starrocks" title="StarRocks"><img src="docs/static/img/databases/starrocks.png" alt="StarRocks" width="149" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/superset-meta-database" title="Superset meta database"><img src="docs/static/img/databases/superset.svg" alt="Superset meta database" width="150" height="39" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/tdengine" title="TDengine"><img src="docs/static/img/databases/tdengine.png" alt="TDengine" width="140" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/teradata" title="Teradata"><img src="docs/static/img/databases/teradata.png" alt="Teradata" width="124" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/timescaledb" title="TimescaleDB"><img src="docs/static/img/databases/timescale.png" alt="TimescaleDB" width="150" height="36" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/trino" title="Trino"><img src="docs/static/img/databases/trino.png" alt="Trino" width="89" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/vertica" title="Vertica"><img src="docs/static/img/databases/vertica.png" alt="Vertica" width="128" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/ydb" title="YDB"><img src="docs/static/img/databases/ydb.svg" alt="YDB" width="110" height="40" /></a> &nbsp;
<a href="https://superset.apache.org/docs/databases/supported/yugabytedb" title="YugabyteDB"><img src="docs/static/img/databases/yugabyte.png" alt="YugabyteDB" width="150" height="26" /></a>
</p>
<!-- SUPPORTED_DATABASES_END -->
**A more comprehensive list of supported databases** along with the configuration instructions can be found [here](https://superset.apache.org/docs/configuration/databases).
**A more comprehensive list of supported databases** along with the configuration instructions can be found [here](https://superset.apache.org/docs/databases).
Want to add support for your datastore or data engine? Read more [here](https://superset.apache.org/docs/frequently-asked-questions#does-superset-work-with-insert-database-engine-here) about the technical requirements.
@@ -161,14 +195,14 @@ Try out Superset's [quickstart](https://superset.apache.org/docs/quickstart/) gu
## Contributor Guide
Interested in contributing? Check out our
[CONTRIBUTING.md](https://github.com/apache/superset/blob/master/CONTRIBUTING.md)
[Developer Guide](https://superset.apache.org/developer-docs/)
to find resources around contributing along with a detailed guide on
how to set up a development environment.
## Resources
- [Superset "In the Wild"](https://github.com/apache/superset/blob/master/RESOURCES/INTHEWILD.md) - open a PR to add your org to the list!
- [Feature Flags](https://github.com/apache/superset/blob/master/RESOURCES/FEATURE_FLAGS.md) - the status of Superset's Feature Flags.
- [Superset "In the Wild"](https://superset.apache.org/inTheWild) - see who's using Superset, and [add your organization](https://github.com/apache/superset/edit/master/RESOURCES/INTHEWILD.yaml) to the list!
- [Feature Flags](https://superset.apache.org/docs/configuration/feature-flags) - the status of Superset's Feature Flags.
- [Standard Roles](https://github.com/apache/superset/blob/master/RESOURCES/STANDARD_ROLES.md) - How RBAC permissions map to roles.
- [Superset Wiki](https://github.com/apache/superset/wiki) - Tons of additional community resources: best practices, community content and other information.
- [Superset SIPs](https://github.com/orgs/apache/projects/170) - The status of Superset's SIPs (Superset Improvement Proposals) for both consensus and implementation status.

View File

@@ -92,7 +92,7 @@ Some of the new features in this release are disabled by default. Each has a fea
| Feature | Feature Flag | Dependencies | Documentation
| --- | --- | --- | --- |
| Global Async Queries | `GLOBAL_ASYNC_QUERIES: True` | Redis 5.0+, celery workers configured and running | [Extra documentation](https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries )
| Global Async Queries | `GLOBAL_ASYNC_QUERIES: True` | Redis 5.0+, celery workers configured and running | [Extra documentation](https://superset.apache.org/docs/contributing/misc#async-chart-queries)
| Dashboard Native Filters | `DASHBOARD_NATIVE_FILTERS: True` | |
| Alerts & Reporting | `ALERT_REPORTS: True` | [Celery workers configured & celery beat process](https://superset.apache.org/docs/installation/async-queries-celery) |
| Homescreen Thumbnails | `THUMBNAILS: TRUE, THUMBNAIL_CACHE_CONFIG: CacheConfig = { "CACHE_TYPE": "null", "CACHE_NO_NULL_WARNING": True}`| selenium, pillow 7, celery |

View File

@@ -1,103 +0,0 @@
<!--
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.
-->
# Superset Feature Flags
This is a list of the current Superset optional features. See config.py for default values. These features can be turned on/off by setting your preferred values in superset_config.py to True/False respectively
## In Development
These features are considered **unfinished** and should only be used on development environments.
[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY"
- ALERT_REPORT_TABS
- DATE_RANGE_TIMESHIFTS_ENABLED
- ENABLE_ADVANCED_DATA_TYPES
- PRESTO_EXPAND_DATA
- SHARE_QUERIES_VIA_KV_STORE
- TAGGING_SYSTEM
- CHART_PLUGINS_EXPERIMENTAL
## In Testing
These features are **finished** but currently being tested. They are usable, but may still contain some bugs.
[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY"
- ALERT_REPORTS: [(docs)](https://superset.apache.org/docs/configuration/alerts-reports)
- ALLOW_FULL_CSV_EXPORT
- CACHE_IMPERSONATION
- CONFIRM_DASHBOARD_DIFF
- DYNAMIC_PLUGINS
- DATE_FORMAT_IN_EMAIL_SUBJECT: [(docs)](https://superset.apache.org/docs/configuration/alerts-reports#commons)
- ENABLE_SUPERSET_META_DB: [(docs)](https://superset.apache.org/docs/configuration/databases/#querying-across-databases)
- ESTIMATE_QUERY_COST
- GLOBAL_ASYNC_QUERIES [(docs)](https://github.com/apache/superset/blob/master/CONTRIBUTING.md#async-chart-queries)
- IMPERSONATE_WITH_EMAIL_PREFIX
- PLAYWRIGHT_REPORTS_AND_THUMBNAILS
- RLS_IN_SQLLAB
- SSH_TUNNELING [(docs)](https://superset.apache.org/docs/configuration/setup-ssh-tunneling)
- USE_ANALAGOUS_COLORS
## Stable
These features flags are **safe for production**. They have been tested and will be supported for the at least the current major version cycle.
[//]: # "PLEASE KEEP THESE LISTS SORTED ALPHABETICALLY"
### Flags on the path to feature launch and flag deprecation/removal
- DASHBOARD_VIRTUALIZATION
### Flags retained for runtime configuration
Currently some of our feature flags act as dynamic configurations that can changed
on the fly. This acts in contradiction with the typical ephemeral feature flag use case,
where the flag is used to mature a feature, and eventually deprecated once the feature is
solid. Eventually we'll likely refactor these under a more formal "dynamic configurations" managed
independently. This new framework will also allow for non-boolean configurations.
- ALERTS_ATTACH_REPORTS
- ALLOW_ADHOC_SUBQUERY
- DASHBOARD_RBAC [(docs)](https://superset.apache.org/docs/using-superset/creating-your-first-dashboard#manage-access-to-dashboards)
- DATAPANEL_CLOSED_BY_DEFAULT
- DRILL_BY
- DRUID_JOINS
- EMBEDDABLE_CHARTS
- EMBEDDED_SUPERSET
- ENABLE_TEMPLATE_PROCESSING
- ESCAPE_MARKDOWN_HTML
- LISTVIEWS_DEFAULT_CARD_VIEW
- SCHEDULED_QUERIES [(docs)](https://superset.apache.org/docs/configuration/alerts-reports)
- SLACK_ENABLE_AVATARS (see `superset/config.py` for more information)
- SQLLAB_BACKEND_PERSISTENCE
- SQL_VALIDATORS_BY_ENGINE [(docs)](https://superset.apache.org/docs/configuration/sql-templating)
- THUMBNAILS [(docs)](https://superset.apache.org/docs/configuration/cache)
## Deprecated Flags
These features flags currently default to True and **will be removed in a future major release**. For this current release you can turn them off by setting your config to False, but it is advised to remove or set these flags in your local configuration to **True** so that you do not experience any unexpected changes in a future release.
[//]: # "PLEASE KEEP THE LIST SORTED ALPHABETICALLY"
- AVOID_COLORS_COLLISION
- DRILL_TO_DETAIL
- ENABLE_JAVASCRIPT_CONTROLS
- KV_STORE

View File

@@ -1,226 +0,0 @@
<!--
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.
-->
## Superset Users in the Wild
Here's a list of organizations, broken down into broad industry categories, that have taken the time to send a PR to let
the world know they are using Apache Superset. If you are a user and want to be recognized,
all you have to do is file a simple PR [like this one](https://github.com/apache/superset/pull/10122) — [just click here](https://github.com/apache/superset/edit/master/RESOURCES/INTHEWILD.md) to do so. If you think
the categorization is inaccurate, please file a PR with your correction as well.
Join our growing community!
### Sharing Economy
- [Airbnb](https://github.com/airbnb)
- [Faasos](https://faasos.com/) [@shashanksingh]
- [Free2Move](https://www.free2move.com/) [@PaoloTerzi]
- [Hostnfly](https://www.hostnfly.com/) [@alexisrosuel]
- [Lime](https://www.li.me/) [@cxmcc]
- [Lyft](https://www.lyft.com/)
- [Ontruck](https://www.ontruck.com/)
### Financial Services
- [Aktia Bank plc](https://www.aktia.com)
- [American Express](https://www.americanexpress.com) [@TheLastSultan]
- [bumper](https://www.bumper.co/) [@vasu-ram, @JamiePercival]
- [Cape Crypto](https://capecrypto.com)
- [Capital Service S.A.](https://capitalservice.pl) [@pkonarzewski]
- [Clark.de](https://clark.de/)
- [Europace](https://europace.de)
- [KarrotPay](https://www.daangnpay.com/)
- [Remita](https://remita.net) [@mujibishola]
- [Taveo](https://www.taveo.com) [@codek]
- [Unit](https://www.unit.co/about-us) [@amitmiran137]
- [Wise](https://wise.com) [@koszti]
- [Xendit](https://xendit.co/) [@LieAlbertTriAdrian]
- [Cover Genius](https://covergenius.com/)
### Gaming
- [Popoko VM Games Studio](https://popoko.live)
### E-Commerce
- [AiHello](https://www.aihello.com) [@ganeshkrishnan1]
- [Bazaar Technologies](https://www.bazaartech.com) [@umair-abro]
- [Dragonpass](https://www.dragonpass.com.cn/) [@zhxjdwh]
- [Dropit Shopping](https://www.dropit.shop/) [@dropit-dev]
- [Fanatics](https://www.fanatics.com/) [@coderfender]
- [Fordeal](https://www.fordeal.com) [@Renkai]
- [Fynd](https://www.fynd.com/) [@darpanjain07]
- [GFG - Global Fashion Group](https://global-fashion-group.com) [@ksaagariconic]
- [GoTo/Gojek](https://www.gojek.io/) [@gwthm-in]
- [HuiShouBao](https://www.huishoubao.com/) [@Yukinoshita-Yukino]
- [Now](https://www.now.vn/) [@davidkohcw]
- [Qunar](https://www.qunar.com/) [@flametest]
- [Rakuten Viki](https://www.viki.com)
- [Shopee](https://shopee.sg) [@xiaohanyu]
- [Shopkick](https://www.shopkick.com) [@LAlbertalli]
- [ShopUp](https://www.shopup.org/) [@gwthm-in]
- [Tails.com](https://tails.com/gb/) [@alanmcruickshank]
- [THE ICONIC](https://theiconic.com.au/) [@ksaagariconic]
- [Utair](https://www.utair.ru) [@utair-digital]
- [VkusVill](https://vkusvill.ru/) [@ETselikov]
- [Zalando](https://www.zalando.com) [@dmigo]
- [Zalora](https://www.zalora.com) [@ksaagariconic]
- [Zepto](https://www.zeptonow.com/) [@gwthm-in]
### Enterprise Technology
- [A3Data](https://a3data.com.br) [@neylsoncrepalde]
- [Analytics Aura](https://analyticsaura.com/) [@Analytics-Aura]
- [Apollo GraphQL](https://www.apollographql.com/) [@evans]
- [Astronomer](https://www.astronomer.io) [@ryw]
- [Avesta Technologies](https://avestatechnologies.com/) [@TheRum]
- [Caizin](https://caizin.com/) [@tejaskatariya]
- [Canonical](https://canonical.com)
- [Careem](https://www.careem.com/) [@samraHanif0340]
- [Cloudsmith](https://cloudsmith.io) [@alancarson]
- [Cyberhaven](https://www.cyberhaven.com/) [@toliver-ch]
- [Deepomatic](https://deepomatic.com/) [@Zanoellia]
- [Dial Once](https://www.dial-once.com/)
- [Dremio](https://dremio.com) [@narendrans]
- [EFinance](https://www.efinance.com.eg) [@habeeb556]
- [Elestio](https://elest.io/) [@kaiwalyakoparkar]
- [ELMO Cloud HR & Payroll](https://elmosoftware.com.au/)
- [Endress+Hauser](https://www.endress.com/) [@rumbin]
- [FBK - ICT center](https://ict.fbk.eu)
- [Formbricks](https://formbricks.com)
- [Gavagai](https://gavagai.io) [@gavagai-corp]
- [GfK Data Lab](https://www.gfk.com/home) [@mherr]
- [HPE](https://www.hpe.com/in/en/home.html) [@anmol-hpe]
- [Hydrolix](https://www.hydrolix.io/)
- [Intercom](https://www.intercom.com/) [@kate-gallo]
- [jampp](https://jampp.com/)
- [Konfío](https://konfio.mx) [@uis-rodriguez]
- [Mainstrat](https://mainstrat.com/)
- [mishmash io](https://mishmash.io/) [@mishmash-io]
- [Myra Labs](https://www.myralabs.com/) [@viksit]
- [Nielsen](https://www.nielsen.com/) [@amitNielsen]
- [Ona](https://ona.io) [@pld]
- [Orange](https://www.orange.com) [@icsu]
- [Oslandia](https://oslandia.com)
- [Oxylabs](https://oxylabs.io/) [@rytis-ulys]
- [Peak AI](https://www.peak.ai/) [@azhar22k]
- [PeopleDoc](https://www.people-doc.com) [@rodo]
- [PlaidCloud](https://www.plaidcloud.com)
- [Preset, Inc.](https://preset.io)
- [PubNub](https://pubnub.com) [@jzucker2]
- [ReadyTech](https://www.readytech.io)
- [Reward Gateway](https://www.rewardgateway.com)
- [RIADVICE](https://riadvice.tn) [@riadvice]
- [ScopeAI](https://www.getscopeai.com) [@iloveluce]
- [shipmnts](https://shipmnts.com)
- [Showmax](https://showmax.com) [@bobek]
- [SingleStore](https://www.singlestore.com/)
- [TechAudit](https://www.techaudit.info) [@ETselikov]
- [Tenable](https://www.tenable.com) [@dflionis]
- [Tentacle](https://www.linkedin.com/company/tentacle-cmi/) [@jdclarke5]
- [timbr.ai](https://timbr.ai/) [@semantiDan]
- [Tobii](https://www.tobii.com/) [@dwa]
- [Tooploox](https://www.tooploox.com/) [@jakubczaplicki]
- [Unvired](https://unvired.com) [@srinisubramanian]
- [Virtuoso QA](https://www.virtuosoqa.com)
- [Whale](https://whale.im)
- [Windsor.ai](https://www.windsor.ai/) [@octaviancorlade]
- [WinWin Network马上赢](https://brandct.cn/) [@wenbinye]
- [Zeta](https://www.zeta.tech/) [@shaikidris]
### Media & Entertainment
- [6play](https://www.6play.fr) [@CoryChaplin]
- [bilibili](https://www.bilibili.com) [@Moinheart]
- [BurdaForward](https://www.burda-forward.de/en/)
- [Douban](https://www.douban.com/) [@luchuan]
- [Kuaishou](https://www.kuaishou.com/) [@zhaoyu89730105]
- [Netflix](https://www.netflix.com/)
- [Prensa Iberica](https://www.prensaiberica.es/) [@zamar-roura]
- [TME QQMUSIC/WESING](https://www.tencentmusic.com/) [@shenyuanli,@marklaw]
- [Xite](https://xite.com/) [@shashankkoppar]
- [Zaihang](https://www.zaih.com/)
### Education
- [Aveti Learning](https://avetilearning.com/) [@TheShubhendra]
- [Brilliant.org](https://brilliant.org/)
- [Open edX](https://openedx.org/)
- [Platzi.com](https://platzi.com/)
- [Sunbird](https://www.sunbird.org/) [@eksteporg]
- [The GRAPH Network](https://thegraphnetwork.org/) [@fccoelho]
- [Udemy](https://www.udemy.com/) [@sungjuly]
- [VIPKID](https://www.vipkid.com.cn/) [@illpanda]
- [WikiMedia Foundation](https://wikimediafoundation.org) [@vg]
### Energy
- [Airboxlab](https://foobot.io) [@antoine-galataud]
- [DouroECI](https://www.douroeci.com/) [@nunohelibeires]
- [Safaricom](https://www.safaricom.co.ke/) [@mmutiso]
- [Scoot](https://scoot.co/) [@haaspt]
- [Wattbewerb](https://wattbewerb.de/) [@wattbewerb]
### Healthcare
- [Amino](https://amino.com) [@shkr]
- [Bluesquare](https://www.bluesquarehub.com/) [@madewulf]
- [Care](https://www.getcare.io/) [@alandao2021]
- [Living Goods](https://www.livinggoods.org) [@chelule]
- [Maieutical Labs](https://maieuticallabs.it) [@xrmx]
- [Medic](https://medic.org) [@1yuv]
- [REDCap Cloud](https://www.redcapcloud.com/)
- [TrustMedis](https://trustmedis.com/) [@famasya]
- [WeSure](https://www.wesure.cn/)
- [2070Health](https://2070health.com/)
### HR / Staffing
- [Swile](https://www.swile.co/) [@PaoloTerzi]
- [Symmetrics](https://www.symmetrics.fyi)
- [bluquist](https://bluquist.com/)
### Government
- [City of Ann Arbor, MI](https://www.a2gov.org/) [@sfirke]
- [RIS3 Strategy of CZ, MIT CR](https://www.ris3.cz/) [@RIS3CZ]
- [NRLM - Sarathi, India](https://pib.gov.in/PressReleasePage.aspx?PRID=1999586)
### Travel
- [Agoda](https://www.agoda.com/) [@lostseaway, @maiake, @obombayo]
- [HomeToGo](https://hometogo.com/) [@pedromartinsteenstrup]
- [Skyscanner](https://www.skyscanner.net/) [@cleslie, @stanhoucke]
### Others
- [10Web](https://10web.io/)
- [AI inside](https://inside.ai/en/)
- [Automattic](https://automattic.com/) [@Khrol, @Usiel]
- [Dropbox](https://www.dropbox.com/) [@bkyryliuk]
- [Flowbird](https://flowbird.com) [@EmmanuelCbd]
- [GEOTAB](https://www.geotab.com) [@JZ6]
- [Grassroot](https://www.grassrootinstitute.org/)
- [Increff](https://www.increff.com/) [@ishansinghania]
- [komoot](https://www.komoot.com/) [@christophlingg]
- [Let's Roam](https://www.letsroam.com/)
- [Machrent SA](https://www.machrent.com/)
- [Onebeat](https://1beat.com/) [@GuyAttia]
- [X](https://x.com/)
- [VLMedia](https://www.vlmedia.com.tr/) [@ibotheperfect]
- [Yahoo!](https://yahoo.com/)

699
RESOURCES/INTHEWILD.yaml Normal file
View File

@@ -0,0 +1,699 @@
# 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.
# Apache Superset Users in the Wild
#
# To add your organization:
# 1. Find the appropriate category (or add a new one)
# 2. Add an entry with your organization details
# 3. Optionally add a logo file to docs/static/img/logos/
#
# Required fields:
# - name: Your organization name
# - url: Link to your organization's website
#
# Optional fields:
# - logo: Filename of logo in docs/static/img/logos/ (e.g., "mycompany.svg")
# - contributors: List of GitHub usernames who contributed (e.g., ["@username"])
categories:
Sharing Economy:
- name: Airbnb
url: https://github.com/airbnb
- name: Faasos
url: https://faasos.com/
contributors: ["@shashanksingh"]
- name: Free2Move
url: https://www.free2move.com/
contributors: ["@PaoloTerzi"]
- name: Hostnfly
url: https://www.hostnfly.com/
contributors: ["@alexisrosuel"]
- name: Lime
url: https://www.li.me/
contributors: ["@cxmcc"]
- name: Lyft
url: https://www.lyft.com/
- name: Ontruck
url: https://www.ontruck.com/
Financial Services:
- name: Aktia Bank plc
url: https://www.aktia.com
- name: American Express
url: https://www.americanexpress.com
contributors: ["@TheLastSultan"]
- name: bumper
url: https://www.bumper.co/
contributors: ["@vasu-ram", "@JamiePercival"]
- name: Cape Crypto
url: https://capecrypto.com
- name: Capital Service S.A.
url: https://capitalservice.pl
contributors: ["@pkonarzewski"]
- name: Clark.de
url: https://clark.de/
- name: EnquiryLabs
url: https://www.enquirylabs.co.uk
- name: Europace
url: https://europace.de
- name: KarrotPay
url: https://www.daangnpay.com/
- name: Remita
url: https://remita.net
contributors: ["@mujibishola"]
- name: Taveo
url: https://www.taveo.com
contributors: ["@codek"]
- name: Unit
url: https://www.unit.co/about-us
contributors: ["@amitmiran137"]
- name: Wise
url: https://wise.com
contributors: ["@koszti"]
- name: Xendit
url: https://xendit.co/
contributors: ["@LieAlbertTriAdrian"]
- name: Cover Genius
url: https://covergenius.com/
Gaming:
- name: Popoko VM Games Studio
url: https://popoko.live
E-Commerce:
- name: AiHello
url: https://www.aihello.com
contributors: ["@ganeshkrishnan1"]
- name: Bazaar Technologies
url: https://www.bazaartech.com
contributors: ["@umair-abro"]
- name: Blinkit
url: https://www.blinkit.com/
contributors: ["@amsharm2"]
- name: Dragonpass
url: https://www.dragonpass.com.cn/
contributors: ["@zhxjdwh"]
- name: Dropit Shopping
url: https://www.dropit.shop/
contributors: ["@dropit-dev"]
- name: Fordeal
url: https://www.fordeal.com
contributors: ["@Renkai"]
- name: Fynd
url: https://www.fynd.com/
contributors: ["@darpanjain07"]
- name: GFG - Global Fashion Group
url: https://global-fashion-group.com
contributors: ["@ksaagariconic"]
- name: GoTo/Gojek
url: https://www.gojek.io/
contributors: ["@gwthm-in"]
- name: HuiShouBao
url: https://www.huishoubao.com/
contributors: ["@Yukinoshita-Yukino"]
- name: Now
url: https://www.now.vn/
contributors: ["@davidkohcw"]
- name: Qunar
url: https://www.qunar.com/
contributors: ["@flametest"]
- name: Rakuten Viki
url: https://www.viki.com
- name: Shopee
url: https://shopee.sg
contributors: ["@xiaohanyu"]
- name: Shopkick
url: https://www.shopkick.com
contributors: ["@LAlbertalli"]
- name: ShopUp
url: https://www.shopup.org/
contributors: ["@gwthm-in"]
- name: Tails.com
url: https://tails.com/gb/
contributors: ["@alanmcruickshank"]
- name: THE ICONIC
url: https://theiconic.com.au/
contributors: ["@ksaagariconic"]
- name: Utair
url: https://www.utair.ru
contributors: ["@utair-digital"]
- name: VkusVill
url: https://vkusvill.ru/
contributors: ["@ETselikov"]
- name: Zalando
url: https://www.zalando.com
contributors: ["@dmigo"]
- name: Zalora
url: https://www.zalora.com
contributors: ["@ksaagariconic"]
- name: Zepto
url: https://www.zeptonow.com/
contributors: ["@gwthm-in"]
Enterprise Technology:
- name: A3Data
url: https://a3data.com.br
contributors: ["@neylsoncrepalde"]
- name: Analytics Aura
url: https://analyticsaura.com/
contributors: ["@Analytics-Aura"]
- name: Apollo GraphQL
url: https://www.apollographql.com/
contributors: ["@evans"]
- name: Astronomer
url: https://www.astronomer.io
contributors: ["@ryw"]
- name: Avesta Technologies
url: https://avestatechnologies.com/
contributors: ["@TheRum"]
- name: Caizin
url: https://caizin.com/
contributors: ["@tejaskatariya"]
- name: Canonical
url: https://canonical.com
- name: Careem
url: https://www.careem.com/
contributors: ["@samraHanif0340"]
- name: Cloudsmith
url: https://cloudsmith.io
contributors: ["@alancarson"]
- name: Cyberhaven
url: https://www.cyberhaven.com/
contributors: ["@toliver-ch"]
- name: Deepomatic
url: https://deepomatic.com/
contributors: ["@Zanoellia"]
- name: Dial Once
url: https://www.dial-once.com/
- name: Dremio
url: https://dremio.com
contributors: ["@narendrans"]
- name: EFinance
url: https://www.efinance.com.eg
contributors: ["@habeeb556"]
- name: Elestio
url: https://elest.io/
contributors: ["@kaiwalyakoparkar"]
- name: ELMO Cloud HR & Payroll
url: https://elmosoftware.com.au/
- name: Endress+Hauser
url: https://www.endress.com/
contributors: ["@rumbin"]
- name: FBK - ICT center
url: https://ict.fbk.eu
- name: Formbricks
url: https://formbricks.com
- name: Gavagai
url: https://gavagai.io
contributors: ["@gavagai-corp"]
- name: GfK Data Lab
url: https://www.gfk.com/home
contributors: ["@mherr"]
- name: Hifadih Business & Technology
url: https://hifadih.net/en
logo: hifadih.png
contributors: ["@saintLaurent00"]
# Logo approved by @anmol-hpe on behalf of HPE
- name: HPE
url: https://www.hpe.com/in/en/home.html
logo: hpe.png
contributors: ["@anmol-hpe"]
- name: Hydrolix
url: https://www.hydrolix.io/
- name: Intercom
url: https://www.intercom.com/
contributors: ["@kate-gallo"]
- name: jampp
url: https://jampp.com/
- name: Konfío
url: https://konfio.mx
contributors: ["@uis-rodriguez"]
- name: Mainstrat
url: https://mainstrat.com/
- name: mishmash io
url: https://mishmash.io/
contributors: ["@mishmash-io"]
- name: Myra Labs
url: https://www.myralabs.com/
contributors: ["@viksit"]
- name: Nielsen
url: https://www.nielsen.com/
contributors: ["@amitNielsen"]
- name: Ona
url: https://ona.io
contributors: ["@pld"]
- name: Orange
url: https://www.orange.com
contributors: ["@icsu"]
- name: Oslandia
url: https://oslandia.com
- name: Oxylabs
url: https://oxylabs.io/
contributors: ["@rytis-ulys"]
- name: Peak AI
url: https://www.peak.ai/
contributors: ["@azhar22k"]
- name: PeopleDoc
url: https://www.people-doc.com
contributors: ["@rodo"]
- name: PlaidCloud
url: https://plaidcloud.com
logo: plaidcloud.svg
contributors: ["@rad-pat"]
- name: Preset, Inc.
url: https://preset.io
logo: preset.svg
contributors: ["@mistercrunch", "@betodealmeida", "@dpgaspar", "@rusackas", "@sadpandajoe", "@Vitor-Avila", "@kgabryje", "@geido", "@eschutho", "@Antonio-RiveroMartnez", "@yousoph"]
- name: PubNub
url: https://pubnub.com
contributors: ["@jzucker2"]
- name: ReadyTech
url: https://www.readytech.io
- name: Reward Gateway
url: https://www.rewardgateway.com
- name: RIADVICE
url: https://riadvice.tn
contributors: ["@riadvice"]
- name: ScopeAI
url: https://www.getscopeai.com
contributors: ["@iloveluce"]
- name: shipmnts
url: https://shipmnts.com
- name: Showmax
url: https://showmax.com
contributors: ["@bobek"]
- name: SingleStore
url: https://www.singlestore.com/
- name: TechAudit
url: https://www.techaudit.info
contributors: ["@ETselikov"]
- name: Tenable
url: https://www.tenable.com
contributors: ["@dflionis"]
- name: Tentacle
url: https://www.linkedin.com/company/tentacle-cmi/
contributors: ["@jdclarke5"]
- name: timbr.ai
url: https://timbr.ai/
contributors: ["@semantiDan"]
- name: Tobii
url: https://www.tobii.com/
contributors: ["@dwa"]
- name: Tooploox
url: https://www.tooploox.com/
contributors: ["@jakubczaplicki"]
- name: Unvired
url: https://unvired.com
contributors: ["@srinisubramanian"]
- name: UserGuiding
url: https://userguiding.com/
logo: userguiding.svg
contributors: ["@tzercin"]
- name: Virtuoso QA
url: https://www.virtuosoqa.com
- name: Whale
url: https://whale.im
- name: Windsor.ai
url: https://www.windsor.ai/
contributors: ["@octaviancorlade"]
- name: WinWin Network马上赢
url: https://brandct.cn/
contributors: ["@wenbinye"]
- name: XNET
url: https://xnetmobile.com/
logo: xnet.png
contributors: ["@deuspt"]
- name: Zeta
url: https://www.zeta.tech/
contributors: ["@shaikidris"]
Media & Entertainment:
- name: 6play
url: https://www.6play.fr
contributors: ["@CoryChaplin"]
- name: bilibili
url: https://www.bilibili.com
contributors: ["@Moinheart"]
- name: BurdaForward
url: https://www.burda-forward.de/en/
- name: Douban
url: https://www.douban.com/
contributors: ["@luchuan"]
- name: Kuaishou
url: https://www.kuaishou.com/
contributors: ["@zhaoyu89730105"]
- name: Netflix
url: https://www.netflix.com/
- name: Prensa Iberica
url: https://www.prensaiberica.es/
contributors: ["@zamar-roura"]
- name: TME QQMUSIC/WESING
url: https://www.tencentmusic.com/
contributors: ["@shenyuanli", "@marklaw"]
- name: Xite
url: https://xite.com/
contributors: ["@shashankkoppar"]
- name: Zaihang
url: https://www.zaih.com/
Education:
- name: Aveti Learning
url: https://avetilearning.com/
contributors: ["@TheShubhendra"]
- name: Brilliant.org
url: https://brilliant.org/
- name: Cirrus Assessment
url: https://cirrusassessment.com/
logo: cirrus.svg
contributors: ["@jeroenhabets", "@ddmm-white", "@paulrocost"]
- name: Open edX
url: https://openedx.org/
- name: Platzi.com
url: https://platzi.com/
- name: Sunbird
url: https://www.sunbird.org/
contributors: ["@eksteporg"]
- name: The GRAPH Network
url: https://thegraphnetwork.org/
contributors: ["@fccoelho"]
- name: Udemy
url: https://www.udemy.com/
contributors: ["@sungjuly"]
- name: VIPKID
url: https://www.vipkid.com.cn/
contributors: ["@illpanda"]
- name: WikiMedia Foundation
url: https://wikimediafoundation.org
contributors: ["@vg"]
Energy:
- name: Airboxlab
url: https://foobot.io
contributors: ["@antoine-galataud"]
- name: DouroECI
url: https://www.douroeci.com/
contributors: ["@nunohelibeires"]
- name: Safaricom
url: https://www.safaricom.co.ke/
contributors: ["@mmutiso"]
- name: Scoot
url: https://scoot.co/
contributors: ["@haaspt"]
- name: Wattbewerb
url: https://wattbewerb.de/
contributors: ["@wattbewerb"]
- name: Rogow
url: https://rogow.com.br/
contributors: ["@nilmonto"]
Healthcare:
- name: Amino
url: https://amino.com
contributors: ["@shkr"]
- name: Bluesquare
url: https://www.bluesquarehub.com/
contributors: ["@madewulf"]
- name: Care
url: https://www.getcare.io/
contributors: ["@alandao2021"]
- name: Living Goods
url: https://www.livinggoods.org
contributors: ["@chelule"]
- name: Maieutical Labs
url: https://maieuticallabs.it
contributors: ["@xrmx"]
- name: Medic
url: https://medic.org
contributors: ["@1yuv"]
- name: REDCap Cloud
url: https://www.redcapcloud.com/
- name: TrustMedis
url: https://trustmedis.com/
contributors: ["@famasya"]
- name: WeSure
url: https://www.wesure.cn/
- name: 2070Health
url: https://2070health.com/
HR / Staffing:
- name: Swile
url: https://www.swile.co/
contributors: ["@PaoloTerzi"]
- name: Symmetrics
url: https://www.symmetrics.fyi
- name: bluquist
url: https://bluquist.com/
Government:
- name: City of Ann Arbor, MI
url: https://www.a2gov.org/
contributors: ["@sfirke"]
- name: RIS3 Strategy of CZ, MIT CR
url: https://www.ris3.cz/
contributors: ["@RIS3CZ"]
- name: NRLM - Sarathi, India
url: https://pib.gov.in/PressReleasePage.aspx?PRID=1999586
Mobile Software:
- name: VLMedia
url: https://www.vlmedia.com.tr
logo: vlmedia.svg
contributors: ["@iercan"]
Travel:
- name: Agoda
url: https://www.agoda.com/
contributors: ["@lostseaway", "@maiake", "@obombayo"]
- name: HomeToGo
url: https://hometogo.com/
contributors: ["@pedromartinsteenstrup"]
- name: Skyscanner
url: https://www.skyscanner.net/
contributors: ["@cleslie", "@stanhoucke"]
Logistics:
- name: Stockarea
url: https://stockarea.io
- name: VTG
url: https://www.vtg.de
Sports:
- name: Club 25 de Agosto (Femenino / Women's Team)
url: https://www.instagram.com/25deagosto.basketfemenino/
contributors: [ "@lion90" ]
logo: club25deagosto.svg
- name: Fanatics
url: https://www.fanatics.com/
contributors: [ "@coderfender" ]
- name: komoot
url: https://www.komoot.com/
contributors: [ "@christophlingg" ]
Others:
- name: 10Web
url: https://10web.io/
- name: AI inside
url: https://inside.ai/en/
- name: Automattic
url: https://automattic.com/
contributors: ["@Khrol", "@Usiel"]
- name: Dropbox
url: https://www.dropbox.com/
contributors: ["@bkyryliuk"]
- name: Flowbird
url: https://flowbird.com
contributors: ["@EmmanuelCbd"]
- name: GEOTAB
url: https://www.geotab.com
contributors: ["@JZ6"]
- name: Grassroot
url: https://www.grassrootinstitute.org/
- name: HOLLYLAND猛玛
url: https://www.hollyland.com
logo: hollyland猛玛.svg
contributors: ["@hlyda0601"]
- name: Increff
url: https://www.increff.com/
contributors: ["@ishansinghania"]
- name: Let's Roam
url: https://www.letsroam.com/
- name: Machrent SA
url: https://www.machrent.com/
- name: Onebeat
url: https://1beat.com/
contributors: ["@GuyAttia"]
- name: X
url: https://x.com/
- name: Yahoo!
url: https://yahoo.com/

View File

@@ -17,192 +17,193 @@ specific language governing permissions and limitations
under the License.
-->
| |Admin|Alpha|Gamma|SQL_LAB|
|--------------------------------------------------|---|---|---|---|
| Permission/role description |Admins have all possible rights, including granting or revoking rights from other users and altering other peoples slices and dashboards.|Alpha users have access to all data sources, but they cannot grant or revoke access from other users. They are also limited to altering the objects that they own. Alpha users can add and alter data sources.|Gamma users have limited access. They can only consume data coming from data sources they have been given access to through another complementary role. They only have access to view the slices and dashboards made from data sources that they have access to. Currently Gamma users are not able to alter or add data sources. We assume that they are mostly content consumers, though they can create slices and dashboards.|The sql_lab role grants access to SQL Lab. Note that while Admin users have access to all databases by default, both Alpha and Gamma users need to be given access on a per database basis.||
| can read on SavedQuery |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can write on SavedQuery |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can read on CssTemplate |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on CssTemplate |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on ReportSchedule |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on ReportSchedule |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on Chart |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on Chart |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on Annotation |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on Annotation |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on Dataset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on Log |:heavy_check_mark:|O|O|O|
| can write on Log |:heavy_check_mark:|O|O|O|
| can read on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on Database |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can write on Database |:heavy_check_mark:|O|O|O|
| can read on Query |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can this form get on ResetPasswordView |:heavy_check_mark:|O|O|O|
| can this form post on ResetPasswordView |:heavy_check_mark:|O|O|O|
| can this form get on ResetMyPasswordView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can this form post on ResetMyPasswordView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can this form get on UserInfoEditView |:heavy_check_mark:|O|O|O|
| can this form post on UserInfoEditView |:heavy_check_mark:|O|O|O|
| can show on UserDBModelView |:heavy_check_mark:|O|O|O|
| can edit on UserDBModelView |:heavy_check_mark:|O|O|O|
| can delete on UserDBModelView |:heavy_check_mark:|O|O|O|
| can add on UserDBModelView |:heavy_check_mark:|O|O|O|
| can list on UserDBModelView |:heavy_check_mark:|O|O|O|
| can userinfo on UserDBModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| resetmypassword on UserDBModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| resetpasswords on UserDBModelView |:heavy_check_mark:|O|O|O|
| userinfoedit on UserDBModelView |:heavy_check_mark:|O|O|O|
| can show on RoleModelView |:heavy_check_mark:|O|O|O|
| can edit on RoleModelView |:heavy_check_mark:|O|O|O|
| can delete on RoleModelView |:heavy_check_mark:|O|O|O|
| can add on RoleModelView |:heavy_check_mark:|O|O|O|
| can list on RoleModelView |:heavy_check_mark:|O|O|O|
| copyrole on RoleModelView |:heavy_check_mark:|O|O|O|
| can get on OpenApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can show on SwaggerView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can get on MenuApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can list on AsyncEventsRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can invalidate on CacheRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can csv upload on Database |:heavy_check_mark:|O|O|O|
| can excel upload on Database |:heavy_check_mark:|O|O|O|
| can query form data on Api |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can query on Api |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can time range on Api |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can external metadata on Datasource |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can save on Datasource |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can get on Datasource |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can my queries on SqlLab |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can log on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can import dashboards on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can schemas on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can sqllab history on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can publish on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can csv on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can slice on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can sync druid source on Superset |:heavy_check_mark:|O|O|O|
| can explore on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can approve on Superset |:heavy_check_mark:|O|O|O|
| can explore json on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can fetch datasource metadata on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can csrf token on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can sqllab on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can select star on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can warm up cache on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can sqllab table viz on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can available domains on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can request access on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can dashboard on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can post on TableSchemaView |:heavy_check_mark:|O|O|:heavy_check_mark:|
| can expanded on TableSchemaView |:heavy_check_mark:|O|O|:heavy_check_mark:|
| can delete on TableSchemaView |:heavy_check_mark:|O|O|:heavy_check_mark:|
| can get on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can post on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can delete query on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can migrate query on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can activate on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can delete on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can put on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can read on SecurityRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| menu access on Security |:heavy_check_mark:|O|O|O|
| menu access on List Users |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on List Roles |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Action Log |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Manage |:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Annotation Layers |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on CSS Templates |:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Import Dashboards |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Data |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Databases |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Datasets |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Charts |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Dashboards |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on SQL Lab |:heavy_check_mark:|O|O|:heavy_check_mark:|
| menu access on SQL Editor |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| menu access on Saved Queries |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| menu access on Query Search |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| all datasource access on all_datasource_access |:heavy_check_mark:|:heavy_check_mark:|O|O|
| all database access on all_database_access |:heavy_check_mark:|:heavy_check_mark:|O|O|
| all query access on all_query_access |:heavy_check_mark:|O|O|O|
| can write on DynamicPlugin |:heavy_check_mark:|O|O|O|
| can edit on DynamicPlugin |:heavy_check_mark:|O|O|O|
| can list on DynamicPlugin |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can show on DynamicPlugin |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can download on DynamicPlugin |:heavy_check_mark:|O|O|O|
| can add on DynamicPlugin |:heavy_check_mark:|O|O|O|
| can delete on DynamicPlugin |:heavy_check_mark:|O|O|O|
| can external metadata by name on Datasource |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can get value on KV |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can store on KV |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can tagged objects on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can suggestions on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can get on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can post on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can delete on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can edit on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can list on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can show on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can add on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can delete on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| muldelete on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can edit on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can list on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can show on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can add on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can delete on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| muldelete on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can edit on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can list on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can show on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can add on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can delete on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can list on AlertLogModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can show on AlertLogModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can list on AlertObservationModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can show on AlertObservationModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Row Level Security |:heavy_check_mark:|O|O|O|
| menu access on Access requests |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Home |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Plugins |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Dashboard Email Schedules |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Chart Emails |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Alerts |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Alerts & Report |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| menu access on Scan New Datasources |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can share dashboard on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can share chart on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can this form get on ColumnarToDatabaseView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can this form post on ColumnarToDatabaseView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can export on Chart |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on DashboardFilterStateRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on DashboardFilterStateRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on DashboardPermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on DashboardPermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can delete embedded on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can set embedded on Dashboard |:heavy_check_mark:|O|O|O|
| can export on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can get embedded on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can export on Database |:heavy_check_mark:|O|O|O|
| can export on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can write on ExploreFormDataRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on ExploreFormDataRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on ExplorePermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on ExplorePermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can export on ImportExportRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can import on ImportExportRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can export on SavedQuery |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
| can dashboard permalink on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can grant guest token on SecurityRestApi |:heavy_check_mark:|O|O|O|
| can read on AdvancedDataType |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on EmbeddedDashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can duplicate on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on Explore |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can samples on Datasource |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on AvailableDomains |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can get or create dataset on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can get column values on Datasource |:heavy_check_mark:|:heavy_check_mark:|O|O|
| can export csv on SQLLab |:heavy_check_mark:|O|O|:heavy_check_mark:|
| can get results on SQLLab |:heavy_check_mark:|O|O|:heavy_check_mark:|
| can execute sql query on SQLLab |:heavy_check_mark:|O|O|:heavy_check_mark:|
| can recent activity on Log |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| |Admin|Alpha|Gamma|Public|SQL_LAB|
|--------------------------------------------------|---|---|---|---|---|
| Permission/role description |Admins have all possible rights, including granting or revoking rights from other users and altering other people's slices and dashboards.|Alpha users have access to all data sources, but they cannot grant or revoke access from other users. They are also limited to altering the objects that they own. Alpha users can add and alter data sources.|Gamma users have limited access. They can only consume data coming from data sources they have been given access to through another complementary role. They only have access to view the slices and dashboards made from data sources that they have access to. Currently Gamma users are not able to alter or add data sources. We assume that they are mostly content consumers, though they can create slices and dashboards.|Public is the most restrictive built-in role, designed for anonymous/unauthenticated users viewing public dashboards. It provides minimal read-only access for dashboard viewing with interactive filters. Use `PUBLIC_ROLE_LIKE = "Public"` to apply these permissions to anonymous users.|The sql_lab role grants access to SQL Lab. Note that while Admin users have access to all databases by default, both Alpha and Gamma users need to be given access on a per database basis.||
| can read on SavedQuery |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can write on SavedQuery |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can read on CssTemplate |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on CssTemplate |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on ReportSchedule |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can write on ReportSchedule |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on Chart |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on Chart |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on Annotation |:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|O|
| can write on Annotation |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can read on AnnotationLayerRestApi |:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|O|
| can read on Dataset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can write on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can read on Log |:heavy_check_mark:|O|O|O|O|
| can write on Log |:heavy_check_mark:|O|O|O|O|
| can read on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on Database |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can write on Database |:heavy_check_mark:|O|O|O|O|
| can read on Query |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can this form get on ResetPasswordView |:heavy_check_mark:|O|O|O|O|
| can this form post on ResetPasswordView |:heavy_check_mark:|O|O|O|O|
| can this form get on ResetMyPasswordView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can this form post on ResetMyPasswordView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can this form get on UserInfoEditView |:heavy_check_mark:|O|O|O|O|
| can this form post on UserInfoEditView |:heavy_check_mark:|O|O|O|O|
| can show on UserDBModelView |:heavy_check_mark:|O|O|O|O|
| can edit on UserDBModelView |:heavy_check_mark:|O|O|O|O|
| can delete on UserDBModelView |:heavy_check_mark:|O|O|O|O|
| can add on UserDBModelView |:heavy_check_mark:|O|O|O|O|
| can list on UserDBModelView |:heavy_check_mark:|O|O|O|O|
| can userinfo on UserDBModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| resetmypassword on UserDBModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| resetpasswords on UserDBModelView |:heavy_check_mark:|O|O|O|O|
| userinfoedit on UserDBModelView |:heavy_check_mark:|O|O|O|O|
| can show on RoleModelView |:heavy_check_mark:|O|O|O|O|
| can edit on RoleModelView |:heavy_check_mark:|O|O|O|O|
| can delete on RoleModelView |:heavy_check_mark:|O|O|O|O|
| can add on RoleModelView |:heavy_check_mark:|O|O|O|O|
| can list on RoleModelView |:heavy_check_mark:|O|O|O|O|
| copyrole on RoleModelView |:heavy_check_mark:|O|O|O|O|
| can get on OpenApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can show on SwaggerView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can get on MenuApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can list on AsyncEventsRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can invalidate on CacheRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can csv upload on Database |:heavy_check_mark:|O|O|O|O|
| can excel upload on Database |:heavy_check_mark:|O|O|O|O|
| can query form data on Api |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can query on Api |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can time range on Api |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can external metadata on Datasource |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can save on Datasource |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can get on Datasource |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can my queries on SqlLab |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can log on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can import dashboards on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can schemas on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can sqllab history on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can publish on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can csv on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can slice on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can sync druid source on Superset |:heavy_check_mark:|O|O|O|O|
| can explore on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can approve on Superset |:heavy_check_mark:|O|O|O|O|
| can explore json on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can fetch datasource metadata on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can csrf token on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can sqllab on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can select star on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can warm up cache on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can sqllab table viz on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can available domains on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can request access on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can dashboard on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can post on TableSchemaView |:heavy_check_mark:|O|O|O|:heavy_check_mark:|
| can expanded on TableSchemaView |:heavy_check_mark:|O|O|O|:heavy_check_mark:|
| can delete on TableSchemaView |:heavy_check_mark:|O|O|O|:heavy_check_mark:|
| can get on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can post on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can delete query on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can migrate query on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can activate on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can delete on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can put on TabStateView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can read on SecurityRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| menu access on Security |:heavy_check_mark:|O|O|O|O|
| menu access on List Users |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on List Roles |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Action Log |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Manage |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| menu access on Annotation Layers |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on CSS Templates |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| menu access on Import Dashboards |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Data |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Databases |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Datasets |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Charts |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Dashboards |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on SQL Lab |:heavy_check_mark:|O|O|O|:heavy_check_mark:|
| menu access on SQL Editor |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| menu access on Saved Queries |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| menu access on Query Search |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| all datasource access on all_datasource_access |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| all database access on all_database_access |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| all query access on all_query_access |:heavy_check_mark:|O|O|O|O|
| can write on DynamicPlugin |:heavy_check_mark:|O|O|O|O|
| can edit on DynamicPlugin |:heavy_check_mark:|O|O|O|O|
| can list on DynamicPlugin |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can show on DynamicPlugin |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can download on DynamicPlugin |:heavy_check_mark:|O|O|O|O|
| can add on DynamicPlugin |:heavy_check_mark:|O|O|O|O|
| can delete on DynamicPlugin |:heavy_check_mark:|O|O|O|O|
| can external metadata by name on Datasource |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can get value on KV |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can store on KV |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can tagged objects on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can suggestions on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can get on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can post on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can delete on TagView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can edit on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can list on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can show on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can add on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can delete on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| muldelete on DashboardEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can edit on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can list on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can show on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can add on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can delete on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| muldelete on SliceEmailScheduleView |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can edit on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can list on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can show on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can add on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can delete on AlertModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can list on AlertLogModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can show on AlertLogModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can list on AlertObservationModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can show on AlertObservationModelView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Row Level Security |:heavy_check_mark:|O|O|O|O|
| menu access on Access requests |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Home |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Plugins |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Dashboard Email Schedules |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Chart Emails |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Alerts |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Alerts & Report |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| menu access on Scan New Datasources |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can share dashboard on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can share chart on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can this form get on ColumnarToDatabaseView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can this form post on ColumnarToDatabaseView |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can export on Chart |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can write on DashboardFilterStateRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can read on DashboardFilterStateRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can write on DashboardPermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on DashboardPermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can delete embedded on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can set embedded on Dashboard |:heavy_check_mark:|O|O|O|O|
| can export on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can get embedded on Dashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can export on Database |:heavy_check_mark:|O|O|O|O|
| can export on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can write on ExploreFormDataRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on ExploreFormDataRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can write on ExplorePermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on ExplorePermalinkRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can export on ImportExportRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can import on ImportExportRestApi |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can export on SavedQuery |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|:heavy_check_mark:|
| can dashboard permalink on Superset |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can grant guest token on SecurityRestApi |:heavy_check_mark:|O|O|O|O|
| can read on AdvancedDataType |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can read on EmbeddedDashboard |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|
| can duplicate on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can read on Explore |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can samples on Datasource |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can read on AvailableDomains |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|
| can get or create dataset on Dataset |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can get column values on Datasource |:heavy_check_mark:|:heavy_check_mark:|O|O|O|
| can export csv on SQLLab |:heavy_check_mark:|O|O|O|:heavy_check_mark:|
| can get results on SQLLab |:heavy_check_mark:|O|O|O|:heavy_check_mark:|
| can execute sql query on SQLLab |:heavy_check_mark:|O|O|O|:heavy_check_mark:|
| can recent activity on Log |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|O|O|

View File

@@ -23,8 +23,288 @@ This file documents any backwards-incompatible changes in Superset and
assists people when migrating to a new version.
## Next
- [33055](https://github.com/apache/superset/pull/33055): Upgrades Flask-AppBuilder to 5.0.0. The AUTH_OID authentication type has been deprecated and is no longer available as an option in Flask-AppBuilder. OpenID (OID) is considered a deprecated authentication protocol - if you are using AUTH_OID, you will need to migrate to an alternative authentication method such as OAuth, LDAP, or database authentication before upgrading.
### Granular Export Controls
A new feature flag `GRANULAR_EXPORT_CONTROLS` introduces three fine-grained permissions that replace the legacy `can_csv` permission:
| Permission | Controls |
|---|---|
| `can_export_data` | CSV, Excel, JSON exports |
| `can_export_image` | Screenshot/PDF exports |
| `can_copy_clipboard` | Copy-to-clipboard operations |
When the feature flag is enabled, these permissions are enforced on both the frontend (disabled buttons with tooltips) and backend (403 responses from API endpoints). When disabled, legacy `can_csv` behavior is preserved.
**Migration behavior:** All three new permissions are granted to every role that currently has `can_csv`, preserving existing access. Admins can then selectively revoke individual export permissions from specific roles as needed.
### Deck.gl MapBox viewport and opacity controls are functional
The Deck.gl MapBox chart's **Opacity**, **Default longitude**, **Default latitude**, and **Zoom** controls were previously non-functional — changing them had no effect on the rendered map. These controls are now wired up correctly.
**Behavior change for existing charts:** Previously, the viewport controls had hard-coded default values (`-122.405293`, `37.772123`, zoom `11` — San Francisco) that were stored in each chart's `form_data` but never applied. The map always used `fitBounds` to center on the data. With this fix, those stored values are now respected, which means existing MapBox charts may open centered on the old default coordinates instead of fitting to data bounds.
**To restore fit-to-data behavior:** Open the chart in Explore, clear the **Default longitude**, **Default latitude**, and **Zoom** fields in the Viewport section, and re-save the chart.
### ClickHouse minimum driver version bump
The minimum required version of `clickhouse-connect` has been raised to `>=0.13.0`. If you are using the ClickHouse connector, please upgrade your `clickhouse-connect` package. The `_mutate_label` workaround that appended hash suffixes to column aliases has also been removed, as it is no longer needed with modern versions of the driver.
### MCP Tool Observability
MCP (Model Context Protocol) tools now include enhanced observability instrumentation for monitoring and debugging:
**Two-layer instrumentation:**
1. **Middleware layer** (`LoggingMiddleware`): Automatically logs all MCP tool calls with `duration_ms` and `success` status in the audit log (Action Log UI, logs table)
2. **Sub-operation tracking**: All 19 MCP tools include granular `event_logger.log_context()` blocks for tracking individual operations like validation, database writes, and query execution
**Action naming convention:**
- Tool-level logs: `mcp_tool_call` (via middleware)
- Sub-operation logs: `mcp.{tool_name}.{operation}` (e.g., `mcp.generate_chart.validation`, `mcp.execute_sql.query_execution`)
**Querying MCP logs:**
```sql
-- Top slowest MCP operations
SELECT action, COUNT(*) as calls, AVG(duration_ms) as avg_ms
FROM logs
WHERE action LIKE 'mcp.%'
GROUP BY action
ORDER BY avg_ms DESC
LIMIT 20;
-- MCP tool success rate
SELECT
json_extract(curated_payload, '$.tool') as tool,
COUNT(*) as total_calls,
SUM(CASE WHEN json_extract(curated_payload, '$.success') = 'true' THEN 1 ELSE 0 END) as successful,
ROUND(100.0 * SUM(CASE WHEN json_extract(curated_payload, '$.success') = 'true' THEN 1 ELSE 0 END) / COUNT(*), 2) as success_rate
FROM logs
WHERE action = 'mcp_tool_call'
GROUP BY tool
ORDER BY total_calls DESC;
```
**Security note:** Sensitive parameters (passwords, API keys, tokens) are automatically redacted in logs as `[REDACTED]`.
### Distributed Coordination Backend
A new `DISTRIBUTED_COORDINATION_CONFIG` configuration provides a unified Redis-based backend for real-time coordination features in Superset. This backend enables:
- **Pub/sub messaging** for real-time event notifications between workers
- **Atomic distributed locking** using Redis SET NX EX (more performant than database-backed locks)
- **Event-based coordination** for background task management
The distributed coordination is used by the Global Task Framework (GTF) for abort notifications and task completion signaling, and will eventually replace `GLOBAL_ASYNC_QUERIES_CACHE_BACKEND` as the standard signaling backend. Configuring this is recommended for Redis enabled production deployments.
Example configuration in `superset_config.py`:
```python
DISTRIBUTED_COORDINATION_CONFIG = {
"CACHE_TYPE": "RedisCache",
"CACHE_KEY_PREFIX": "signal_",
"CACHE_REDIS_URL": "redis://localhost:6379/1",
"CACHE_DEFAULT_TIMEOUT": 300,
}
```
See `superset/config.py` for complete configuration options.
### WebSocket config for GAQ with Docker
[35896](https://github.com/apache/superset/pull/35896) and [37624](https://github.com/apache/superset/pull/37624) updated documentation on how to run and configure Superset with Docker. Specifically for the WebSocket configuration, a new `docker/superset-websocket/config.example.json` was added to the repo, so that users could copy it to create a `docker/superset-websocket/config.json` file. The existing `docker/superset-websocket/config.json` was removed and git-ignored, so if you're using GAQ / WebSocket make sure to:
- Stash/backup your existing `config.json` file, to re-apply it after (will get git-ignored going forward)
- Update the `volumes` configuration for the `superset-websocket` service in your `docker-compose.override.yml` file, to include the `docker/superset-websocket/config.json` file. For example:
``` yaml
services:
superset-websocket:
volumes:
- ./superset-websocket:/home/superset-websocket
- /home/superset-websocket/node_modules
- /home/superset-websocket/dist
- ./docker/superset-websocket/config.json:/home/superset-websocket/config.json:ro
```
### Example Data Loading Improvements
#### New Directory Structure
Examples are now organized by name with data and configs co-located:
```
superset/examples/
├── _shared/ # Shared database & metadata configs
├── birth_names/ # Each example is self-contained
│ ├── data.parquet # Dataset (Parquet format)
│ ├── dataset.yaml # Dataset metadata
│ ├── dashboard.yaml # Dashboard config (optional)
│ └── charts/ # Chart configs (optional)
└── ...
```
#### Simplified Parquet-based Loading
- Auto-discovery: create `superset/examples/my_dataset/data.parquet` to add a new example
- Parquet is an Apache project format: compressed (~27% smaller), self-describing schema
- YAML configs define datasets, charts, and dashboards declaratively
- Removed Python-based data generation from individual example files
#### Test Data Reorganization
- Moved `big_data.py` to `superset/cli/test_loaders.py` - better reflects its purpose as a test utility
- Fixed inverted logic for `--load-test-data` flag (now correctly includes .test.yaml files when flag is set)
- Clarified CLI flags:
- `--force` / `-f`: Force reload even if tables exist
- `--only-metadata` / `-m`: Create table metadata without loading data
- `--load-test-data` / `-t`: Include test dashboards and .test.yaml configs
- `--load-big-data` / `-b`: Generate synthetic stress-test data
#### Bug Fixes
- Fixed numpy array serialization for PostgreSQL (converts complex types to JSON strings)
- Fixed KeyError for `allow_csv_upload` field in database configs (now optional with default)
- Fixed test data loading logic that was incorrectly filtering files
### MCP Service
The MCP (Model Context Protocol) service enables AI assistants and automation tools to interact programmatically with Superset.
#### New Features
- MCP service infrastructure with FastMCP framework
- Tools for dashboards, charts, datasets, SQL Lab, and instance metadata
- Optional dependency: install with `pip install apache-superset[fastmcp]`
- Runs as separate process from Superset web server
- JWT-based authentication for production deployments
#### New Configuration Options
**Development** (single-user, local testing):
```python
# superset_config.py
MCP_DEV_USERNAME = "admin" # User for MCP authentication
MCP_SERVICE_HOST = "localhost"
MCP_SERVICE_PORT = 5008
```
**Production** (JWT-based, multi-user):
```python
# superset_config.py
MCP_AUTH_ENABLED = True
MCP_JWT_ISSUER = "https://your-auth-provider.com"
MCP_JWT_AUDIENCE = "superset-mcp"
MCP_JWT_ALGORITHM = "RS256" # or "HS256" for shared secrets
# Option 1: Use JWKS endpoint (recommended for RS256)
MCP_JWKS_URI = "https://auth.example.com/.well-known/jwks.json"
# Option 2: Use static public key (RS256)
MCP_JWT_PUBLIC_KEY = "-----BEGIN PUBLIC KEY-----..."
# Option 3: Use shared secret (HS256)
MCP_JWT_ALGORITHM = "HS256"
MCP_JWT_SECRET = "your-shared-secret-key"
# Optional overrides
MCP_SERVICE_HOST = "0.0.0.0"
MCP_SERVICE_PORT = 5008
MCP_SESSION_CONFIG = {
"SESSION_COOKIE_SECURE": True,
"SESSION_COOKIE_HTTPONLY": True,
"SESSION_COOKIE_SAMESITE": "Strict",
}
```
#### Running the MCP Service
```bash
# Development
superset mcp run --port 5008 --debug
# Production
superset mcp run --port 5008
# With factory config
superset mcp run --port 5008 --use-factory-config
```
#### Deployment Considerations
The MCP service runs as a **separate process** from the Superset web server.
**Important**:
- Requires same Python environment and configuration as Superset
- Shares database connections with main Superset app
- Can be scaled independently from web server
- Requires `fastmcp` package (optional dependency)
**Installation**:
```bash
# Install with MCP support
pip install apache-superset[fastmcp]
# Or add to requirements.txt
apache-superset[fastmcp]>=X.Y.Z
```
**Process Management**:
Use systemd, supervisord, or Kubernetes to manage the MCP service process.
See `superset/mcp_service/PRODUCTION.md` for deployment guides.
**Security**:
- Development: Uses `MCP_DEV_USERNAME` for single-user access
- Production: **MUST** configure JWT authentication
- See `superset/mcp_service/SECURITY.md` for details
#### Documentation
- Architecture: `superset/mcp_service/ARCHITECTURE.md`
- Security: `superset/mcp_service/SECURITY.md`
- Production: `superset/mcp_service/PRODUCTION.md`
- Developer Guide: `superset/mcp_service/CLAUDE.md`
- Quick Start: `superset/mcp_service/README.md`
---
- [35621](https://github.com/apache/superset/pull/35621): The default hash algorithm has changed from MD5 to SHA-256 for improved security and FedRAMP compliance. This affects cache keys for thumbnails, dashboard digests, chart digests, and filter option names. Existing cached data will be invalidated upon upgrade. To opt out of this change and maintain backward compatibility, set `HASH_ALGORITHM = "md5"` in your `superset_config.py`.
- [35062](https://github.com/apache/superset/pull/35062): Changed the function signature of `setupExtensions` to `setupCodeOverrides` with options as arguments.
### Breaking Changes
- [37370](https://github.com/apache/superset/pull/37370): The `APP_NAME` configuration variable no longer controls the browser window/tab title or other frontend branding. Application names should now be configured using the theme system with the `brandAppName` token. The `APP_NAME` config is still used for backend contexts (MCP service, logs, etc.) and serves as a fallback if `brandAppName` is not set.
- **Migration:**
```python
# Before (Superset 5.x)
APP_NAME = "My Custom App"
# After (Superset 6.x) - Option 1: Use theme system (recommended)
THEME_DEFAULT = {
"token": {
"brandAppName": "My Custom App", # Window titles
"brandLogoAlt": "My Custom App", # Logo alt text
"brandLogoUrl": "/static/assets/images/custom_logo.png"
}
}
# After (Superset 6.x) - Option 2: Temporary fallback
# Keep APP_NAME for now (will be used as fallback for brandAppName)
APP_NAME = "My Custom App"
# But you should migrate to THEME_DEFAULT.token.brandAppName
```
- **Note:** For dark mode, set the same tokens in `THEME_DARK` configuration.
- [36317](https://github.com/apache/superset/pull/36317): The `CUSTOM_FONT_URLS` configuration option has been removed. Use the new per-theme `fontUrls` token in `THEME_DEFAULT` or database-managed themes instead.
- **Before:**
```python
CUSTOM_FONT_URLS = [
"https://fonts.example.com/myfont.css",
]
```
- **After:**
```python
THEME_DEFAULT = {
"token": {
"fontUrls": [
"https://fonts.example.com/myfont.css",
],
# ... other tokens
}
}
```
## 6.0.0
- [33055](https://github.com/apache/superset/pull/33055): Upgrades Flask-AppBuilder to 5.0.0. The AUTH_OID authentication type has been deprecated and is no longer available as an option in Flask-AppBuilder. OpenID (OID) is considered a deprecated authentication protocol - if you are using AUTH_OID, you will need to migrate to an alternative authentication method such as OAuth, LDAP, or database authentication before upgrading.
- [34871](https://github.com/apache/superset/pull/34871): Fixed Jest test hanging issue from Ant Design v5 upgrade. MessageChannel is now mocked in test environment to prevent rc-overflow from causing Jest to hang. Test environment only - no production impact.
- [34782](https://github.com/apache/superset/pull/34782): Dataset exports now include the dataset ID in their file name (similar to charts and dashboards). If managing assets as code, make sure to rename existing dataset YAMLs to include the ID (and avoid duplicated files).
- [34536](https://github.com/apache/superset/pull/34536): The `ENVIRONMENT_TAG_CONFIG` color values have changed to support only Ant Design semantic colors. Update your `superset_config.py`:
@@ -42,13 +322,13 @@ Note: Pillow is now a required dependency (previously optional) to support image
There's a migration added that can potentially affect a significant number of existing charts.
- [32317](https://github.com/apache/superset/pull/32317) The horizontal filter bar feature is now out of testing/beta development and its feature flag `HORIZONTAL_FILTER_BAR` has been removed.
- [31590](https://github.com/apache/superset/pull/31590) Marks the begining of intricate work around supporting dynamic Theming, and breaks support for [THEME_OVERRIDES](https://github.com/apache/superset/blob/732de4ac7fae88e29b7f123b6cbb2d7cd411b0e4/superset/config.py#L671) in favor of a new theming system based on AntD V5. Likely this will be in disrepair until settling over the 5.x lifecycle.
- [32432](https://github.com/apache/superset/pull/31260) Moves the List Roles FAB view to the frontend and requires `FAB_ADD_SECURITY_API` to be enabled in the configuration and `superset init` to be executed.
- [32432](https://github.com/apache/superset/pull/32432) Moves the List Roles FAB view to the frontend and requires `FAB_ADD_SECURITY_API` to be enabled in the configuration and `superset init` to be executed.
- [34319](https://github.com/apache/superset/pull/34319) Drill to Detail and Drill By is now supported in Embedded mode, and also with the `DASHBOARD_RBAC` FF. If you don't want to expose these features in Embedded / `DASHBOARD_RBAC`, make sure the roles used for Embedded / `DASHBOARD_RBAC`don't have the required permissions to perform D2D actions.
## 5.0.0
- [31976](https://github.com/apache/superset/pull/31976) Removed the `DISABLE_LEGACY_DATASOURCE_EDITOR` feature flag. The previous value of the feature flag was `True` and now the feature is permanently removed.
- [31959](https://github.com/apache/superset/pull/32000) Removes CSV_UPLOAD_MAX_SIZE config, use your web server to control file upload size.
- [32000](https://github.com/apache/superset/pull/32000) Removes CSV_UPLOAD_MAX_SIZE config, use your web server to control file upload size.
- [31959](https://github.com/apache/superset/pull/31959) Removes the following endpoints from data uploads: `/api/v1/database/<id>/<file type>_upload` and `/api/v1/database/<file type>_metadata`, in favour of new one (Details on the PR). And simplifies permissions.
- [31844](https://github.com/apache/superset/pull/31844) The `ALERT_REPORTS_EXECUTE_AS` and `THUMBNAILS_EXECUTE_AS` config parameters have been renamed to `ALERT_REPORTS_EXECUTORS` and `THUMBNAILS_EXECUTORS` respectively. A new config flag `CACHE_WARMUP_EXECUTORS` has also been introduced to be able to control which user is used to execute cache warmup tasks. Finally, the config flag `THUMBNAILS_SELENIUM_USER` has been removed. To use a fixed executor for async tasks, use the new `FixedExecutor` class. See the config and docs for more info on setting up different executor profiles.
- [31894](https://github.com/apache/superset/pull/31894) Domain sharding is deprecated in favor of HTTP2. The `SUPERSET_WEBSERVER_DOMAINS` configuration will be removed in the next major version (6.0)

View File

@@ -28,6 +28,7 @@ x-superset-image: &superset-image apachesuperset.docker.scarf.sh/apache/superset
x-superset-volumes:
&superset-volumes # /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
- ./docker:/app/docker
- ./superset-core:/app/superset-core
- superset_home:/app/superset_home
services:
@@ -44,7 +45,7 @@ services:
required: true
- path: docker/.env-local # optional override
required: false
image: postgres:16
image: postgres:17
container_name: superset_db
restart: unless-stopped
volumes:

View File

@@ -77,7 +77,6 @@ x-common-build: &common-build
INCLUDE_CHROMIUM: ${INCLUDE_CHROMIUM:-false}
INCLUDE_FIREFOX: ${INCLUDE_FIREFOX:-false}
BUILD_TRANSLATIONS: ${BUILD_TRANSLATIONS:-false}
LOAD_EXAMPLES_DUCKDB: ${LOAD_EXAMPLES_DUCKDB:-true}
services:
db-light:
@@ -86,7 +85,7 @@ services:
required: true
- path: docker/.env-local # optional override
required: false
image: postgres:16
image: postgres:17
restart: unless-stopped
volumes:
- db_home_light:/var/lib/postgresql/data
@@ -116,7 +115,10 @@ services:
DATABASE_HOST: db-light
DATABASE_DB: superset_light
POSTGRES_DB: superset_light
SUPERSET__SQLALCHEMY_EXAMPLES_URI: "duckdb:////app/data/examples.duckdb"
EXAMPLES_HOST: db-light
EXAMPLES_DB: superset_light
EXAMPLES_USER: superset
EXAMPLES_PASSWORD: superset
SUPERSET_CONFIG_PATH: /app/docker/pythonpath_dev/superset_config_docker_light.py
GITHUB_HEAD_REF: ${GITHUB_HEAD_REF:-}
GITHUB_SHA: ${GITHUB_SHA:-}
@@ -139,7 +141,10 @@ services:
DATABASE_HOST: db-light
DATABASE_DB: superset_light
POSTGRES_DB: superset_light
SUPERSET__SQLALCHEMY_EXAMPLES_URI: "duckdb:////app/data/examples.duckdb"
EXAMPLES_HOST: db-light
EXAMPLES_DB: superset_light
EXAMPLES_USER: superset
EXAMPLES_PASSWORD: superset
SUPERSET_CONFIG_PATH: /app/docker/pythonpath_dev/superset_config_docker_light.py
healthcheck:
disable: true
@@ -160,10 +165,11 @@ services:
BUILD_SUPERSET_FRONTEND_IN_DOCKER: true
NPM_RUN_PRUNE: false
SCARF_ANALYTICS: "${SCARF_ANALYTICS:-}"
DISABLE_TS_CHECKER: "${DISABLE_TS_CHECKER:-true}"
# configuring the dev-server to use the host.docker.internal to connect to the backend
superset: "http://superset-light:8088"
# Webpack dev server configuration
WEBPACK_DEVSERVER_HOST: "${WEBPACK_DEVSERVER_HOST:-127.0.0.1}"
# Webpack dev server must bind to 0.0.0.0 to be accessible from outside the container
WEBPACK_DEVSERVER_HOST: "${WEBPACK_DEVSERVER_HOST:-0.0.0.0}"
WEBPACK_DEVSERVER_PORT: "${WEBPACK_DEVSERVER_PORT:-9000}"
ports:
- "${NODE_PORT:-9001}:9000" # Parameterized port, accessible on all interfaces
@@ -196,7 +202,6 @@ services:
DATABASE_DB: test
POSTGRES_DB: test
SUPERSET__SQLALCHEMY_DATABASE_URI: postgresql+psycopg2://superset:superset@db-light:5432/test
SUPERSET__SQLALCHEMY_EXAMPLES_URI: "duckdb:////app/data/examples.duckdb"
SUPERSET_CONFIG: superset_test_config_light
PYTHONPATH: /app/pythonpath:/app/docker/pythonpath_dev:/app

View File

@@ -49,7 +49,7 @@ services:
required: true
- path: docker/.env-local # optional override
required: false
image: postgres:16
image: postgres:17
container_name: superset_db
restart: unless-stopped
volumes:

View File

@@ -29,9 +29,11 @@ x-superset-volumes: &superset-volumes
# /app/pythonpath_docker will be appended to the PYTHONPATH in the final container
- ./docker:/app/docker
- ./superset:/app/superset
- ./superset-core:/app/superset-core
- ./superset-frontend:/app/superset-frontend
- superset_home:/app/superset_home
- ./tests:/app/tests
- superset_data:/app/data
x-common-build: &common-build
context: .
target: ${SUPERSET_BUILD_TARGET:-dev} # can use `dev` (default) or `lean`
@@ -42,7 +44,6 @@ x-common-build: &common-build
INCLUDE_CHROMIUM: ${INCLUDE_CHROMIUM:-false}
INCLUDE_FIREFOX: ${INCLUDE_FIREFOX:-false}
BUILD_TRANSLATIONS: ${BUILD_TRANSLATIONS:-false}
LOAD_EXAMPLES_DUCKDB: ${LOAD_EXAMPLES_DUCKDB:-true}
services:
nginx:
@@ -52,10 +53,9 @@ services:
- path: docker/.env-local # optional override
required: false
image: nginx:latest
container_name: superset_nginx
restart: unless-stopped
ports:
- "80:80"
- "${NGINX_PORT:-80}:80"
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
@@ -64,10 +64,9 @@ services:
redis:
image: redis:7
container_name: superset_cache
restart: unless-stopped
ports:
- "127.0.0.1:6379:6379"
- "127.0.0.1:${REDIS_PORT:-6379}:6379"
volumes:
- redis:/data
@@ -77,11 +76,10 @@ services:
required: true
- path: docker/.env-local # optional override
required: false
image: postgres:16
container_name: superset_db
image: postgres:17
restart: unless-stopped
ports:
- "127.0.0.1:5432:5432"
- "127.0.0.1:${DATABASE_PORT:-5432}:5432"
volumes:
- db_home:/var/lib/postgresql/data
- ./docker/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
@@ -94,13 +92,12 @@ services:
required: false
build:
<<: *common-build
container_name: superset_app
command: ["/app/docker/docker-bootstrap.sh", "app"]
restart: unless-stopped
ports:
- 8088:8088
- ${SUPERSET_PORT:-8088}:8088
# When in cypress-mode ->
- 8081:8081
- ${CYPRESS_PORT:-8081}:8081
extra_hosts:
- "host.docker.internal:host-gateway"
user: *superset-user
@@ -108,14 +105,11 @@ services:
superset-init:
condition: service_completed_successfully
volumes: *superset-volumes
environment:
SUPERSET__SQLALCHEMY_EXAMPLES_URI: "duckdb:////app/data/examples.duckdb"
superset-websocket:
container_name: superset_websocket
build: ./superset-websocket
ports:
- 8080:8080
- ${WEBSOCKET_PORT:-8080}:8080
extra_hosts:
- "host.docker.internal:host-gateway"
depends_on:
@@ -135,9 +129,9 @@ services:
- /home/superset-websocket/node_modules
- /home/superset-websocket/dist
# Mounting a config file that contains a dummy secret required to boot up.
# do not use this docker compose in production
- ./docker/superset-websocket/config.json:/home/superset-websocket/config.json
# Mount config file. Create your own docker/superset-websocket/config.json
# for custom settings, then point to it here. Do not use this example in production.
- ./docker/superset-websocket/config.example.json:/home/superset-websocket/config.json:ro
environment:
- PORT=8080
- REDIS_HOST=redis
@@ -147,7 +141,6 @@ services:
superset-init:
build:
<<: *common-build
container_name: superset_init
command: ["/app/docker/docker-init.sh"]
env_file:
- path: docker/.env # default
@@ -161,8 +154,6 @@ services:
condition: service_started
user: *superset-user
volumes: *superset-volumes
environment:
SUPERSET__SQLALCHEMY_EXAMPLES_URI: "duckdb:////app/data/examples.duckdb"
healthcheck:
disable: true
@@ -184,9 +175,10 @@ services:
SCARF_ANALYTICS: "${SCARF_ANALYTICS:-}"
# configuring the dev-server to use the host.docker.internal to connect to the backend
superset: "http://superset:8088"
# Webpack dev server must bind to 0.0.0.0 to be accessible from outside the container
WEBPACK_DEVSERVER_HOST: "0.0.0.0"
ports:
- "127.0.0.1:9000:9000" # exposing the dynamic webpack dev server
container_name: superset_node
- "127.0.0.1:${NODE_PORT:-9000}:9000" # exposing the dynamic webpack dev server
command: ["/app/docker/docker-frontend.sh"]
env_file:
- path: docker/.env # default
@@ -198,7 +190,6 @@ services:
superset-worker:
build:
<<: *common-build
container_name: superset_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file:
- path: docker/.env # default
@@ -224,7 +215,6 @@ services:
superset-worker-beat:
build:
<<: *common-build
container_name: superset_worker_beat
command: ["/app/docker/docker-bootstrap.sh", "beat"]
env_file:
- path: docker/.env # default
@@ -242,7 +232,6 @@ services:
superset-tests-worker:
build:
<<: *common-build
container_name: superset_tests_worker
command: ["/app/docker/docker-bootstrap.sh", "worker"]
env_file:
- path: docker/.env # default
@@ -274,3 +263,5 @@ volumes:
external: false
redis:
external: false
superset_data:
external: false

View File

@@ -21,6 +21,15 @@ PYTHONUNBUFFERED=1
COMPOSE_PROJECT_NAME=superset
DEV_MODE=true
# Port configuration (override in .env-local for multiple instances)
# NGINX_PORT=80
# SUPERSET_PORT=8088
# NODE_PORT=9000
# WEBSOCKET_PORT=8080
# CYPRESS_PORT=8081
# DATABASE_PORT=5432
# REDIS_PORT=6379
# database configurations (do not modify)
DATABASE_DB=superset
DATABASE_HOST=db

39
docker/.env-local.example Normal file
View File

@@ -0,0 +1,39 @@
#
# 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.
#
# -----------------------------------------------------------------------
# Example .env-local file for running multiple Superset instances
# Copy this file to .env-local and customize for your setup
# -----------------------------------------------------------------------
# Unique project name prevents container/volume conflicts between clones
# Each clone should have a different name (e.g., superset-pr123, superset-feature-x)
COMPOSE_PROJECT_NAME=superset-dev2
# Port offsets for running multiple instances simultaneously
# Instance 1 (default): 80, 8088, 9000, 8080, 8081, 5432, 6379
# Instance 2 example: 81, 8089, 9001, 8082, 8083, 5433, 6380
NGINX_PORT=81
SUPERSET_PORT=8089
NODE_PORT=9001
WEBSOCKET_PORT=8082
CYPRESS_PORT=8083
DATABASE_PORT=5433
REDIS_PORT=6380
# For verbose logging during development:
# SUPERSET_LOG_LEVEL=debug

View File

@@ -34,8 +34,24 @@ intended for use with local development.
### Local overrides
#### Environment Variables
To override environment variables locally, create a `./docker/.env-local` file (git-ignored). This file will be loaded after `.env` and can override any settings.
#### Python Configuration
In order to override configuration settings locally, simply make a copy of [`./docker/pythonpath_dev/superset_config_local.example`](./pythonpath_dev/superset_config_local.example)
into `./docker/pythonpath_dev/superset_config_docker.py` (git ignored) and fill in your overrides.
into `./docker/pythonpath_dev/superset_config_docker.py` (git-ignored) and fill in your overrides.
#### WebSocket Configuration
To customize the WebSocket server configuration, create `./docker/superset-websocket/config.json` (git-ignored) based on [`./docker/superset-websocket/config.example.json`](./superset-websocket/config.example.json).
Then update the `superset-websocket`.`volumes` config to mount it.
#### Docker Compose Overrides
For advanced Docker Compose customization, create a `docker-compose-override.yml` file (git-ignored) to override or extend services without modifying the main compose file.
### Local packages
@@ -61,6 +77,34 @@ To run the container, simply run: `docker compose up`
After waiting several minutes for Superset initialization to finish, you can open a browser and view [`http://localhost:8088`](http://localhost:8088)
to start your journey.
### Running Multiple Instances
If you need to run multiple Superset instances simultaneously (e.g., different branches or clones), use the make targets which automatically find available ports:
```bash
make up
```
This automatically:
- Generates a unique project name from your directory
- Finds available ports (incrementing from defaults if in use)
- Displays the assigned URLs before starting
Available commands (run from repo root):
| Command | Description |
|---------|-------------|
| `make up` | Start services (foreground) |
| `make up-detached` | Start services (background) |
| `make down` | Stop all services |
| `make ps` | Show running containers |
| `make logs` | Follow container logs |
| `make nuke` | Stop, remove volumes & local images |
From a subdirectory, use: `make -C $(git rev-parse --show-toplevel) up`
**Important**: Always use these commands instead of plain `docker compose down`, which won't know the correct project name.
## Developing
While running, the container server will reload on modification of the Superset Python and JavaScript source code.

View File

@@ -21,8 +21,15 @@ set -eo pipefail
# Make python interactive
if [ "$DEV_MODE" == "true" ]; then
if [ "$(whoami)" = "root" ] && command -v uv > /dev/null 2>&1; then
echo "Reinstalling the app in editable mode"
uv pip install -e .
# Always ensure superset-core is available
echo "Installing superset-core in editable mode"
uv pip install --no-deps -e /app/superset-core
# Only reinstall the main app for non-worker processes
if [ "$1" != "worker" ] && [ "$1" != "beat" ]; then
echo "Reinstalling the app in editable mode"
uv pip install -e .
fi
fi
fi
REQUIREMENTS_LOCAL="/app/docker/requirements-local.txt"
@@ -34,7 +41,8 @@ if [ "$CYPRESS_CONFIG" == "true" ]; then
export SUPERSET__SQLALCHEMY_DATABASE_URI=postgresql+psycopg2://superset:superset@db:5432/superset_cypress
PORT=8081
fi
if [[ "$DATABASE_DIALECT" == postgres* ]] && [ "$(whoami)" = "root" ]; then
# Skip postgres requirements installation for workers to avoid conflicts
if [[ "$DATABASE_DIALECT" == postgres* ]] && [ "$(whoami)" = "root" ] && [ "$1" != "worker" ] && [ "$1" != "beat" ]; then
# older images may not have the postgres dev requirements installed
echo "Installing postgres requirements"
if command -v uv > /dev/null 2>&1; then
@@ -72,12 +80,16 @@ case "${1}" in
;;
app)
echo "Starting web app (using development server)..."
flask run -p $PORT --reload --debugger --without-threads --host=0.0.0.0
flask run -p $PORT --reload --debugger --host=0.0.0.0 --exclude-patterns "*/node_modules/*:*/.venv/*:*/build/*:*/__pycache__/*:*/superset-frontend/*"
;;
app-gunicorn)
echo "Starting web app..."
/usr/bin/run-server.sh
;;
mcp)
echo "Starting MCP service..."
superset mcp run --host 0.0.0.0 --port ${MCP_PORT:-5008} --debug
;;
*)
echo "Unknown Operation!!!"
;;

View File

@@ -28,11 +28,11 @@ if [ "$BUILD_SUPERSET_FRONTEND_IN_DOCKER" = "true" ]; then
cd /app/superset-frontend
if [ "$NPM_RUN_PRUNE" = "true" ]; then
echo "Running `npm run prune`"
echo "Running \"npm run prune\""
npm run prune
fi
echo "Running `npm install`"
echo "Running \"npm install\""
npm install
echo "Start webpack dev server"

View File

@@ -105,7 +105,7 @@ class CeleryConfig:
CELERY_CONFIG = CeleryConfig
FEATURE_FLAGS = {"ALERT_REPORTS": True}
FEATURE_FLAGS = {"ALERT_REPORTS": True, "DATASET_FOLDERS": True}
ALERT_REPORTS_NOTIFICATION_DRY_RUN = True
WEBDRIVER_BASEURL = f"http://superset_app{os.environ.get('SUPERSET_APP_ROOT', '/')}/" # When using docker compose baseurl should be http://superset_nginx{ENV{BASEPATH}}/ # noqa: E501
# The base URL for the email report hyperlinks.

View File

@@ -19,6 +19,7 @@
# Import all settings from the main config first
from flask_caching.backends.filesystemcache import FileSystemCache
from superset_config import * # noqa: F403
# Override caching to use simple in-memory cache instead of Redis

Some files were not shown because too many files have changed in this diff Show More