You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by jl...@apache.org on 2026/05/05 17:30:55 UTC
(superset) branch sc-91230-conditional-formatting-no-data updated (fa05dc705f7 -> a7f48d7c584)
This is an automated email from the ASF dual-hosted git repository.
sadpandajoe pushed a change to branch sc-91230-conditional-formatting-no-data
in repository https://gitbox.apache.org/repos/asf/superset.git
from fa05dc705f7 fix(table): fall back to datasource columns for conditional formatting when query results are empty
add c971ea3ec64 fix(heatmap): skip orderby for value-based axis sorts (#39290)
add da371217ef6 fix: revert and restore server-side sorting for value axis sorts (#39331)
add 1462ac92823 fix(dashboard): Ensure screenshot downloads always generate fresh images/pdfs (#38880)
add 0f417f00408 fix(dashboard): preserve dynamic group by column order (#39333)
add 66a9e2e16ed fix(explore): Prevent error toast when navigating away from Explore page (#39065)
add 5138aa2c114 fix(select): select all button cutoff (#39005)
add c2a35e2eeae fix(popup): Dropdown popup width doesn't match input width when tags collapse in oneLine mode (#39136)
add 499e27ea54e fix(native-filter): infinite filter loading by deps (#39175)
add f836c3eccd5 chore(deps-dev): bump typescript-eslint from 8.58.0 to 8.58.2 in /superset-websocket (#39337)
add fa97d0357f3 chore(deps-dev): bump globals from 17.4.0 to 17.5.0 in /superset-websocket (#39310)
add 6287a07912d chore(deps): bump anthropics/claude-code-action from 1.0.89 to 1.0.93 (#39318)
add 002d8ad1e41 chore(deps-dev): bump @types/node from 25.5.0 to 25.6.0 in /superset-frontend (#39265)
add 3e25f02da98 test(sqllab): migrate Cypress E2E tests to Playwright (#39071)
add 86575e129b7 fix(native-filters): prevent infinite recursion in filter scope tree traversal (#39355)
add ffcc6e8b635 fix(MCP): fix MCP logs (#39159)
add 411f7698964 feat(filters): Adding empty state for filter modal (#38909)
add b76080e2917 feat(security): add granular export controls - Phase 2 + 3 (#38581)
add 4b88fc57b46 chore(deps-dev): bump prettier from 3.8.2 to 3.8.3 in /superset-websocket (#39358)
add 8d9b5bd479a chore(deps): bump follow-redirects from 1.15.11 to 1.16.0 in /docs (#39352)
add ddcb9be9a77 fix(sqllab): show schema refresh icon only on hover (#39367)
add 84f7b4a9731 fix: `do_ping` takes a connection, not engine (#39013)
add 724f1484b92 chore(mcp): update CLAUDE.md to reflect current codebase patterns (#39348)
add b2bd2329bc9 chore(deps-dev): bump wait-on from 9.0.4 to 9.0.5 in /superset-frontend (#39322)
add a6156676c82 chore(deps): bump fuse.js from 7.1.0 to 7.3.0 in /superset-frontend (#39146)
add 5661fc91285 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)
add 0d91f5e9823 chore(deps): bump markdown-to-jsx from 9.7.13 to 9.7.15 in /superset-frontend (#39217)
add 18d6feb4994 feat(mcp): add create_virtual_dataset tool to save SQL queries as datasets (#39279)
add 44e77fdf2b7 fix(explore): dispatch onChange immediately on NumberControl stepper arrow clicks (#39220)
add c2d96e0dce1 fix(table): fix cross-filter not clearing on second click in Interactive Table (#39253)
add c3a0f2749b5 fix(dashboard): apply dynamic groupby display controls to scoped charts (#39356)
add 8471e823426 fix(css-templates): add missing height to CSS editor in CssTemplateModal (#39221)
add b3e88db87e4 fix(table): use column label instead of SQL expression for orderby in downloads (#39332)
add 998b9e387b4 fix(ListView): empty state not filling available width (#39387)
add b11d4f3ef09 fix(i18n): typo in fr language (#36982)
add 388596e4fe1 chore(deps): bump baseline-browser-mapping from 2.10.13 to 2.10.16 in /docs (#39148)
add 45d5501aa7f fix(documentation): FAQ grammar for SQL query wording (#38923)
add c1a1f2e7e77 docs: add Hifadih Business & Technology to In the Wild (#38824)
add eaccb2e471b fix(EmptyState): prevent SVG cropping in empty state images (#37287)
add e0dcb2908db chore(deps): bump swagger-ui-react from 5.32.1 to 5.32.4 in /docs (#39377)
add e542e9f8403 chore(deps): bump actions/cache from 5.0.4 to 5.0.5 (#39368)
add f4a6ea0fde3 chore(deps): bump actions/github-script from 8.0.0 to 9.0.0 (#39267)
add e11a50bedfc chore(deps): bump @docusaurus/faster from 3.9.2 to 3.10.0 in /docs (#39195)
add 61c45e3dd87 chore(deps-dev): bump @docusaurus/module-type-aliases from 3.9.2 to 3.10.0 in /docs (#39194)
add 76a209663d5 chore(deps-dev): bump baseline-browser-mapping from 2.10.13 to 2.10.16 in /superset-frontend (#39150)
add 05227e8a804 chore(deps): bump caniuse-lite from 1.0.30001786 to 1.0.30001788 in /docs (#39376)
add 84af6c9f297 chore(deps-dev): bump @docusaurus/tsconfig from 3.9.2 to 3.10.0 in /docs (#39189)
add 838ee870d02 fix(mcp): update instructions to use correct request wrapper and identifier params (#39392)
add e7b9fb277eb fix(mcp): always push fresh app context per tool call to prevent g.user race (#39385)
add 0b51e9cd5e3 fix(sqllab): format_sql to apply db dialect by database_id (#39393)
add 0b419a07f54 fix: add comments to SQL clause validation (#39167)
add 7c76fd3d81a fix(SelectFilter): auto clear search input (#39157)
add cd7dddb5a1a chore(deps): bump baseline-browser-mapping from 2.10.16 to 2.10.19 in /docs (#39373)
add 735dd5dbae6 chore(deps): bump @swc/core from 1.15.21 to 1.15.24 in /docs (#39133)
add 69f062b804a feat(mcp): add a preview flow to mcp chart updates (#39383)
add e5820b6b2b1 chore: Bump core packages to 0.1.0 RC2 (#39406)
add 8ce234371b9 test(core): restore 100% TS coverage for core-packages-ts (copy utility) (#39384)
add f850c6b1b18 fix(parallel-coordinates): improve dark mode visibility for labels, axis text, and data lines (#39415)
add c2897312123 fix(mcp): prevent LLM from creating new dashboard instead of adding chart to existing one (#39353)
add e5b3a9c25db fix(mcp): replace inputSchema with parameters_hint in search_tools results by default (#39411)
add 2e0d482ccf5 fix(mcp): support explicit query_mode in TableChartConfig (#39412)
add db7a2bd6822 chore(deps): bump protocol-buffers-schema from 3.6.0 to 3.6.1 in /superset-frontend (#39418)
add 4bdc8d4c681 fix(sqllab): Relocate schema display on table preview (#39420)
add be680408c95 fix(sqllab): enhance table explore tree with schema pinning, column sorting, and table schema refresh (#39396)
add 690a411cf32 chore(ci): require PMC review for CI-executed scripts (#39462)
add 3d85e8e23b0 chore: publish wheels (#36746)
add 4ae16cb1408 chore(deps-dev): bump typescript-eslint from 8.58.0 to 8.58.2 in /docs (#39426)
add f0ef9f5e9c7 chore(deps-dev): bump webpack from 5.105.4 to 5.106.2 in /docs (#39401)
add cd6ce881a57 chore(deps): bump dompurify from 3.3.3 to 3.4.0 in /docs (#39398)
add a7310b1fce0 chore(deps): bump @docusaurus/core from 3.9.2 to 3.10.0 in /docs (#39188)
add e535dce0302 chore(deps-dev): bump prettier from 3.8.1 to 3.8.3 in /docs (#39400)
add ce5b2aa4243 chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#39320)
add a9487cbc84a chore(deps): bump aws-actions/amazon-ecr-login from 2.1.2 to 2.1.3 (#39403)
add 03725d1aaa5 chore(deps): bump dompurify from 3.3.3 to 3.4.0 in /superset-frontend (#39399)
add fca64de8e94 chore(deps-dev): bump prettier from 3.8.2 to 3.8.3 in /superset-frontend (#39372)
add 55625c911f6 chore(deps-dev): bump timezone-mock from 1.4.0 to 1.4.2 in /superset-frontend (#38049)
add fbd062165e2 chore(deps): bump @swc/core from 1.15.24 to 1.15.26 in /docs (#39374)
add 51ea2c297d0 fix(dataset): calculated columns in virtual datasets fail when used as dynamic aggregation filter dimensions (#39004)
add 0857611a4e8 fix(mcp): Add defensive validator for ColumnInfo.is_nullable (#39365)
add 16387b08153 fix(sqllab): remove duplicate tooltip on share query link icon (#39289)
add 5cff6578121 fix(mcp): default XY chart x-axis to dataset primary datetime column (#39421)
add e5f9a6bf4bc chore(lint): convert superset-ui-core chart-composition to function components (#39455)
add 7d3881f1da7 docs: Added instructions on configuring Superset SECRET_KEY (#25646)
add dc9b459b27f chore(deps): bump actions/setup-node from 6.3.0 to 6.4.0 (#39481)
add 899e9294b24 chore(deps): bump maplibre-gl from 5.22.0 to 5.23.0 in /superset-frontend (#39475)
add 9fe3f634ec6 perf(sql-lab): debounce schema browser search (#39489)
add bf7ec853fa5 fix(big-number): use correct default font size for subtitle/subheader (#39493)
add 4f2fa41f4ef fix(a11y): WCAG 3.1.2 — set HTML lang attribute dynamically from locale (#39243)
add 52ba4fd0cb9 chore(deps): bump antd from 6.3.5 to 6.3.6 in /docs (#39480)
add 06818008c22 chore(deps-dev): bump eslint from 10.2.0 to 10.2.1 in /superset-websocket (#39473)
add 78fb09695b8 fix(chart): word cloud secondary sort prevents Druid TopN optimization when sort_by_metric enabled (#39073)
add d3de16c5f51 fix(dashboard): restore groupby in buildExistingColumnsSet and guard null customization config (#39416)
add c4cf03f8995 fix(import): import tags during CLI native asset import (#39495)
add 6948e73ec7b feat(mcp): add get_chart_sql tool and expose chart filters in get_chart_info (#38700)
add 5fb89b865da fix(oauth2): silence lock acquisition errors on token refresh (#39463)
add 6535fdd5567 chore: simplify Trino's OAuth detection (#39496)
add e1bdb94efc2 chore(deps-dev): bump globals from 17.4.0 to 17.5.0 in /docs (#39479)
add 11607dde04b feat(sqllab): syntax validation for sqlite-based DB engine specs (#38698)
add 4f19bc4c5f7 fix(table): ensure dimensions appear before metrics in column order (#39346)
add 151d7d76da2 fix(charts): set g.form_data for metric() Jinja macro on GET chart data endpoint (#39347)
add 230b25dd729 fix(deckgl): UI fixes on deck.gl exclude layers (#38958)
add a222dab781e feat(dashboard): pre-filter time grain (#38922)
add 191337e08d8 fix(db oauth2): Improve OAuth2 flow (#39499)
add 29806780dc4 chore(mcp): remove dead parse_request decorator and utility code (#39498)
add a9761932bcb fix(security): patch CVEs in cryptography, mako, pyarrow, pyopenssl, requests (#39523)
add b4000a025d7 chore(deps): bump @swc/core from 1.15.26 to 1.15.30 in /docs (#39478)
add a4a67296af0 chore(deps): bump ag-grid-community from 35.0.1 to 35.2.1 in /superset-frontend (#39382)
add 0f2769ca3e7 fix(a11y): WCAG 3.2.3 — add aria-labels to navigation landmarks (#39244)
add 919daabe54b fix(mcp): clear stale query_context in update_chart so filters and row_limit are applied (#39413)
add 33deb028a6d chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /docs (#39427)
add c1a3de719a9 chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#39474)
add 5e3a7ba106c chore(deps): bump mapbox-gl from 3.20.0 to 3.21.0 in /superset-frontend (#39091)
add bd8d3ffb2da chore(deps): bump ag-grid-community from 35.0.1 to 35.2.1 in /superset-frontend/packages/superset-ui-core (#39371)
add e45330c2fd3 chore(deps-dev): bump oxlint from 1.56.0 to 1.60.0 in /superset-frontend (#39375)
add b302071723c chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.9.2 to 0.9.3 in /superset-frontend (#39264)
add a89f9bcb98a chore(deps-dev): bump @typescript-eslint/parser from 8.58.2 to 8.59.0 in /superset-websocket (#39513)
add 67bc910eb58 chore(deps-dev): bump @typescript-eslint/parser from 8.58.2 to 8.59.0 in /docs (#39515)
add 69d2da9c614 chore(deps): bump react-arborist from 3.4.3 to 3.5.0 in /superset-frontend (#39516)
add af7a62ab3fc chore(deps): bump baseline-browser-mapping from 2.10.19 to 2.10.20 in /docs (#39477)
add d7a8c1934a4 chore(deps-dev): bump typescript-eslint from 8.58.2 to 8.59.0 in /superset-websocket (#39511)
add dd18b2eb540 chore(deps): update react requirement from ^19.2.1 to ^19.2.5 in /superset-frontend/plugins/legacy-plugin-chart-chord (#39215)
add ef290b28e24 chore(deps): bump mapbox-gl from 3.20.0 to 3.22.0 in /superset-frontend (#39510)
add e77cfc93ed5 chore(deps): bump geostyler-openlayers-parser from 5.4.1 to 5.7.0 in /superset-frontend (#39518)
add a51bbd46dcc chore(deps-dev): bump oxlint from 1.56.0 to 1.60.0 in /superset-frontend (#39151)
add 003c2321921 chore(deps-dev): bump typescript-eslint from 8.58.2 to 8.59.0 in /docs (#39517)
add fb3e129d623 chore(deps-dev): bump @types/jquery from 3.5.33 to 4.0.0 in /superset-frontend (#38239)
add c3734985431 chore(deps-dev): bump the storybook group across 1 directory with 11 updates (#38503)
add 05fc5bb424f chore(deps): bump react-checkbox-tree from 1.8.0 to 2.0.1 in /superset-frontend (#39476)
add e6853894ab1 chore(mcp): extract shared chart helpers and ASCII rendering into separate modules (#39438)
add e1ed5003a89 docs: Superset 6.1 documentation catch-up — batch 5 (#39454)
add 44177b4e350 feat(explore): add CSV/XLS download to drill-to-detail modal (#37109)
add 1903b919d69 fix(echarts): increase default axis title margins to prevent label overlap (#39447)
add 73c4240ba47 feat(ui-core): export LeftOutlined icon from @superset-ui/core (#39563)
add 18d89f25ce4 fix(dashboard): apply full transitive ancestor chain for dependent filters (#39504)
add 5af17c7976e fix(OpenSearch): OpenSearch dialect for sqlglot (#39538)
add 9f42ccececd chore(deps): bump caniuse-lite from 1.0.30001788 to 1.0.30001790 in /docs (#39541)
add f672b143db0 chore(deps): bump react-checkbox-tree from 1.8.0 to 2.0.1 in /superset-frontend (#39261)
add e9030b7fac9 chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#39546)
add 72d39bea857 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39545)
add f6c5219e896 fix(security): add UserSAMLModelView to USER_MODEL_VIEWS (#39568)
add 4ee3a0fc074 feat(user_info): include Groups in user data payload when include_perms is True and show Groups on user_info page (#39450)
add 7174695be74 chore(deps-dev): bump @swc/core from 1.15.24 to 1.15.30 in /superset-frontend (#39550)
add ae61000a128 chore(deps): bump markdown-to-jsx from 9.7.15 to 9.7.16 in /superset-frontend (#39552)
add 9366868f8f9 chore(deps): bump nanoid from 5.1.7 to 5.1.9 in /superset-frontend (#39554)
add 7934665ac11 chore(deps): bump uuid from 13.0.0 to 14.0.0 in /superset-frontend (#39555)
add b2468d37524 chore(deps): bump geostyler from 18.3.1 to 18.5.0 in /superset-frontend (#39549)
add 07c8e7f3033 chore(deps): bump @deck.gl/mapbox from 9.2.11 to 9.3.1 in /superset-frontend (#39551)
add e16656c6cfb chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39548)
add 6c88fcacfa4 chore(deps-dev): bump webpack from 5.106.0 to 5.106.2 in /superset-frontend (#39544)
add 0d681338aa8 chore(deps-dev): bump baseline-browser-mapping from 2.10.16 to 2.10.20 in /superset-frontend (#39553)
add 68ee776ad61 chore(deps): update dompurify requirement from ^3.4.0 to ^3.4.1 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#39542)
add e10918307cb fix(db): Add MariaDB DDL fix for `NOCYCLE` syntax (#37582)
add bc2ffc66e51 chore(deps): update dompurify requirement from ^3.4.0 to ^3.4.1 in /superset-frontend/packages/superset-ui-core (#39543)
add 59bc895f3fd chore(deps): bump aws-actions/amazon-ecr-login from 2.1.3 to 2.1.4 (#39583)
add b6ac1ef63ce chore(deps): bump baseline-browser-mapping from 2.10.20 to 2.10.21 in /docs (#39584)
add d62f1546aa4 chore(deps): bump content-disposition from 1.0.1 to 1.1.0 in /superset-frontend (#39581)
add fc84d5d959c fix(i18n): correct Ukrainian locale flag code and language name typo (#39593)
add 9b52110ab14 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 7.18.0 to 8.58.2 in /superset-frontend (#39380)
add b1b6a057d88 fix(mcp): unwrap ToolResult payload before truncation in ResponseSizeGuardMiddleware (#39578)
add 362e5bf45e9 fix(jinja): drill-to-detail respects remove_filter=True in Jinja templates (#39594)
add dae79a6cba1 fix(mcp): surface validation errors in generate_chart instead of empty response (#39522)
add acdf70176a1 fix(dashboard): prevent label overlap in non-English locales (#36669)
add 0d50fd676be fix(mcp): hide user directory metadata from responses (#39576)
add 012bf52c8c7 fix(mcp): resolve $ref by inlining definitions in compact schema (#39562)
add 39f12786a22 refactor(chart): replace word cloud sort_by_series migration with code defaults (#39575)
add f0d521dfc26 fix(reports): poll for spinner absence instead of snapshotting loading elements (#39579)
add 7c4f87615b7 fix(mcp): correct method name in API key auth (extract_api_key_from_request) (#39437)
add 970b5bcf75e fix(cross-filter): correctly cast adhoc column types when cross filtering (#39577)
add d79eb5842ad fix(mcp): protect data-model metadata from dashboard viewers (#39599)
add d7941ccfec2 fix(mcp): surface XSS sanitization in chart/dashboard names instead of silently stripping (#39491)
add d6bbe6da9bb fix(sql-lab): show table expand/collapse arrow only on hover (#39627)
add 78950fc18e1 fix(sqllab): explore to chart is disabled (#39630)
add edf4d032188 chore: bump rison to 2.0.0 (#39529)
add 57e563b1771 fix(mcp): redact dashboard data model metadata (#39632)
add 1b3d070997b chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#39607)
add ac449021456 chore(deps): bump match-sorter from 8.2.0 to 8.3.0 in /superset-frontend (#39610)
add 66fce58697e chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.58.2 to 8.59.0 in /superset-frontend (#39612)
add 579fe23a5e5 chore(deps): bump ol from 10.8.0 to 10.9.0 in /superset-frontend (#39616)
add 6a899552176 chore(deps): bump postcss from 8.5.6 to 8.5.10 in /docs (#39639)
add ad20285dd69 fix(mcp): sanitize chart config errors and accept field name aliases (#39606)
add eb2645affe8 chore(deps): bump pillow from 12.1.1 to 12.2.0 (#39590)
add abd93444d0b fix(frontend): clean up console warnings and deprecations (#37881)
add 2026a1de6a2 fix(i18n): Fix menu bar translations not updating on language change (#34565)
add e709c191dbf chore(deps-dev): bump webpack-sources from 3.3.4 to 3.4.0 in /superset-frontend (#39611)
add 9d480bc79de chore(deps-dev): bump terser-webpack-plugin from 5.4.0 to 5.5.0 in /superset-frontend (#39615)
add 3da51ac3ebc chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39617)
add 96595965b87 chore(deps): bump maplibre-gl from 5.23.0 to 5.24.0 in /superset-frontend (#39619)
add 2c7d25f8299 chore(deps-dev): bump html-webpack-plugin from 5.6.6 to 5.6.7 in /superset-frontend (#39609)
add f255f63953c chore(deps): bump react-diff-viewer-continued from 4.2.0 to 4.2.2 in /superset-frontend (#39613)
add 30bd490b848 fix: delete Chart under "All" in home page doesn't refresh after dele… (#39471)
add 9a7938899e2 chore(deps): bump yargs from 17.7.2 to 18.0.0 in /superset-frontend (#36584)
add 6ad1583eb57 fix(security): bump authlib to 1.6.9 (#39598)
add a216b23d5a3 fix(i18n): Update Japanese translations (#39022)
add ea8a8f8ac7f feat(i18n): improve pt_BR translations (#38826)
add dece5415a79 chore(deps): bump memoize-one from 5.2.1 to 6.0.0 in /superset-frontend/plugins/plugin-chart-table (#39312)
add 4cc4d62486f chore(deps): bump antd from 6.3.6 to 6.3.7 in /docs (#39670)
add 41823a30575 chore(deps): bump @ant-design/icons from 6.1.1 to 6.2.0 in /docs (#39673)
add 0b78ffbb9c8 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39672)
add 37bf729f754 chore(deps-dev): bump jsdom from 29.0.2 to 29.1.0 in /superset-frontend (#39678)
add 7c242148579 chore(deps): bump caniuse-lite from 1.0.30001790 to 1.0.30001791 in /docs (#39674)
add 2b13e075218 fix(ci): resolve OOM issues when building docs locally with Docusaurus Faster + sync docs with latest build result (#38486)
add 4c4905f689c fix: d3 format for table (#37454)
add b9de3dba95d fix(docs): fix 404s in documentation (#38974)
add 44d1f50b7c7 chore(deps): bump baseline-browser-mapping from 2.10.21 to 2.10.23 in /docs (#39671)
add b791f4c2cd2 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39677)
add 9ccd37de1ce chore(ci): update Node.js version used in building CI image (#38635)
add 7c4b2b137c7 fix(explore): ensure unsaved-changes dialog renders above View SQL modal (#39569)
add 6da04fa51d8 fix(Modal): prevent title overlapping with close button in long header titles (#36536)
add 7774ec7e3c5 fix(mcp): database filter columns, timeseries SQL, and unsaved chart datasource name (#39636)
add 90f8fafbb46 docs(rls): adding additional rls filter documentation (#38829)
add 5fe3a1c2cd3 fix(dev): revert `react-checkbox-tree` from 2.1.0 to 1.8.0 in /superset-frontend (#39660)
add 523ecb65a4a chore(deps-dev): bump typescript-eslint from 8.59.0 to 8.59.1 in /superset-websocket (#39687)
add cf587caca7c fix(plugin-chart-handlebars): preserve template on explore open (#39442)
add 3f28f5d012b fix(mcp): surface structured errors for generate_chart validation failures (#39484)
add 3395620b6ee fix(table chart): fix rerender bug that continuously cleared search box (#39707)
add c4a8b34b11f fix(query-history): enable sorting by Duration column (#39637)
add 7bee2afa8e4 fix(theme): set color-scheme on html to fix dark mode scrollbars (#39704)
add 6947881ba70 fix(mcp): classify user errors as WARNING, system errors as ERROR (#39634)
add 09c7e1fc089 fix(mcp): rename _FastMCPValidationFilter to public symbol (#39722)
add 3aa99c577ed chore(deps): bump python-dotenv from 1.1.0 to 1.2.2 (#39723)
add ef50b688eef fix(docs): add split Get Started button to main docs page with audience links (#39467)
add d0abb66fdfd fix(mcp): default chart previews to ascii (#39719)
add ea3a1955b7e chore(deps): bump @swc/core from 1.15.30 to 1.15.32 in /docs (#39695)
add 4b42f82f136 fix(mcp): restore typed ChartConfig in tool schemas for LLM visibility (#39732)
add dbd7984ce9b chore(deps-dev): bump oxlint from 1.61.0 to 1.62.0 in /superset-frontend (#39701)
add 171414f1653 fix(chart): use categorical axis for bar charts with numeric x-axis (#39141)
add eba08ae52ad fix(ci): switch Dependabot Python ecosystem from uv to pip (#39726)
add 1dd28c6fcd2 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.59.0 to 8.59.1 in /superset-frontend (#39696)
add 7b02c21bff8 chore(deps): bump @ant-design/icons from 6.1.1 to 6.2.2 in /superset-frontend (#39697)
add 2a884e84565 chore(deps-dev): bump @swc/core from 1.15.30 to 1.15.32 in /superset-frontend (#39692)
add 54f1e327639 fix(dashboard): escape emoji in position_json before saving to prevent truncation (#39737)
add c7c9a17d6b8 fix(mysql): fallback to pymysql when MySQLdb is not installed in get_datatype() (#39729)
add 549aff7cf98 fix(mcp): clarify chart preview URL metadata (#39731)
add fe074c0d768 docs(mcp): update MCP server docs for 6.1 (#39422)
add 2b623fd09ae docs: Superset 6.1 documentation catch-up — batch 2 (#39441)
add b4f595953e4 docs: Superset 6.1 documentation catch-up — batch 3 (#39445)
add 8d17c34068b feat(mcp): restore self-lookup via created_by_me flag (#39638)
add 6ce3885f2ee chore(build): remove thread-loader from webpack build (#39763)
add 979f60a6d4a docs: Superset 6.1 documentation catch-up — batch 4 (#39446)
add 4c4f3341de6 chore(deps): bump dawidd6/action-download-artifact from 20 to 21 (#39742)
add ebb43404c8d chore(deps): bump baseline-browser-mapping from 2.10.23 to 2.10.24 in /docs (#39741)
add e3e834bbf7b fix(mcp): fall back to title match when dashboard slug lookup misses (#39567)
add 81a08f0a0e0 chore(deps): bump fastmcp from 3.1.0 to 3.2.4 (#39349)
add c2b9272f4c9 fix(mcp): sanitize read path output for LLM context (#39738)
add 49c249c7a9d fix(cache-warmup): add missing dashboard context in DashboardTagsStrategy (#39531)
add ae4c765d7d6 fix(docs): fix embedding page frontmatter and title capitalization (#39765)
add e4fe08ab9ef feat(mcp): add generate_bug_report tool with PII sanitization (#39595)
add df396aa6e9d fix(drill-to-detail): drill to detail by correctly filtering by metric (#39766)
add 9c3c8dcc0bf fix(table): restore dropdown arrow visibility on paginated table page… (#39305)
add f7c955f81ad feat: provide full endpoint URL construction for plugin developers (#37360)
add 2c26914c2eb chore(deps-dev): bump typescript-eslint from 8.59.0 to 8.59.1 in /docs (#39694)
add ce3f19d373a chore(deps): bump swagger-ui-react from 5.32.4 to 5.32.5 in /docs (#39693)
add c895c4ffa90 chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#39744)
add 43a2cd36604 chore(deps-dev): bump psycopg2-binary from 2.9.9 to 2.9.12 (#39749)
add a4532844f49 chore(deps): bump msgpack from 1.0.8 to 1.1.2 (#39752)
add 9001e7dcf27 chore(deps): bump pandas from 2.1.4 to 2.3.3 (#39754)
add bfacc3b5ac7 chore(deps): bump xlsxwriter from 3.0.9 to 3.2.9 (#39757)
add 1061b0612cc chore(deps-dev): bump eslint-plugin-no-only-tests from 3.3.0 to 3.4.0 in /superset-frontend (#39768)
add 7842a9b05d1 fix(playwright): remove Google Sheets dependency from dataset tests (#39143)
add bc875aa3e32 feat: Latvian localization (#38965)
add a135e290355 fix(time-format): handle string input in TimeFormatter to fix pivot table NaN dates (#38949)
add 56e9331dada chore: add Aadhar Housing Finance Limited to INTHEWILD (#38366)
add 6ad503201b8 chore(deps): bump zod from 4.3.6 to 4.4.1 in /superset-frontend (#39770)
add c15b208fdaa chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#39745)
add 9faeda5723a chore(deps): bump @ant-design/icons from 6.2.0 to 6.2.2 in /docs (#39691)
add 3f681040076 chore(deps-dev): bump @swc/plugin-emotion from 14.8.0 to 14.9.0 in /superset-frontend (#39715)
add 4fcb3144ff1 fix(dashboard): prevent duplicate screenshot downloads (#39525)
add 12f69760f90 fix(table): conditionally render search dropdown only when search input is enabled (#35204)
add f57ba7645dd fix(CountryMap): ISO updated for France overseas (complete run) (#36055)
add 512ba43e764 feat(i18n): add Czech translations (#36153)
add 4244ae87bf7 fix(deps): regenerate pinned requirements for psycopg2-binary 2.9.12 (#39790)
add 86eb6176d11 fix: Enforce per-user caching on legacy API endpoint (#39789)
add 3f550f166f3 fix(GSheets OAuth2): Re-add UnauthenticatedError (#39785)
add f29d82b3b1d feat(mcp): add query_dataset tool to query datasets using semantic layer (#39727)
add 957b298ae1e fix(mcp): add default request parameter to list_charts and list_dashboards (#39730)
add e585406fff6 chore(codeowners): notify @sfirke on translation changes (#39794)
add d23b0cad920 chore: Bump core packages to 0.1.0 RC3 (#39823)
add 2ec53c0694b chore(deps): bump mapbox-gl from 3.22.0 to 3.23.0 in /superset-frontend (#39769)
add de45f3a928e chore(deps): bump aws-actions/amazon-ecs-deploy-task-definition from 2.6.1 to 2.6.2 (#39806)
add 6bfdee98cd9 chore(deps-dev): bump @docusaurus/tsconfig from 3.10.0 to 3.10.1 in /docs (#39811)
add 1ac113fd449 chore(deps): bump aws-actions/amazon-ecs-render-task-definition from 1.8.4 to 1.8.5 (#39809)
add e77fb5e3fcb feat(i18n): updated Ukrainian translation (#39720)
add cb744388652 fix(viz): correct table chart drill-to-detail temporal boundaries and null handling (#39668)
add 98eaaaa6d66 fix(mcp): clear stale thread-local DB session in sync tool wrapper (#39798)
add dbe26d81ce0 chore(deps-dev): bump baseline-browser-mapping from 2.10.21 to 2.10.24 in /superset-frontend (#39759)
add d8dd2d99b3f fix(time-comparison): use chart row_limit instead of instance config in offset queries (#39490)
add 9d4384e49ee chore(deps-dev): bump @babel/preset-env from 7.29.2 to 7.29.3 in /superset-frontend (#39822)
add b14cca15f6b fix(table): preserve decimals in totals row when Time Comparison is enabled (#39747)
add c90c8612ade chore(deps): bump @docusaurus/faster from 3.10.0 to 3.10.1 in /docs (#39804)
add 867e173427b chore(deps): drop stale legacy-plugin-chart-map-box lockfile entry (#39825)
add ad73395c894 chore(deps-dev): bump yeoman-test from 11.3.1 to 11.4.2 in /superset-frontend (#39816)
add dc1c0f6ba19 docs: add user-facing Handlebars chart page with full helpers reference (#39591)
add 6205afbaa08 chore(deps-dev): bump webpack-sources from 3.4.0 to 3.4.1 in /superset-frontend (#39851)
add 28239c18d40 feat(mcp): warn when execute_sql template_params used with templating disabled (#39858)
add 41a22d79184 chore: Upgrade to React 18 (#38563)
add 673634f7af7 fix(mcp): point get_dataset_info url to explore view instead of legacy tablemodelview edit (#39838)
add af8d15fdfcf chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#39852)
add 812f4ae0804 chore(deps): update zod requirement from ^4.4.1 to ^4.4.3 in /superset-frontend/plugins/plugin-chart-echarts (#39850)
add 2be971ce770 chore(deps): bump docusaurus-plugin-openapi-docs from 5.0.1 to 5.0.2 in /docs (#39849)
add 319b8a1124d chore(deps-dev): bump globals from 17.5.0 to 17.6.0 in /docs (#39847)
add ebb02d0ecf0 chore(deps): bump @swc/core from 1.15.32 to 1.15.33 in /docs (#39845)
add 2f605724e72 chore(deps-dev): bump globals from 17.5.0 to 17.6.0 in /superset-websocket (#39844)
add c2725e86f37 fix(markdown): Allow "target" attribute (#39868)
add e76318633e3 fix(helm): allow chart to work out-of-the-box with legacy Bitnami images (#39839)
add 5325b87e73e fix(clickhouse): prevent expensive table scan (#39867)
add 76955017eb0 chore: bump shillelagh to 1.4.4 (#39870)
add e80207218b8 chore(deps-dev): bump eslint from 10.2.1 to 10.3.0 in /superset-websocket (#39843)
add 2edae162f07 chore(deps): bump baseline-browser-mapping from 2.10.24 to 2.10.27 in /docs (#39848)
add d6188374b4f chore(deps): bump docusaurus-theme-openapi-docs from 5.0.1 to 5.0.2 in /docs (#39846)
add 586de12a05e fix(embedded): prevent duplicate React root on rehandshake (#39860)
add 8173cfe9e3b fix(CollectionControl): assign stable ids to keyless items (#39862)
add 5b5f23d1272 test(plugin-chart-echarts): regression guards for temporal x-axis labels on timeseries charts (#39208)
add 9e91ae8cfff fix(colors): reassign colliding series when dashboard locks shared dimension color (#39297)
add cb53745d43c feat: semantic layer extension (#37815)
add a7f48d7c584 Merge branch 'master' into sc-91230-conditional-formatting-no-data
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 9 +
.github/dependabot.yml | 16 +-
.github/labeler.yml | 15 +
.github/workflows/bashlib.sh | 14 +
.github/workflows/check_db_migration_confict.yml | 2 +-
.github/workflows/claude.yml | 4 +-
.github/workflows/embedded-sdk-release.yml | 2 +-
.github/workflows/embedded-sdk-test.yml | 2 +-
.github/workflows/ephemeral-env-pr-close.yml | 4 +-
.github/workflows/ephemeral-env.yml | 20 +-
.github/workflows/github-action-validator.yml | 2 +-
.github/workflows/no-hold-label.yml | 2 +-
.github/workflows/pre-commit.yml | 4 +-
.github/workflows/release.yml | 6 +-
.github/workflows/showtime-trigger.yml | 2 +-
.github/workflows/superset-docs-deploy.yml | 6 +-
.github/workflows/superset-docs-verify.yml | 6 +-
.github/workflows/superset-e2e.yml | 8 +-
.github/workflows/superset-extensions-cli.yml | 2 +-
.github/workflows/superset-frontend.yml | 4 +-
.github/workflows/superset-helm-release.yml | 2 +-
.github/workflows/superset-playwright.yml | 4 +-
.../workflows/superset-python-integrationtest.yml | 2 +-
.github/workflows/superset-python-unittest.yml | 1 +
.github/workflows/superset-translations.yml | 2 +-
.github/workflows/supersetbot.yml | 2 +-
.github/workflows/tag-release.yml | 4 +-
.github/workflows/tech-debt.yml | 2 +-
.gitignore | 1 +
Dockerfile | 2 +-
RELEASING/README.md | 2 +-
RESOURCES/INTHEWILD.yaml | 9 +
UPDATING.md | 21 +
docker/pythonpath_dev/superset_config.py | 8 +-
docs/admin_docs/configuration/aws-iam.mdx | 162 +
docs/admin_docs/configuration/cache.mdx | 39 +-
.../configuration/configuring-superset.mdx | 28 +
.../importing-exporting-datasources.mdx | 31 +
docs/admin_docs/configuration/mcp-server.mdx | 161 +
.../configuration/networking-settings.mdx | 4 +-
docs/admin_docs/configuration/theming.mdx | 45 +-
docs/admin_docs/configuration/timezones.mdx | 2 +-
docs/admin_docs/installation/kubernetes.mdx | 2 +-
docs/admin_docs/security/security.mdx | 146 +-
docs/developer_docs/api.mdx | 124 +-
.../components/design-system/dropdowncontainer.mdx | 2 +-
.../components/design-system/flex.mdx | 2 +-
.../components/design-system/grid.mdx | 2 +-
.../components/design-system/layout.mdx | 2 +-
.../components/design-system/metadatabar.mdx | 2 +-
.../components/design-system/space.mdx | 2 +-
.../components/design-system/table.mdx | 2 +-
docs/developer_docs/components/index.mdx | 24 +-
docs/developer_docs/components/ui/autocomplete.mdx | 2 +-
docs/developer_docs/components/ui/avatar.mdx | 2 +-
docs/developer_docs/components/ui/badge.mdx | 2 +-
docs/developer_docs/components/ui/breadcrumb.mdx | 2 +-
docs/developer_docs/components/ui/button.mdx | 8 +-
docs/developer_docs/components/ui/buttongroup.mdx | 2 +-
docs/developer_docs/components/ui/cachedlabel.mdx | 2 +-
docs/developer_docs/components/ui/card.mdx | 2 +-
docs/developer_docs/components/ui/checkbox.mdx | 2 +-
docs/developer_docs/components/ui/collapse.mdx | 2 +-
docs/developer_docs/components/ui/datepicker.mdx | 2 +-
docs/developer_docs/components/ui/divider.mdx | 2 +-
.../developer_docs/components/ui/editabletitle.mdx | 2 +-
docs/developer_docs/components/ui/emptystate.mdx | 2 +-
docs/developer_docs/components/ui/favestar.mdx | 2 +-
docs/developer_docs/components/ui/iconbutton.mdx | 2 +-
docs/developer_docs/components/ui/icons.mdx | 2 +-
docs/developer_docs/components/ui/icontooltip.mdx | 2 +-
docs/developer_docs/components/ui/infotooltip.mdx | 2 +-
docs/developer_docs/components/ui/input.mdx | 2 +-
docs/developer_docs/components/ui/label.mdx | 2 +-
docs/developer_docs/components/ui/list.mdx | 2 +-
docs/developer_docs/components/ui/listviewcard.mdx | 2 +-
docs/developer_docs/components/ui/loading.mdx | 2 +-
docs/developer_docs/components/ui/menu.mdx | 2 +-
docs/developer_docs/components/ui/modal.mdx | 2 +-
docs/developer_docs/components/ui/modaltrigger.mdx | 2 +-
docs/developer_docs/components/ui/popover.mdx | 2 +-
docs/developer_docs/components/ui/progressbar.mdx | 2 +-
docs/developer_docs/components/ui/radio.mdx | 2 +-
docs/developer_docs/components/ui/safemarkdown.mdx | 2 +-
docs/developer_docs/components/ui/select.mdx | 2 +-
docs/developer_docs/components/ui/skeleton.mdx | 2 +-
docs/developer_docs/components/ui/slider.mdx | 2 +-
docs/developer_docs/components/ui/steps.mdx | 2 +-
docs/developer_docs/components/ui/switch.mdx | 2 +-
.../components/ui/tablecollection.mdx | 6 -
docs/developer_docs/components/ui/tableview.mdx | 2 +-
docs/developer_docs/components/ui/tabs.mdx | 2 +-
docs/developer_docs/components/ui/timer.mdx | 2 +-
docs/developer_docs/components/ui/tooltip.mdx | 2 +-
docs/developer_docs/components/ui/tree.mdx | 2 +-
docs/developer_docs/components/ui/treeselect.mdx | 2 +-
docs/developer_docs/components/ui/typography.mdx | 2 +-
.../components/ui/unsavedchangesmodal.mdx | 2 +-
docs/developer_docs/components/ui/upload.mdx | 2 +-
.../contributing/development-setup.md | 2 +-
.../extensions/contribution-types.md | 49 +
docs/developer_docs/extensions/overview.md | 2 +-
docs/docs/faq.mdx | 2 +-
docs/docs/security/granular-export-controls.mdx | 78 +
.../creating-your-first-dashboard.mdx | 130 +-
docs/docs/using-superset/embedding.mdx | 131 +
docs/docs/using-superset/exploring-data.mdx | 21 +
docs/docs/using-superset/handlebars-chart.mdx | 143 +
docs/docs/using-superset/sql-templating.mdx | 24 +
.../docs/using-superset/using-ai-with-superset.mdx | 77 +-
docs/docusaurus.config.ts | 51 +-
docs/package.json | 44 +-
docs/scripts/generate-superset-components.mjs | 98 +-
docs/src/components/GetStartedSplitButton.tsx | 155 +
docs/src/data/databases.json | 163 +-
docs/src/pages/index.tsx | 22 +-
docs/src/styles/main.css | 46 +-
docs/src/theme/NavbarItem/ComponentTypes.tsx | 41 +
.../theme/NavbarItem/GetStartedSplitNavbarItem.tsx | 17 +-
docs/src/theme/Root.js | 4 +-
docs/static/feature-flags.json | 6 +
docs/static/img/logos/hifadih.png | Bin 0 -> 18383 bytes
docs/tsconfig.json | 1 +
.../configuration/configuring-superset.mdx | 8 +
docs/versioned_docs/version-6.0.0/faq.mdx | 2 +-
docs/yarn.lock | 2105 +-
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 2 +-
helm/superset/values.yaml | 7 +
pyproject.toml | 25 +-
requirements/base.in | 10 +
requirements/base.txt | 30 +-
requirements/development.txt | 31 +-
scripts/oxlint.sh | 12 +-
superset-core/pyproject.toml | 8 +-
.../src/superset_core/semantic_layers/config.py | 73 +
.../src/superset_core/semantic_layers/daos.py | 169 +
.../superset_core/semantic_layers/decorators.py | 102 +
.../src/superset_core/semantic_layers/layer.py | 129 +
.../src/superset_core/semantic_layers/models.py | 85 +
.../src/superset_core/semantic_layers/types.py | 209 +
.../src/superset_core/semantic_layers/view.py | 113 +
superset-extensions-cli/pyproject.toml | 6 +-
.../e2e/sqllab/_skip.sourcePanel.index.test.js | 73 -
.../cypress-base/cypress/e2e/sqllab/query.test.ts | 192 -
.../cypress/e2e/sqllab/sqllab.helper.js | 41 -
.../cypress-base/cypress/e2e/sqllab/tabs.test.ts | 113 -
superset-frontend/oxlint.json | 99 +-
superset-frontend/package-lock.json | 43765 +++++++++----------
superset-frontend/package.json | 110 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-core/package.json | 17 +-
.../packages/superset-core/src/testing.tsx | 4 +-
.../superset-core/src/theme/GlobalStyles.tsx | 6 +
.../src/theme/utils/themeUtils.test.ts | 2 +-
.../superset-ui-chart-controls/package.json | 9 +-
.../src/sections/chartTitle.tsx | 6 +-
.../superset-ui-chart-controls/src/types.ts | 1 +
.../packages/superset-ui-core/package.json | 23 +-
.../src/chart-composition/ChartFrame.tsx | 63 +-
.../src/chart-composition/legend/WithLegend.tsx | 167 +-
.../src/chart-composition/tooltip/TooltipFrame.tsx | 28 +-
.../src/color/CategoricalColorScale.ts | 47 +-
.../src/components/ActionButton/index.tsx | 10 +-
.../AsyncAceEditor/useJsonValidation.test.ts | 4 +-
.../src/components/AsyncEsmComponent/index.tsx | 18 +-
.../src/components/Button/types.ts | 3 +-
.../DropdownContainer.stories.tsx | 2 +-
.../src/components/DropdownContainer/types.ts | 3 +-
.../DynamicEditableTitle.regression.test.tsx | 80 +
.../src/components/DynamicEditableTitle/index.tsx | 43 +-
.../components/EmptyState/svgs/empty-dashboard.svg | Bin 1631 -> 3078 bytes
.../src/components/EmptyState/svgs/empty.svg | Bin 1944 -> 2690 bytes
.../src/components/EmptyState/svgs/star-circle.svg | Bin 2051 -> 2661 bytes
.../src/components/EmptyState/types.ts | 3 +-
.../superset-ui-core/src/components/Form/Form.tsx | 2 +-
.../src/components/Icons/AntdEnhanced.tsx | 2 +
.../src/components/Label/Label.test.tsx | 1 -
.../components/Label/reusable/DatasetTypeLabel.tsx | 18 +-
.../src/components/ListViewCard/index.tsx | 11 +-
.../src/components/ListViewCard/types.ts | 1 +
.../src/components/MetadataBar/MetadataBar.tsx | 2 +-
.../src/components/Modal/FormModal.tsx | 2 +-
.../src/components/Modal/Modal.tsx | 219 +-
.../superset-ui-core/src/components/Modal/types.ts | 7 +-
.../src/components/PageHeaderWithActions/index.tsx | 112 +-
.../src/components/Select/Select.test.tsx | 74 +-
.../src/components/Select/Select.tsx | 29 +-
.../src/components/Select/styles.tsx | 10 +-
.../TableCollection/TableCollection.test.tsx | 2 +-
.../src/components/TableCollection/utils.tsx | 4 +-
.../src/components/TableView/TableView.test.tsx | 41 +-
.../src/components/TableView/TableView.tsx | 52 +-
.../src/components/ThemedAgGridReact/index.tsx | 1 +
.../src/components/TruncatedList/index.tsx | 4 +-
.../src/components/UnsavedChangesModal/index.tsx | 7 +
.../src/connection/SupersetClient.ts | 1 +
.../superset-ui-core/src/connection/types.ts | 1 +
.../hooks/useChangeEffect/useChangeEffect.test.ts | 2 +-
.../useComponentDidMount.test.ts | 2 +-
.../useComponentDidUpdate.test.ts | 2 +-
.../useElementOnScreen/useElementOnScreen.test.ts | 16 +-
.../src/hooks/usePrevious/usePrevious.test.ts | 2 +-
.../useTruncation/useCSSTextTruncation.test.tsx | 2 +-
.../useChildElementTruncation.test.ts | 2 +-
.../superset-ui-core/src/query/DatasourceKey.ts | 12 +-
.../superset-ui-core/src/query/types/Dashboard.ts | 1 +
.../superset-ui-core/src/query/types/Datasource.ts | 8 +
.../src/time-format/TimeFormatter.ts | 8 +-
.../src/time-format/utils/stringifyTimeInput.ts | 8 +-
.../superset-ui-core/src/ui-overrides/types.ts | 3 +-
.../superset-ui-core/src/utils/featureFlags.ts | 1 +
.../test/chart/components/SuperChart.test.tsx | 2 +-
.../test/color/CategoricalColorScale.test.ts | 179 +
.../test/connection/SupersetClient.test.ts | 36 +-
.../test/query/types/Datasource.test.ts | 3 +-
.../test/time-comparison/getTimeOffset.test.ts | 42 +-
.../test/time-comparison/parseDttmToDate.test.ts | 114 +-
.../test/time-format/TimeFormatter.test.ts | 15 +
.../superset-ui-core/test/utils/copy.test.ts | 216 +
superset-frontend/playwright.config.ts | 17 +
.../playwright/components/core/AgGrid.ts | 85 +
.../components/core/EditableTabs.ts} | 49 +-
.../playwright/components/core/Modal.ts | 4 +-
.../components/core/Popover.ts} | 58 +-
.../playwright/components/core/Select.ts | 3 +-
.../playwright/components/core/Tabs.ts | 55 +-
.../playwright/components/core/index.ts | 3 +
.../components/modals/EditDatasetModal.ts | 7 +-
.../components/modals/ImportDatasetModal.ts | 18 +
.../components/modals/SaveDatasetModal.ts} | 33 +-
.../components/modals/SaveQueryModal.ts} | 30 +-
.../playwright/components/modals/index.ts | 2 +
.../playwright/fixtures/dataset_export.zip | Bin 5261 -> 0 bytes
.../playwright/helpers/api/assertions.ts | 48 +-
.../playwright/helpers/api/dataset.ts | 15 +
.../helpers/api/savedQuery.ts} | 38 +-
.../playwright/helpers/api/{theme.ts => sqllab.ts} | 55 +-
.../playwright/helpers/fixtures/testAssets.ts | 25 +-
superset-frontend/playwright/pages/AuthPage.ts | 4 +-
.../playwright/pages/CreateDatasetPage.ts | 2 +-
superset-frontend/playwright/pages/SqlLabPage.ts | 371 +
.../playwright/tests/auth/login.spec.ts | 37 +-
.../playwright/tests/chart/chart-list.spec.ts | 29 +-
.../tests/dashboard/dashboard-list.spec.ts | 50 +-
.../tests/dataset/create-dataset.spec.ts | 297 +-
.../playwright/tests/dataset/dataset-list.spec.ts | 126 +-
.../playwright/tests/sqllab/sqllab.spec.ts | 315 +
superset-frontend/playwright/utils/constants.ts | 16 +
superset-frontend/playwright/utils/urls.ts | 1 +
.../legacy-plugin-chart-calendar/package.json | 2 +-
.../plugins/legacy-plugin-chart-chord/package.json | 2 +-
.../legacy-plugin-chart-country-map/package.json | 2 +-
.../scripts/Country Map GeoJSON Generator.ipynb | Bin 2319015 -> 10614906 bytes
.../src/countries/afghanistan.geojson | Bin 116233 -> 116055 bytes
.../src/countries/algeria.geojson | Bin 72436 -> 72143 bytes
.../src/countries/angola.geojson | Bin 91061 -> 90836 bytes
.../src/countries/antarctica.geojson | Bin 249319 -> 245701 bytes
.../src/countries/argentina.geojson | Bin 92396 -> 91982 bytes
.../src/countries/central_african_republic.geojson | Bin 76367 -> 76280 bytes
.../src/countries/chad.geojson | Bin 59200 -> 59068 bytes
.../src/countries/chile.geojson | Bin 155583 -> 152109 bytes
.../src/countries/colombia.geojson | Bin 172825 -> 172427 bytes
.../src/countries/cook_islands.geojson | Bin 4932 -> 4793 bytes
.../democratic_republic_of_the_congo.geojson | Bin 60598 -> 60421 bytes
.../src/countries/ecuador.geojson | Bin 72252 -> 71984 bytes
.../src/countries/egypt.geojson | Bin 63171 -> 62737 bytes
.../src/countries/ethiopia.geojson | Bin 74208 -> 74123 bytes
.../src/countries/fiji.geojson | Bin 16252 -> 14845 bytes
.../src/countries/finland.geojson | Bin 131137 -> 130221 bytes
.../src/countries/france.geojson | Bin 293304 -> 292411 bytes
.../src/countries/france_overseas.geojson | Bin 319670 -> 318427 bytes
.../src/countries/france_regions.geojson | Bin 125649 -> 125270 bytes
.../src/countries/french_polynesia.geojson | Bin 23524 -> 21933 bytes
.../src/countries/greenland.geojson | Bin 183222 -> 180051 bytes
.../src/countries/iran.geojson | Bin 134537 -> 134245 bytes
.../src/countries/italy.geojson | Bin 239052 -> 238139 bytes
.../src/countries/italy_regions.geojson | Bin 107344 -> 106568 bytes
.../src/countries/japan.geojson | Bin 125219 -> 123030 bytes
.../src/countries/kazakhstan.geojson | Bin 97047 -> 96827 bytes
.../src/countries/libya.geojson | Bin 44004 -> 43958 bytes
.../src/countries/malaysia.geojson | Bin 61681 -> 61384 bytes
.../src/countries/mexico.geojson | Bin 155798 -> 153935 bytes
.../src/countries/mongolia.geojson | Bin 66140 -> 66008 bytes
.../src/countries/mozambique.geojson | Bin 70273 -> 70096 bytes
.../src/countries/myanmar.geojson | Bin 122123 -> 121555 bytes
.../src/countries/namibia.geojson | Bin 51744 -> 51566 bytes
.../src/countries/new_zealand.geojson | Bin 51553 -> 50769 bytes
.../src/countries/niger.geojson | Bin 24447 -> 24404 bytes
.../src/countries/nigeria.geojson | Bin 132145 -> 131937 bytes
.../src/countries/norway.geojson | Bin 193186 -> 190978 bytes
.../src/countries/pakistan.geojson | Bin 71260 -> 71132 bytes
.../src/countries/papua_new_guinea.geojson | Bin 93153 -> 92488 bytes
.../src/countries/peru.geojson | Bin 121913 -> 121731 bytes
.../src/countries/philippines.geojson | Bin 201029 -> 199021 bytes
.../src/countries/philippines_regions.geojson | Bin 137441 -> 135628 bytes
.../src/countries/portugal.geojson | Bin 54433 -> 54121 bytes
.../src/countries/saudi_arabia.geojson | Bin 49793 -> 49541 bytes
.../src/countries/somalia.geojson | Bin 17724 -> 17637 bytes
.../src/countries/spain.geojson | Bin 197369 -> 196796 bytes
.../src/countries/sudan.geojson | Bin 50604 -> 50472 bytes
.../src/countries/sweden.geojson | Bin 122167 -> 121208 bytes
.../src/countries/tanzania.geojson | Bin 108762 -> 108542 bytes
.../src/countries/thailand.geojson | Bin 206445 -> 205568 bytes
.../src/countries/turkey.geojson | Bin 204145 -> 203575 bytes
.../src/countries/turkey_regions.geojson | Bin 107486 -> 107269 bytes
.../src/countries/turkmenistan.geojson | Bin 34959 -> 34870 bytes
.../src/countries/uk.geojson | Bin 478985 -> 477503 bytes
.../src/countries/ukraine.geojson | Bin 173452 -> 173064 bytes
.../united_states_minor_outlying_islands.geojson | Bin 3957 -> 3552 bytes
.../src/countries/uzbekistan.geojson | Bin 50378 -> 50250 bytes
.../src/countries/venezuela.geojson | Bin 119692 -> 118980 bytes
.../src/countries/vietnam.geojson | Bin 138908 -> 138005 bytes
.../legacy-plugin-chart-horizon/package.json | 2 +-
.../legacy-plugin-chart-paired-t-test/package.json | 2 +-
.../package.json | 2 +-
.../src/ParallelCoordinates.ts | 28 +-
.../src/ReactParallelCoordinates.tsx | 4 +
.../src/transformProps.ts | 10 +-
.../legacy-plugin-chart-partition/package.json | 6 +-
.../plugins/legacy-plugin-chart-rose/package.json | 2 +-
.../legacy-plugin-chart-world-map/package.json | 2 +-
.../plugins/legacy-preset-chart-nvd3/package.json | 4 +-
.../plugin-chart-ag-grid-table/package.json | 9 +-
.../src/AgGridTable/index.tsx | 49 +-
.../src/AgGridTableChart.tsx | 91 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 11 +-
.../src/renderers/TextCellRenderer.tsx | 6 +-
.../src/transformProps.ts | 5 +
.../src/utils/getCellClass.ts | 4 -
.../src/utils/getCrossFilterDataMask.ts | 49 +
.../src/utils/getInitialSortState.ts | 2 +-
.../src/utils/reconcileColumnState.test.ts | 86 +
.../src/utils/reconcileColumnState.ts | 83 +
.../test/buildQuery.test.ts | 21 +-
.../test/utils/useColDefs.test.ts | 2 +-
.../plugins/plugin-chart-cartodiagram/package.json | 4 +-
.../src/components/ChartLayer.tsx | 19 +-
.../test/components/chartLayer.test.ts | 5 +
.../plugins/plugin-chart-echarts/package.json | 4 +-
.../src/BigNumber/BigNumberTotal/transformProps.ts | 5 +-
.../src/BigNumber/BigNumberViz.tsx | 11 +-
.../src/BigNumber/constants.tsx} | 10 +-
.../plugin-chart-echarts/src/Bubble/constants.ts | 4 +-
.../src/Bubble/controlPanel.tsx | 4 +-
.../src/MixedTimeseries/EchartsMixedTimeseries.tsx | 2 +-
.../src/MixedTimeseries/transformProps.ts | 10 +-
.../src/Timeseries/EchartsTimeseries.test.tsx | 4 +-
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 4 +-
.../src/Timeseries/constants.ts | 4 +-
.../src/Timeseries/transformProps.ts | 7 +-
.../src/Treemap/EchartsTreemap.tsx | 6 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 8 +-
.../plugins/plugin-chart-echarts/src/constants.ts | 4 +-
.../plugin-chart-echarts/src/utils/series.ts | 7 +-
.../test/MixedTimeseries/transformProps.test.ts | 136 +-
.../test/Timeseries/transformProps.test.ts | 113 +
.../test/utils/formatters.test.ts | 52 +
.../plugin-chart-echarts/test/utils/series.test.ts | 35 +
.../plugins/plugin-chart-handlebars/README.md | 95 -
.../plugins/plugin-chart-handlebars/package.json | 4 +-
.../src/plugin/controls/handlebarTemplate.tsx | 51 +-
.../src/plugin/controls/style.tsx | 6 +-
.../test/plugin/controls.test.ts | 116 +
.../plugins/plugin-chart-pivot-table/package.json | 4 +-
.../src/PivotTableChart.tsx | 48 +-
.../src/react-pivottable/TableRenderers.tsx | 2 +-
.../plugin-chart-point-cluster-map/package.json | 10 +-
.../plugins/plugin-chart-table/package.json | 11 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 23 +-
.../plugins/plugin-chart-table/src/Styles.tsx | 5 +
.../plugins/plugin-chart-table/src/TableChart.tsx | 139 +-
.../plugin-chart-table/src/transformProps.ts | 9 +-
.../plugin-chart-table/test/TableChart.test.tsx | 504 +
.../plugins/plugin-chart-word-cloud/package.json | 4 +-
.../src/plugin/buildQuery.ts | 5 +-
.../src/plugin/controlPanel.tsx | 16 +
.../test/buildQuery.test.ts | 88 +-
.../test/controlPanel.test.ts | 22 +
.../plugins/preset-chart-deckgl/package.json | 10 +-
.../src/CategoricalDeckGLContainer.tsx | 3 +-
.../preset-chart-deckgl/src/DeckGLContainer.tsx | 2 +-
.../preset-chart-deckgl/src/layers/common.test.ts | 4 +-
superset-frontend/scripts/build.js | 7 +-
superset-frontend/spec/helpers/testing-library.tsx | 1 +
.../src/SqlLab/components/AppLayout/index.tsx | 2 +-
.../ColumnElement/ColumnElement.test.tsx | 10 +-
.../EditorWrapper/EditorWrapper.test.tsx | 28 +-
.../EditorWrapper/useAnnotations.test.ts | 8 +-
.../components/EditorWrapper/useKeywords.test.ts | 8 +-
.../components/KeyboardShortcutButton/index.tsx | 4 +-
.../src/SqlLab/components/PopEditorTab/index.tsx | 4 +-
.../src/SqlLab/components/QueryTable/index.tsx | 25 +-
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 223 +-
.../src/SqlLab/components/ResultSet/index.tsx | 86 +-
.../components/RunQueryActionButton/index.tsx | 8 +-
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 39 +-
.../ShareSqlLabQuery/ShareSqlLabQuery.test.tsx | 19 +
.../SqlLab/components/ShareSqlLabQuery/index.tsx | 1 +
.../src/SqlLab/components/SouthPane/index.tsx | 2 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 5 +-
.../SqlEditorTopBar/useDatabaseSelector.test.ts | 2 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 27 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 141 +-
.../SqlLab/components/TableExploreTree/index.tsx | 147 +-
.../components/TableExploreTree/useTreeData.ts | 136 +-
.../src/SqlLab/components/TablePreview/index.tsx | 2 +-
superset-frontend/src/SqlLab/fixtures.ts | 2 +-
.../hooks/useQueryEditor/useQueryEditor.test.ts | 2 +-
.../src/SqlLab/reducers/getInitialState.test.ts | 1 +
...ckglLayerVisibilityCustomizationPlugin.test.tsx | 107 +-
.../DeckglLayerVisibilityCustomizationPlugin.tsx | 82 +-
.../DeckglLayerVisibility}/images/thumbnail.png | Bin
.../components/DeckglLayerVisibility/index.ts | 3 +-
.../components/DeckglLayerVisibility/types.ts | 26 +-
.../useDeckLayerMetadata.test.ts | 84 +-
.../DeckglLayerVisibility/useDeckLayerMetadata.ts | 3 +-
.../src/components/AlteredSliceTag/utils/index.ts | 4 +-
superset-frontend/src/components/Chart/Chart.tsx | 16 +-
.../Chart/ChartContextMenu/useContextMenu.test.tsx | 74 +-
.../components/Chart/DrillBy/DrillByModal.test.tsx | 75 +
.../src/components/Chart/DrillBy/DrillByModal.tsx | 65 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 6 +-
.../Chart/DrillBy/useResultsTableView.test.ts | 2 +-
.../Chart/DrillBy/useResultsTableView.tsx | 9 +
.../Chart/DrillDetail/DownloadDropdown.test.tsx | 57 +
.../Chart/DrillDetail/DownloadDropdown.tsx | 82 +
.../Chart/DrillDetail/DrillDetailPane.test.tsx | 67 +-
.../Chart/DrillDetail/DrillDetailPane.tsx | 78 +-
.../DrillDetailTableControls.stories.tsx | 5 +
.../DrillDetail/DrillDetailTableControls.test.tsx | 13 +-
.../Chart/DrillDetail/DrillDetailTableControls.tsx | 56 +-
.../Chart/useDrillDetailMenuItems/index.tsx | 2 +-
.../CopyToClipboard/CopyToClipboard.test.tsx | 24 +
.../src/components/CopyToClipboard/index.tsx | 20 +-
.../src/components/CopyToClipboard/types.ts | 1 +
.../src/components/DatabaseSelector/index.tsx | 34 +-
.../ChangeDatasourceModal.test.tsx | 34 +
.../Datasource/ChangeDatasourceModal/index.tsx | 50 +-
.../DatasourceModal/DatasourceModal.test.tsx | 27 +-
.../FoldersEditor/hooks/useDragHandlers.test.ts | 2 +-
.../DatasourceEditor/DatasourceEditor.tsx | 4 +-
.../Datasource/components/Field/index.tsx | 2 +-
.../src/components/DynamicPlugins/index.tsx | 13 +-
.../ErrorMessage/DatasetNotFoundErrorMessage.tsx | 3 +-
.../src/components/FilterableTable/index.tsx | 20 +-
.../FilterableTable/useCellContentParser.test.ts | 2 +-
.../src/components/GridTable/Header.tsx | 10 +-
.../src/components/GridTable/index.tsx | 11 +-
.../src/components/ListView/ActionsBar.tsx | 2 +-
.../src/components/ListView/Filters/index.tsx | 10 +-
.../src/components/ListView/ListView.tsx | 32 +-
superset-frontend/src/components/ListView/types.ts | 2 +-
.../src/components/Modal/StandardModal.tsx | 2 +-
.../components/Modal/useModalValidation.test.ts | 2 +-
.../ResizableSidebar/useStoredSidebarWidth.test.ts | 2 +-
.../useStreamingExport.test.ts | 3 +-
.../actions/chartCustomizationActions.test.ts | 273 +
.../dashboard/actions/chartCustomizationActions.ts | 9 +-
superset-frontend/src/dashboard/actions/hydrate.ts | 10 +-
.../components/AddSliceCard/AddSliceCard.tsx | 3 +-
.../DashboardBuilder/DashboardBuilder.tsx | 9 +-
.../DashboardBuilder/DashboardContainer.test.tsx | 423 +-
.../DashboardBuilder/DashboardContainer.tsx | 50 +-
.../src/dashboard/components/DashboardGrid.tsx | 2 +-
.../dashboard/components/Header/Header.test.tsx | 16 +
.../Header/useHeaderActionsDropdownMenu.tsx | 3 +
.../dashboard/components/PropertiesModal/index.tsx | 2 +-
.../src/dashboard/components/SliceAdder.tsx | 3 +-
.../components/SliceHeaderControls/index.tsx | 2 +-
.../gridComponents/ChartHolder/ChartHolder.tsx | 3 +-
.../components/gridComponents/Column/Column.tsx | 6 +-
.../DynamicComponent/DynamicComponent.tsx | 4 +-
.../gridComponents/Header/Header.test.tsx | 1 +
.../gridComponents/Markdown/Markdown.test.tsx | 46 +-
.../components/gridComponents/Row/Row.tsx | 4 +-
.../new/DraggableNewComponent.test.tsx | 1 +
.../DownloadMenuItems/DownloadMenuItems.test.tsx | 112 +-
.../components/menu/DownloadMenuItems/index.tsx | 29 +-
.../nativeFilters/ConfigModal/SharedStyles.tsx | 1 +
.../useCrossFiltersScopingModal.test.ts | 6 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 17 +-
.../FilterBar/FilterBarSettings/index.tsx | 4 +-
.../FilterControls/FilterControl.test.tsx | 99 +
.../FilterBar/FilterControls/FilterControl.tsx | 7 +
.../FilterControls/FilterControlShared.test.tsx} | 26 +-
.../FilterControls/FilterControlShared.tsx | 24 +-
.../FilterBar/FilterControls/FilterControls.tsx | 8 +-
.../FilterBar/FilterControls/FilterDivider.tsx | 2 +-
.../FilterControls/FilterValue.timeGrain.test.ts | 60 +
.../FilterBar/FilterControls/FilterValue.tsx | 109 +-
.../FilterBar/FilterControls/GroupByFilterCard.tsx | 16 +-
.../FilterBar/FilterControls/state.test.ts | 182 +
.../FilterBar/FilterControls/state.ts | 40 +-
.../ConfigModalContent/ConfigModalContent.tsx | 25 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 112 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 1 +
.../FiltersConfigForm/DatasetSelect.tsx | 11 +-
.../FiltersConfigForm/FilterScope/FilterScope.tsx | 2 +-
.../FiltersConfigForm/FilterScope/utils.test.ts | 81 +-
.../FiltersConfigForm/FilterScope/utils.ts | 12 +
.../FiltersConfigForm/FiltersConfigForm.tsx | 152 +-
.../FiltersConfigForm/TimeGrainPreFilter.test.tsx | 203 +
.../FiltersConfigForm/getControlItemsMap.tsx | 15 +-
.../FiltersConfigForm/utils.test.ts | 27 +
.../FiltersConfigModal/FiltersConfigForm/utils.ts | 10 +
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 55 +
.../transformers/filterTransformer.ts | 8 +-
.../nativeFilters/FiltersConfigModal/types.ts | 1 +
.../nativeFilters/FiltersConfigModal/utils.ts | 3 +
.../components/nativeFilters/dependencyGraph.ts | 75 +
.../components/nativeFilters/state.test.ts | 100 +-
.../dashboard/components/nativeFilters/state.ts | 8 +-
.../components/nativeFilters/utils.test.ts | 21 +-
.../dashboard/components/nativeFilters/utils.ts | 5 +
.../components/resizable/ResizableContainer.tsx | 4 +-
.../dashboard/contexts/AutoRefreshContext.test.tsx | 2 +-
.../hooks/useAutoRefreshTabPause.test.tsx | 2 +-
.../src/dashboard/hooks/useCurrentTime.test.ts | 2 +-
.../dashboard/hooks/useDownloadScreenshot.test.ts | 173 +
.../src/dashboard/hooks/useDownloadScreenshot.ts | 25 +-
.../src/dashboard/hooks/useTabVisibility.test.ts | 2 +-
.../src/dashboard/reducers/dashboardInfo.test.ts | 145 +
.../src/dashboard/reducers/dashboardInfo.ts | 12 +-
.../src/dashboard/reducers/nativeFilters.test.ts | 94 +-
.../util/charts/getFormDataWithExtraFilters.ts | 45 +-
.../util/getFormDataWithExtraFilters.test.ts | 719 +-
.../util/migrateChartCustomization.test.ts | 83 +
.../dashboard/util/migrateChartCustomization.ts | 20 +-
.../src/dashboard/util/permissionUtils.test.ts | 1 +
superset-frontend/src/dataMask/reducer.test.ts | 67 +
superset-frontend/src/dataMask/reducer.ts | 5 +-
.../src/embedded/EmbeddedContextProviders.tsx | 5 +-
superset-frontend/src/embedded/index.tsx | 28 +-
.../src/explore/actions/exploreActions.test.ts | 105 +
.../src/explore/actions/exploreActions.ts | 85 +
.../src/explore/actions/hydrateExplore.ts | 4 +-
.../src/explore/actions/saveModalActions.ts | 7 +-
.../src/explore/components/ControlHeader.tsx | 2 +
.../CopyToClipboardButton.test.tsx | 28 +
.../explore/components/DataTableControl/index.tsx | 56 +-
.../DataTableControl/useFilteredTableData.test.ts | 2 +-
.../DataTableControl/useTableColumns.test.ts | 2 +-
.../components/DataTableControls.tsx | 45 +-
.../DataTablesPane/components/SamplesPane.tsx | 6 +-
.../components/SingleQueryResultPane.tsx | 6 +
.../DataTablesPane/test/DataTablesPane.test.tsx | 43 +-
.../src/explore/components/DataTablesPane/types.ts | 11 +-
.../DatasourcePanelDragOption.test.tsx | 4 +-
.../DatasourcePanelDragOption/index.tsx | 40 +-
.../DatasourcePanel/DatasourcePanelItem.test.tsx | 2 +-
.../explore/components/DatasourcePanel/index.tsx | 6 +-
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 6 +-
.../components/ExploreChartHeader/index.tsx | 171 +-
.../explore/components/ExploreChartPanel/index.tsx | 4 +-
.../explore/components/ExploreContainer/index.tsx | 3 +-
.../components/ExploreViewContainer/index.tsx | 48 +-
.../components/StashFormDataContainer/index.tsx | 3 +-
.../AnnotationLayerControl/AnnotationLayer.tsx | 2 +-
.../controls/AnnotationLayerControl/index.tsx | 2 +-
.../controls/CollectionControl/index.tsx | 419 +-
.../ColumnConfigConstants.test.tsx} | 28 +-
.../ConditionalFormattingControl.test.tsx | 30 +-
.../ConditionalFormattingControl.tsx | 4 +-
.../FormattingPopoverContent.tsx | 2 +-
.../ContourControl/ContourPopoverTrigger.tsx | 2 +-
.../ControlPopover/ControlPopover.test.tsx | 4 +-
.../controls/ControlPopover/ControlPopover.tsx | 4 +-
.../controls/CurrencyControl/CurrencyControl.tsx | 4 +-
.../components/controls/CustomListItem/index.tsx | 61 +-
.../controls/DatasourceControl/index.tsx | 51 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 2 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 55 +-
.../ColumnSelectPopoverTrigger.tsx | 2 +-
.../DndAdhocFilterOption.tsx | 6 +-
.../DndColumnMetricSelect.tsx | 20 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 25 +-
.../DndColumnSelectPopoverTitle.tsx | 2 +-
.../DndFilterSelect.test.tsx | 2 +-
.../DndColumnSelectControl/DndFilterSelect.tsx | 1 +
.../DndMetricSelect.test.tsx | 20 +-
.../DndColumnSelectControl/DndMetricSelect.tsx | 47 +-
.../controls/DndColumnSelectControl/Option.tsx | 2 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 34 +-
.../AdhocFilterPopoverTrigger/index.tsx | 5 +-
.../utils/useDatePickerInAdhocfilter.test.ts | 2 +-
.../utils/useGetTimeRangeLabel.test.ts | 22 +-
.../AdhocMetricEditPopover.test.tsx | 80 +-
.../MetricControl/AdhocMetricEditPopover/index.tsx | 39 +-
.../MetricControl/AdhocMetricOption.test.tsx | 6 +-
.../MetricControl/AdhocMetricPopoverTrigger.tsx | 2 +-
.../controls/MetricControl/MetricsControl.test.tsx | 9 +-
.../controls/NumberControl/NumberControl.test.tsx | 15 +
.../components/controls/NumberControl/index.tsx | 6 +
.../useExploreAdditionalActionsMenu/index.tsx | 57 +-
superset-frontend/src/explore/controls.tsx | 3 +-
.../src/explore/reducers/exploreReducer.ts | 20 +
superset-frontend/src/explore/types.ts | 5 +
.../src/features/alerts/AlertReportModal.tsx | 8 +-
.../alerts/components/NotificationMethod.tsx | 2 +-
.../src/features/charts/ChartCard.tsx | 7 +-
.../cssTemplates/CssTemplateModal.test.tsx | 104 +
.../src/features/cssTemplates/CssTemplateModal.tsx | 1 +
.../databases/DatabaseModal/index.test.tsx | 12 +-
.../datasets/hooks/useDatasetLists.test.ts | 2 +-
.../metadataBar/useDatasetMetadataBar.test.tsx | 2 +-
.../src/features/home/ActivityTable.tsx | 29 +-
.../src/features/home/ChartTable.test.tsx | 72 +-
superset-frontend/src/features/home/ChartTable.tsx | 26 +-
superset-frontend/src/features/home/Menu.tsx | 21 +-
.../src/features/home/RightMenu.test.tsx | 9 +-
superset-frontend/src/features/home/SubMenu.tsx | 145 +-
superset-frontend/src/features/home/types.ts | 2 +
.../ReportModal/HeaderReportDropdown/index.tsx | 2 +-
.../src/features/reports/ReportModal/index.tsx | 2 +-
.../src/features/roles/RoleListEditModal.test.tsx | 5 +
.../src/features/roles/RoleListEditModal.tsx | 76 +-
.../semanticLayers/SemanticLayerModal.test.tsx | 130 +
.../features/semanticLayers/SemanticLayerModal.tsx | 408 +
.../semanticLayers/jsonFormsHelpers.test.ts | 150 +
.../features/semanticLayers/jsonFormsHelpers.tsx | 386 +
.../src/features/semanticLayers/label.ts | 65 +
.../semanticViews/AddSemanticViewModal.test.tsx | 264 +
.../semanticViews/AddSemanticViewModal.tsx | 541 +
.../semanticViews/SemanticViewEditModal.test.tsx | 267 +
.../semanticViews/SemanticViewEditModal.tsx | 241 +
.../src/features/users/UserListModal.tsx | 259 +-
.../components/Select/SelectFilterPlugin.tsx | 1 +
.../TimeGrain/TimeGrainFilterPlugin.test.tsx | 145 +
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 15 +-
.../TimeGrainPreFilter.integration.test.tsx | 165 +
.../TimeGrainsTransformer.integration.test.ts | 116 +
.../src/filters/components/TimeGrain/types.ts | 1 +
.../src/hooks/apiResources/apiResources.test.ts | 2 +-
.../src/hooks/apiResources/dashboards.test.ts | 19 +-
.../hooks/apiResources/databaseFunctions.test.ts | 6 +-
.../src/hooks/apiResources/datasets.test.ts | 89 +-
.../src/hooks/apiResources/queries.test.ts | 19 +-
.../hooks/apiResources/queryValidations.test.ts | 6 +-
.../src/hooks/apiResources/schemas.test.ts | 10 +-
.../src/hooks/apiResources/sqlEditorTabs.test.ts | 47 +-
.../src/hooks/apiResources/sqlLab.test.ts | 19 +-
.../src/hooks/apiResources/tables.test.ts | 12 +-
.../hooks/useBeforeUnload/useBeforeUnload.test.ts | 2 +-
.../hooks/useConfirmModal/useConfirmModal.test.tsx | 98 +-
.../src/hooks/useDebounceValue.test.ts | 2 +-
.../src/hooks/usePermissions.test.tsx | 2 +-
superset-frontend/src/hooks/usePermissions.ts | 26 +-
.../useUnsavedChangesPrompt.test.tsx | 19 +-
superset-frontend/src/logger/useLogAction.test.ts | 2 +-
.../src/pages/AlertReportList/index.tsx | 6 +-
.../src/pages/AnnotationLayerList/index.tsx | 2 +-
superset-frontend/src/pages/Chart/Chart.test.tsx | 92 +
superset-frontend/src/pages/Chart/index.tsx | 38 +-
.../src/pages/ChartCreation/ChartCreation.test.tsx | 2 +
.../src/pages/ChartCreation/index.tsx | 19 +-
superset-frontend/src/pages/ChartList/index.tsx | 13 +-
.../src/pages/DashboardList/index.tsx | 4 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 501 +-
.../DatasetList/DatasetList.behavior.test.tsx | 39 +-
.../DatasetList/DatasetList.integration.test.tsx | 23 +-
.../DatasetList/DatasetList.listview.test.tsx | 233 +-
.../DatasetList/DatasetList.permissions.test.tsx | 17 +-
.../src/pages/DatasetList/DatasetList.test.tsx | 78 +-
.../pages/DatasetList/DatasetList.testHelpers.tsx | 28 +-
superset-frontend/src/pages/DatasetList/index.tsx | 809 +-
.../src/pages/FileHandler/index.test.tsx | 30 +-
superset-frontend/src/pages/GroupsList/index.tsx | 4 +-
superset-frontend/src/pages/RolesList/index.tsx | 6 +-
.../src/pages/SqlLab/LocationContext.tsx | 4 +-
superset-frontend/src/pages/SqlLab/SqlLab.test.tsx | 1 +
.../src/pages/UserInfo/UserInfo.test.tsx | 13 +-
superset-frontend/src/pages/UserInfo/index.tsx | 5 +-
superset-frontend/src/setup/setupApp.ts | 8 +-
superset-frontend/src/theme/ThemeController.ts | 2 +-
.../src/theme/hooks/useThemeValidation.test.ts | 2 +-
.../src/theme/tests/ThemeProvider.test.tsx | 2 +-
superset-frontend/src/types/Dataset.ts | 11 +-
superset-frontend/src/types/bootstrapTypes.ts | 1 +
superset-frontend/src/utils/copy.ts | 63 +-
superset-frontend/src/utils/downloadAsImage.tsx | 3 +-
superset-frontend/src/utils/localStorageHelpers.ts | 2 +
superset-frontend/src/views/App.tsx | 8 +
superset-frontend/src/views/CRUD/hooks.test.tsx | 2 +-
superset-frontend/src/views/CRUD/hooks.ts | 2 +-
superset-frontend/src/views/CRUD/utils.tsx | 2 +
.../src/views/RootContextProviders.tsx | 5 +-
superset-frontend/src/views/index.tsx | 5 +-
superset-frontend/src/views/menu.tsx | 7 +-
superset-frontend/webpack.config.js | 24 +-
superset-frontend/webpack.proxy-config.js | 4 +-
superset-websocket/package-lock.json | 392 +-
superset-websocket/package.json | 10 +-
superset/advanced_data_type/api.py | 10 +-
superset/annotation_layers/annotations/api.py | 14 +-
superset/annotation_layers/api.py | 10 +-
superset/charts/api.py | 41 +-
superset/charts/data/api.py | 6 +-
superset/commands/dashboard/update.py | 4 +
superset/commands/database/utils.py | 3 +-
.../commands/datasource}/__init__.py | 0
superset/commands/datasource/list.py | 245 +
superset/commands/explore/get.py | 6 +-
superset/commands/importers/v1/assets.py | 29 +-
.../commands/semantic_layer}/__init__.py | 0
superset/commands/semantic_layer/create.py | 104 +
superset/commands/semantic_layer/delete.py | 115 +
superset/commands/semantic_layer/exceptions.py | 76 +
superset/commands/semantic_layer/update.py | 126 +
superset/common/query_object.py | 21 +-
superset/config.py | 16 +-
superset/connectors/sqla/models.py | 82 +-
superset/core/api/core_api_injection.py | 35 +
superset/css_templates/api.py | 4 +-
superset/daos/chart.py | 50 +-
superset/daos/dashboard.py | 24 +-
superset/daos/dataset.py | 25 +-
superset/daos/datasource.py | 160 +-
superset/daos/semantic_layer.py | 220 +
superset/dashboards/api.py | 34 +-
superset/databases/api.py | 10 +-
superset/datasets/api.py | 20 +-
superset/datasets/datetime_format_detector.py | 11 +-
superset/datasource/api.py | 183 +-
superset/datasource/schemas.py | 155 +
superset/db_engine_specs/base.py | 12 +-
superset/db_engine_specs/gsheets.py | 29 +-
superset/db_engine_specs/mysql.py | 9 +-
superset/db_engine_specs/trino.py | 25 +-
superset/exceptions.py | 21 +
superset/explorables/base.py | 168 +-
superset/extensions/__init__.py | 10 +
superset/initialization/__init__.py | 11 +-
superset/jinja_context.py | 37 +
superset/mcp_service/CLAUDE.md | 760 +-
superset/mcp_service/app.py | 156 +-
superset/mcp_service/auth.py | 98 +-
superset/mcp_service/chart/ascii_charts.py | 863 +
superset/mcp_service/chart/chart_helpers.py | 81 +
superset/mcp_service/chart/chart_utils.py | 138 +-
superset/mcp_service/chart/schemas.py | 649 +-
superset/mcp_service/chart/tool/__init__.py | 2 +
superset/mcp_service/chart/tool/generate_chart.py | 88 +-
superset/mcp_service/chart/tool/get_chart_data.py | 293 +-
superset/mcp_service/chart/tool/get_chart_info.py | 85 +-
.../mcp_service/chart/tool/get_chart_preview.py | 1001 +-
superset/mcp_service/chart/tool/get_chart_sql.py | 616 +
.../chart/tool/get_chart_type_schema.py | 25 +-
superset/mcp_service/chart/tool/list_charts.py | 44 +-
superset/mcp_service/chart/tool/update_chart.py | 327 +-
.../mcp_service/chart/tool/update_chart_preview.py | 36 +-
.../chart/validation/dataset_validator.py | 3 +-
superset/mcp_service/chart/validation/pipeline.py | 84 +-
.../chart/validation/runtime/__init__.py | 2 +
.../validation/runtime/chart_type_suggester.py | 8 +
.../chart/validation/runtime/format_validator.py | 3 +-
.../chart/validation/schema_validator.py | 17 +-
superset/mcp_service/common/cache_schemas.py | 67 +-
superset/mcp_service/common/schema_discovery.py | 25 +-
superset/mcp_service/dashboard/schemas.py | 487 +-
.../tool/add_chart_to_existing_dashboard.py | 81 +-
.../dashboard/tool/generate_dashboard.py | 39 +-
.../dashboard/tool/get_dashboard_info.py | 68 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 8 +-
superset/mcp_service/database/schemas.py | 28 +-
.../mcp_service/database/tool/get_database_info.py | 14 +
.../mcp_service/database/tool/list_databases.py | 27 +-
superset/mcp_service/dataset/schemas.py | 449 +-
superset/mcp_service/dataset/tool/__init__.py | 4 +
.../dataset/tool/create_virtual_dataset.py | 137 +
.../mcp_service/dataset/tool/get_dataset_info.py | 14 +
superset/mcp_service/dataset/tool/list_datasets.py | 28 +-
superset/mcp_service/dataset/tool/query_dataset.py | 489 +
.../explore/tool/generate_explore_link.py | 23 +-
superset/mcp_service/mcp_config.py | 29 +-
superset/mcp_service/mcp_core.py | 297 +-
superset/mcp_service/middleware.py | 216 +-
superset/mcp_service/privacy.py | 209 +
superset/mcp_service/server.py | 336 +-
superset/mcp_service/sql_lab/schemas.py | 29 +
superset/mcp_service/sql_lab/tool/execute_sql.py | 24 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 88 +-
superset/mcp_service/system/schemas.py | 96 +-
superset/mcp_service/system/tool/__init__.py | 2 +
.../mcp_service/system/tool/generate_bug_report.py | 325 +
.../mcp_service/system/tool/get_instance_info.py | 16 +
superset/mcp_service/system/tool/get_schema.py | 56 +-
superset/mcp_service/utils/__init__.py | 5 +
superset/mcp_service/utils/error_builder.py | 12 +
superset/mcp_service/utils/error_sanitization.py | 109 +
superset/mcp_service/utils/permissions_utils.py | 17 +-
superset/mcp_service/utils/sanitization.py | 164 +
superset/mcp_service/utils/schema_utils.py | 375 +-
superset/mcp_service/utils/token_utils.py | 4 +-
...6_33d7e0e21daa_add_semantic_layers_and_views.py | 168 +
superset/models/helpers.py | 38 +-
superset/models/sql_lab.py | 34 +-
superset/queries/api.py | 11 +-
superset/queries/saved_queries/api.py | 6 +-
superset/queries/schemas.py | 1 +
superset/reports/api.py | 12 +-
superset/reports/logs/api.py | 12 +-
superset/reports/models.py | 8 +-
superset/row_level_security/api.py | 4 +-
superset/security/api.py | 4 +-
superset/security/manager.py | 319 +-
.../semantic_layers}/__init__.py | 0
superset/semantic_layers/api.py | 1147 +
superset/semantic_layers/labels.py | 105 +
superset/semantic_layers/mapper.py | 912 +
superset/semantic_layers/models.py | 556 +
.../utils.py => semantic_layers/registry.py} | 9 +-
superset/semantic_layers/schemas.py | 45 +
superset/sql/dialects/__init__.py | 3 +-
.../__init__.py => sql/dialects/opensearch.py} | 21 +-
superset/sql/parse.py | 6 +-
superset/sql_validators/__init__.py | 3 +-
superset/sql_validators/sqlite.py | 142 +
superset/sqllab/api.py | 68 +-
superset/sqllab/utils.py | 6 +-
superset/superset_typing.py | 51 +-
superset/tags/api.py | 6 +-
superset/tasks/cache.py | 2 +-
superset/themes/api.py | 6 +-
.../{ca => cs}/LC_MESSAGES/messages.po | 11114 ++---
superset/translations/fr/LC_MESSAGES/messages.po | 87 +-
superset/translations/ja/LC_MESSAGES/messages.po | 7284 ++-
.../{de => lv}/LC_MESSAGES/messages.po | 11682 +++--
.../translations/pt_BR/LC_MESSAGES/messages.po | 3835 +-
superset/translations/uk/LC_MESSAGES/messages.po | 10465 +++--
superset/utils/cache_keys.py | 54 +
superset/utils/core.py | 37 +-
superset/utils/database.py | 22 +-
superset/utils/log.py | 7 +
superset/utils/oauth2.py | 13 +-
superset/utils/webdriver.py | 6 +-
superset/views/api.py | 4 +-
superset/views/base.py | 23 +-
superset/views/base_api.py | 12 +-
superset/views/datasource/views.py | 11 +-
superset/views/log/api.py | 4 +-
superset/views/utils.py | 1 +
superset/viz.py | 11 +
.../advanced_data_type/api_tests.py | 10 +-
.../annotation_layers/api_tests.py | 28 +-
tests/integration_tests/base_api_tests.py | 12 +-
tests/integration_tests/base_tests.py | 4 +-
tests/integration_tests/charts/api_tests.py | 80 +-
tests/integration_tests/css_templates/api_tests.py | 18 +-
tests/integration_tests/dashboards/api_tests.py | 74 +-
tests/integration_tests/dashboards/base_case.py | 4 +-
.../dashboards/security/security_dataset_tests.py | 4 +-
.../dashboards/test_update_emoji.py | 111 +
tests/integration_tests/databases/api_tests.py | 46 +-
tests/integration_tests/datasets/api_tests.py | 38 +-
tests/integration_tests/datasource/api_tests.py | 52 +
tests/integration_tests/datasource_tests.py | 16 +-
tests/integration_tests/event_logger_tests.py | 61 +
tests/integration_tests/log_api_tests.py | 14 +-
tests/integration_tests/queries/api_tests.py | 96 +-
.../queries/saved_queries/api_tests.py | 42 +-
tests/integration_tests/query_context_tests.py | 226 +-
tests/integration_tests/reports/api_tests.py | 26 +-
.../security/row_level_security_tests.py | 16 +-
tests/integration_tests/security_tests.py | 4 +-
tests/integration_tests/sql_lab/api_tests.py | 39 +-
tests/integration_tests/sqllab_tests.py | 6 +-
tests/integration_tests/strategy_tests.py | 20 +-
tests/integration_tests/tags/api_tests.py | 10 +-
tests/integration_tests/tasks/api_tests.py | 10 +-
.../integration_tests/test_granular_export_api.py | 275 +
tests/integration_tests/themes/api_tests.py | 18 +-
tests/integration_tests/users/api_tests.py | 2 +
tests/unit_tests/charts/test_chart_data_api.py | 71 +
tests/unit_tests/commands/databases/utils_test.py | 6 +-
.../unit_tests/commands/datasource}/__init__.py | 0
tests/unit_tests/commands/datasource/list_test.py | 162 +
.../commands/importers/v1/assets_test.py | 125 +
.../commands/semantic_layer}/__init__.py | 0
.../commands/semantic_layer/create_test.py | 230 +
.../commands/semantic_layer/delete_test.py | 164 +
.../commands/semantic_layer/exceptions_test.py | 91 +
.../commands/semantic_layer/update_test.py | 326 +
.../common/test_query_context_processor.py | 227 +
.../dashboards/commands/importers/v1/utils_test.py | 85 +
tests/unit_tests/databases/api_test.py | 4 +-
.../datasets/test_datetime_format_detector.py | 57 +
tests/unit_tests/datasource/dao_tests.py | 29 +
tests/unit_tests/db_engine_specs/test_base.py | 328 +-
tests/unit_tests/db_engine_specs/test_gsheets.py | 54 +-
tests/unit_tests/db_engine_specs/test_mysql.py | 41 +
tests/unit_tests/db_engine_specs/test_trino.py | 58 +
tests/unit_tests/jinja_context_test.py | 95 +
.../mcp_service/chart/test_chart_helpers.py | 108 +
.../mcp_service/chart/test_chart_schemas.py | 170 +-
.../mcp_service/chart/test_chart_utils.py | 112 +
.../mcp_service/chart/tool/test_generate_chart.py | 121 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 132 +-
.../mcp_service/chart/tool/test_get_chart_info.py | 255 +
.../chart/tool/test_get_chart_preview.py | 209 +-
.../mcp_service/chart/tool/test_get_chart_sql.py | 709 +
.../chart/tool/test_get_chart_type_schema.py | 18 +
.../mcp_service/chart/tool/test_list_charts.py | 97 +-
.../mcp_service/chart/tool/test_update_chart.py | 498 +-
.../chart/tool/test_update_chart_preview.py | 60 +-
.../validation/test_column_name_normalization.py | 13 +
.../validation/test_pipeline_error_surface.py | 308 +
.../dashboard/test_dashboard_schemas.py | 296 +-
.../tool/test_add_chart_to_existing_dashboard.py | 297 +
.../dashboard/tool/test_dashboard_generation.py | 89 +-
.../dashboard/tool/test_dashboard_tools.py | 717 +-
.../database/tool/test_database_tools.py | 134 +-
.../mcp_service/dataset/tool/test_dataset_tools.py | 604 +-
.../mcp_service/dataset/tool/test_query_dataset.py | 831 +
.../mcp_service/sql_lab/tool/test_execute_sql.py | 153 +
.../sql_lab/tool/test_open_sql_lab_with_context.py | 305 +
.../system/tool/test_generate_bug_report.py | 455 +
.../system/tool/test_get_current_user.py | 194 +-
.../mcp_service/system/tool/test_get_schema.py | 50 +
.../mcp_service/system/tool/test_mcp_core.py | 251 +
tests/unit_tests/mcp_service/test_auth_api_key.py | 44 +-
.../mcp_service/test_auth_user_resolution.py | 37 +
.../mcp_service/test_g_user_race_condition.py | 164 +
tests/unit_tests/mcp_service/test_mcp_config.py | 13 +
tests/unit_tests/mcp_service/test_mcp_core.py | 314 +
tests/unit_tests/mcp_service/test_middleware.py | 589 +
.../mcp_service/test_middleware_logging.py | 157 +
tests/unit_tests/mcp_service/test_privacy.py | 108 +
.../mcp_service/test_schema_discovery.py | 53 +-
.../mcp_service/test_tool_search_transform.py | 578 +-
.../mcp_service/utils/test_permissions_utils.py | 73 +
.../mcp_service/utils/test_sanitization.py | 346 +
.../mcp_service/utils/test_schema_utils.py | 517 +-
.../mcp_service/utils/test_token_utils.py | 2 +
tests/unit_tests/models/core_test.py | 6 +-
tests/unit_tests/models/helpers_test.py | 355 +-
tests/unit_tests/queries/query_object_test.py | 55 +-
tests/unit_tests/reports/api_test.py | 6 +-
tests/unit_tests/security/api_test.py | 2 +-
tests/unit_tests/semantic_layers/api_test.py | 2321 +
tests/unit_tests/semantic_layers/dao_test.py | 85 +
.../unit_tests/semantic_layers/decorators_test.py | 103 +
tests/unit_tests/semantic_layers/labels_test.py | 52 +
tests/unit_tests/semantic_layers/mapper_test.py | 2743 ++
tests/unit_tests/semantic_layers/models_test.py | 1267 +
tests/unit_tests/semantic_layers/schemas_test.py | 296 +
tests/unit_tests/sql/dialects/opensearch_tests.py | 240 +
tests/unit_tests/sql/parse_tests.py | 14 +-
tests/unit_tests/sql_lab_test.py | 2 +-
tests/unit_tests/sql_validators/#sqlite_test.py# | 303 +
tests/unit_tests/sql_validators/sqlite_test.py | 303 +
tests/unit_tests/test_viz_cache_key.py | 111 +
tests/unit_tests/utils/oauth2_tests.py | 40 +
tests/unit_tests/utils/test_core.py | 42 +
tests/unit_tests/utils/test_database.py | 53 +
.../utils/test_impersonation_cache_key.py | 107 +
tests/unit_tests/utils/webdriver_test.py | 108 +
tests/unit_tests/views/test_base.py | 139 +
958 files changed, 96867 insertions(+), 56053 deletions(-)
create mode 100644 docs/admin_docs/configuration/aws-iam.mdx
create mode 100644 docs/docs/security/granular-export-controls.mdx
create mode 100644 docs/docs/using-superset/embedding.mdx
create mode 100644 docs/docs/using-superset/handlebars-chart.mdx
create mode 100644 docs/src/components/GetStartedSplitButton.tsx
create mode 100644 docs/src/theme/NavbarItem/ComponentTypes.tsx
copy superset-frontend/src/dashboard/util/componentIsResizable.ts => docs/src/theme/NavbarItem/GetStartedSplitNavbarItem.tsx (73%)
create mode 100644 docs/static/img/logos/hifadih.png
create mode 100644 superset-core/src/superset_core/semantic_layers/config.py
create mode 100644 superset-core/src/superset_core/semantic_layers/daos.py
create mode 100644 superset-core/src/superset_core/semantic_layers/decorators.py
create mode 100644 superset-core/src/superset_core/semantic_layers/layer.py
create mode 100644 superset-core/src/superset_core/semantic_layers/models.py
create mode 100644 superset-core/src/superset_core/semantic_layers/types.py
create mode 100644 superset-core/src/superset_core/semantic_layers/view.py
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/_skip.sourcePanel.index.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/query.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/sqllab.helper.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/sqllab/tabs.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/src/components/DynamicEditableTitle/DynamicEditableTitle.regression.test.tsx
create mode 100644 superset-frontend/packages/superset-ui-core/test/utils/copy.test.ts
create mode 100644 superset-frontend/playwright/components/core/AgGrid.ts
copy superset-frontend/{src/components/ListView/DashboardCrossLinks.tsx => playwright/components/core/EditableTabs.ts} (51%)
copy superset-frontend/{packages/superset-ui-core/src/time-format/types.ts => playwright/components/core/Popover.ts} (50%)
copy superset-frontend/{spec/helpers/Cache.ts => playwright/components/modals/SaveDatasetModal.ts} (57%)
copy superset-frontend/{spec/helpers/IntersectionObserver.ts => playwright/components/modals/SaveQueryModal.ts} (59%)
delete mode 100644 superset-frontend/playwright/fixtures/dataset_export.zip
copy superset-frontend/{src/types/SqlExpression.ts => playwright/helpers/api/savedQuery.ts} (54%)
copy superset-frontend/playwright/helpers/api/{theme.ts => sqllab.ts} (51%)
create mode 100644 superset-frontend/playwright/pages/SqlLabPage.ts
create mode 100644 superset-frontend/playwright/tests/sqllab/sqllab.spec.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/reconcileColumnState.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/reconcileColumnState.ts
copy superset-frontend/{src/components/AuditInfo/types.ts => plugins/plugin-chart-echarts/src/BigNumber/constants.tsx} (87%)
delete mode 100644 superset-frontend/plugins/plugin-chart-handlebars/README.md
create mode 100644 superset-frontend/plugins/plugin-chart-handlebars/test/plugin/controls.test.ts
copy superset-frontend/{packages/generator-superset/generators/plugin-chart/templates/src => src/chartCustomizations/components/DeckglLayerVisibility}/images/thumbnail.png (100%)
create mode 100644 superset-frontend/src/components/Chart/DrillDetail/DownloadDropdown.test.tsx
create mode 100644 superset-frontend/src/components/Chart/DrillDetail/DownloadDropdown.tsx
create mode 100644 superset-frontend/src/dashboard/actions/chartCustomizationActions.test.ts
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControl.test.tsx
copy superset-frontend/src/{explore/components/DataTableControl/FilterInput.test.tsx => dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControlShared.test.tsx} (59%)
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.timeGrain.test.ts
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/state.test.ts
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/TimeGrainPreFilter.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/dependencyGraph.ts
create mode 100644 superset-frontend/src/dashboard/hooks/useDownloadScreenshot.test.ts
copy superset-frontend/{packages/superset-ui-core/src/components/Slider/Slider.test.tsx => src/explore/components/controls/ColumnConfigControl/ColumnConfigConstants.test.tsx} (59%)
create mode 100644 superset-frontend/src/features/cssTemplates/CssTemplateModal.test.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/SemanticLayerModal.test.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/SemanticLayerModal.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/jsonFormsHelpers.test.ts
create mode 100644 superset-frontend/src/features/semanticLayers/jsonFormsHelpers.tsx
create mode 100644 superset-frontend/src/features/semanticLayers/label.ts
create mode 100644 superset-frontend/src/features/semanticViews/AddSemanticViewModal.test.tsx
create mode 100644 superset-frontend/src/features/semanticViews/AddSemanticViewModal.tsx
create mode 100644 superset-frontend/src/features/semanticViews/SemanticViewEditModal.test.tsx
create mode 100644 superset-frontend/src/features/semanticViews/SemanticViewEditModal.tsx
create mode 100644 superset-frontend/src/filters/components/TimeGrain/TimeGrainFilterPlugin.test.tsx
create mode 100644 superset-frontend/src/filters/components/TimeGrain/TimeGrainPreFilter.integration.test.tsx
create mode 100644 superset-frontend/src/filters/components/TimeGrain/TimeGrainsTransformer.integration.test.ts
copy {superset-core/src/superset_core/common => superset/commands/datasource}/__init__.py (100%)
create mode 100644 superset/commands/datasource/list.py
copy {superset-core/src/superset_core/common => superset/commands/semantic_layer}/__init__.py (100%)
create mode 100644 superset/commands/semantic_layer/create.py
create mode 100644 superset/commands/semantic_layer/delete.py
create mode 100644 superset/commands/semantic_layer/exceptions.py
create mode 100644 superset/commands/semantic_layer/update.py
create mode 100644 superset/daos/semantic_layer.py
create mode 100644 superset/datasource/schemas.py
create mode 100644 superset/mcp_service/chart/ascii_charts.py
create mode 100644 superset/mcp_service/chart/chart_helpers.py
create mode 100644 superset/mcp_service/chart/tool/get_chart_sql.py
create mode 100644 superset/mcp_service/dataset/tool/create_virtual_dataset.py
create mode 100644 superset/mcp_service/dataset/tool/query_dataset.py
create mode 100644 superset/mcp_service/privacy.py
create mode 100644 superset/mcp_service/system/tool/generate_bug_report.py
create mode 100644 superset/mcp_service/utils/error_sanitization.py
create mode 100644 superset/migrations/versions/2025-11-04_11-26_33d7e0e21daa_add_semantic_layers_and_views.py
copy {superset-core/src/superset_core/common => superset/semantic_layers}/__init__.py (100%)
create mode 100644 superset/semantic_layers/api.py
create mode 100644 superset/semantic_layers/labels.py
create mode 100644 superset/semantic_layers/mapper.py
create mode 100644 superset/semantic_layers/models.py
copy superset/{temporary_cache/utils.py => semantic_layers/registry.py} (84%)
create mode 100644 superset/semantic_layers/schemas.py
copy superset/{mcp_service/utils/__init__.py => sql/dialects/opensearch.py} (63%)
create mode 100644 superset/sql_validators/sqlite.py
copy superset/translations/{ca => cs}/LC_MESSAGES/messages.po (50%)
copy superset/translations/{de => lv}/LC_MESSAGES/messages.po (50%)
create mode 100644 superset/utils/cache_keys.py
create mode 100644 tests/integration_tests/dashboards/test_update_emoji.py
create mode 100644 tests/integration_tests/test_granular_export_api.py
create mode 100644 tests/unit_tests/charts/test_chart_data_api.py
copy {superset-core/src/superset_core/common => tests/unit_tests/commands/datasource}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/datasource/list_test.py
copy {superset-core/src/superset_core/common => tests/unit_tests/commands/semantic_layer}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/semantic_layer/create_test.py
create mode 100644 tests/unit_tests/commands/semantic_layer/delete_test.py
create mode 100644 tests/unit_tests/commands/semantic_layer/exceptions_test.py
create mode 100644 tests/unit_tests/commands/semantic_layer/update_test.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_helpers.py
create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_get_chart_info.py
create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_get_chart_sql.py
create mode 100644 tests/unit_tests/mcp_service/chart/validation/test_pipeline_error_surface.py
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_add_chart_to_existing_dashboard.py
create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_query_dataset.py
create mode 100644 tests/unit_tests/mcp_service/sql_lab/tool/test_open_sql_lab_with_context.py
create mode 100644 tests/unit_tests/mcp_service/system/tool/test_generate_bug_report.py
create mode 100644 tests/unit_tests/mcp_service/test_g_user_race_condition.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_core.py
create mode 100644 tests/unit_tests/mcp_service/test_privacy.py
copy superset/migrations/versions/2022-08-31_19-30_291f024254b5_drop_column_allow_multi_schema_metadata_fetch.py => tests/unit_tests/mcp_service/test_schema_discovery.py (51%)
create mode 100644 tests/unit_tests/mcp_service/utils/test_permissions_utils.py
create mode 100644 tests/unit_tests/semantic_layers/api_test.py
create mode 100644 tests/unit_tests/semantic_layers/dao_test.py
create mode 100644 tests/unit_tests/semantic_layers/decorators_test.py
create mode 100644 tests/unit_tests/semantic_layers/labels_test.py
create mode 100644 tests/unit_tests/semantic_layers/mapper_test.py
create mode 100644 tests/unit_tests/semantic_layers/models_test.py
create mode 100644 tests/unit_tests/semantic_layers/schemas_test.py
create mode 100644 tests/unit_tests/sql/dialects/opensearch_tests.py
create mode 100644 tests/unit_tests/sql_validators/#sqlite_test.py#
create mode 100644 tests/unit_tests/sql_validators/sqlite_test.py
create mode 100644 tests/unit_tests/test_viz_cache_key.py
create mode 100644 tests/unit_tests/utils/test_database.py
create mode 100644 tests/unit_tests/utils/test_impersonation_cache_key.py
create mode 100644 tests/unit_tests/views/test_base.py