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/04/16 05:04:05 UTC
(superset) branch fix-echart-save-issue updated (9fcf6d8134d -> f1b8940f5e7)
This is an automated email from the ASF dual-hosted git repository.
jli pushed a change to branch fix-echart-save-issue
in repository https://gitbox.apache.org/repos/asf/superset.git
from 9fcf6d8134d Merge branch 'master' into fix-echart-save-issue
add f832f9b0d5e fix(Timeseries): dedup x axis labels (#38733)
add 6bcc8bf2b25 chore(deps): bump picomatch from 2.3.1 to 2.3.2 in /superset-frontend/cypress-base (#38862)
add 38e82e40845 chore(deps): bump yaml from 1.10.2 to 1.10.3 in /superset-frontend/cypress-base (#38856)
add a5d2324e216 fix(sqllab): invalid treeview folder expansion (#38897)
add dbc25dc5557 fix(ci): resolve failed CodeCov upload for backend tests (#38885)
add d1903afc694 fix(mcp): remove @parse_request decorator for cleaner tool schemas (#38918)
add aa1a69555b3 fix(mcp): prevent GRID_ID injection into ROOT_ID on tabbed dashboards (#38890)
add 89f7e5e7bae fix(mcp): validate dataset exists in generate_explore_link before generating URL (#38951)
add 41d401a879e fix(select): ensure filter dropdown matches input field width (#38886)
add d331a043a3a fix(mcp): prevent PendingRollbackError from poisoned sessions after SSL drops (#38934)
add 15bab227bb0 feat(mcp): support saved metrics from datasets in chart generation (#38955)
add 38fdfb4ca2e fix(mcp): prevent stale g.user from causing user impersonation across tool calls (#38747)
add 2c9cf0bd558 fix(mcp): enforce MAX_PAGE_SIZE limit on list tools to prevent oversized responses (#38959)
add e0a0a225426 fix(charts): add X Axis Number Format control for numeric X-axis columns (#38809)
add f1cd1ae7100 fix(pivot-table): safely cast numeric strings to numbers for date formatting (#38953)
add 11f2140c37e fix(AlteredSliceTag): not display undefined filter value for chart change record (#38883)
add b49e8999748 chore(deps-dev): bump typescript-eslint from 8.57.2 to 8.58.0 in /docs (#38968)
add b1474aaa60d docs: Fix misleading links in UPDATING.md (#38947)
add ecbf396d4a0 chore(deps): bump path-to-regexp from 8.2.0 to 8.4.0 in /superset-websocket/utils/client-ws-app (#38935)
add 944944c49e8 chore(deps): bump antd from 6.3.4 to 6.3.5 in /docs (#38967)
add e6f1209318b chore(deps): bump aws-actions/amazon-ecr-login from 2.0.2 to 2.1.1 (#38944)
add f0b20dc4459 fix(echarts): adapt y-axis ticks and padding for compact timeseries charts (#38673)
add 42457208512 feat(mcp): add Big Number chart type support to MCP service (#38403)
add c37a3ec292d fix(mcp): add TEMPORAL_RANGE filter for temporal x-axis in generate_chart (#38978)
add daefedebcda fix(mcp): batch fix for execute_sql crashes, null timestamps, and deck.gl errors (#38977)
add f6cd8066aba fix(bubble): Fix Bubble chart axis label rotation (#38917)
add 7d26e33346f chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /superset-websocket (#38861)
add a741ddc03ce chore(deps-dev): bump picomatch from 2.3.1 to 2.3.2 in /superset-embedded-sdk (#38864)
add 3abcfb797a9 chore(deps-dev): bump open-cli from 8.0.0 to 9.0.0 in /superset-frontend (#38875)
add 55aa36fef84 docs(developer): add celery to testing section for alerts&reports (#38888)
add 53b1d1097cf fix(presto): Fix presto timestamp (#26467)
add e4021fb6e7b fix(sec): resolve 50+ Dependabot alerts + bump `core-js` (#38939)
add 08a4ad662aa chore(deps): bump brace-expansion from 1.1.11 to 1.1.13 in /superset-frontend/cypress-base (#38919)
add 4036b784ed5 chore(deps): bump serialize-javascript and terser-webpack-plugin in /superset-embedded-sdk (#38920)
add 6ea9f2ade94 chore(mcp): clarify saved metrics vs columns in MCP instructions (#38981)
add f85efe61397 chore(build): remove eslint-plugin-file-progress usage + correct newlines for `npm run check:custom-rules` (#38938)
add 4fae5758d5c chore(deps): bump baseline-browser-mapping from 2.10.11 to 2.10.12 in /docs (#38942)
add d4d22909cb4 fix(dashboard): live CSS preview in PropertiesModal (#38960)
add 8559786cc29 fix(mixed-timeseries): apply same axis formatting options as timeseries charts (#38979)
add 1e2d0faa55d fix(dashboard): dashboard filters not inherited in charts in Safari sometimes due to race condition (#38851)
add 64bd03bd703 chore(deps): bump caniuse-lite from 1.0.30001781 to 1.0.30001782 in /docs (#38941)
add 872632aca05 chore(deps): bump fs-extra from 11.3.2 to 11.3.4 in /superset-frontend (#38437)
add 7ce371080cf chore(deps-dev): bump @types/node from 25.3.3 to 25.3.5 in /superset-websocket (#38462)
add bd982696285 chore(deps): bump hot-shots from 14.1.1 to 14.2.0 in /superset-websocket (#38663)
add 070be3de8b2 chore(deps-dev): bump webpack-bundle-analyzer from 5.2.0 to 5.3.0 in /superset-frontend (#38940)
add 424f99efdfa chore(deps): bump anthropics/claude-code-action from 1.0.80 to 1.0.82 (#38946)
add 51ec61c6758 chore(deps-dev): bump eslint from 10.0.2 to 10.0.3 in /superset-websocket (#38500)
add 6b6e3803d13 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.56.1 to 8.57.0 in /superset-websocket (#38540)
add a67ca052d6a chore(deps-dev): bump babel-loader from 10.0.0 to 10.1.0 in /superset-frontend (#38505)
add 4ee391e0d7e docs(db): Update crate.py with new Homepage URL (#39002)
add 8ed75787cb3 chore(deps-dev): bump jsdom from 28.1.0 to 29.0.1 in /superset-frontend (#38999)
add d30c5b4eeed chore(deps): bump caniuse-lite from 1.0.30001782 to 1.0.30001784 in /docs (#38998)
add 64c8d652e1e chore(deps-dev): bump @types/node from 25.3.5 to 25.5.0 in /superset-websocket (#38995)
add 94d8735d4b2 fix(query): pass datasource table to template processor for schema-aware Jinja rendering (#38984)
add aa976793276 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)
add 6adc816805d chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#38438)
add 5f99d613a00 chore(deps): bump markdown-to-jsx from 9.7.6 to 9.7.8 in /superset-frontend (#38507)
add 190f1a59c53 fix(mcp): fix dashboard owners Pydantic crash and preserve chart preview filters (#38987)
add 4423134739e chore(deps): bump ioredis from 5.10.0 to 5.10.1 in /superset-websocket (#38993)
add 1bb41a6e609 chore(deps): bump anthropics/claude-code-action from 1.0.82 to 1.0.83 (#39001)
add 0bae05d4a93 fix(mcp): handle table chart raw mode in query builders and sanitize dashboard titles (#38990)
add 38f0dc74f7c fix(dataset-editor): improve modal layout and fix Settings tab horizontal scroll (#39009)
add 022342839aa fix(echarts): fix stacked horizontal bar chart clipping and duplicate x-axis labels (#39012)
add ff3b8d8398e fix(ace-editor): fix cursor misalignment in markdown editor (#38928)
add ec6640b1885 chore(deps-dev): update fs-extra requirement from ^11.3.3 to ^11.3.4 in /superset-frontend/packages/generator-superset (#38383)
add 1d0e836a299 chore(deps): update @deck.gl/extensions requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38149)
add 00eb86d03fb chore(deps-dev): bump @swc/plugin-emotion from 14.6.0 to 14.7.0 in /superset-frontend (#38333)
add 7acb0c6d052 chore(deps-dev): bump @types/node from 25.3.3 to 25.3.5 in /superset-frontend (#38510)
add 1aac6c94741 chore(deps): update @deck.gl/react requirement from ~9.2.5 to ~9.2.9 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#38150)
add fdd08d3b701 chore(deps): bump ws from 8.19.0 to 8.20.0 in /superset-websocket (#38994)
add 26f4a5acadb chore(deps): bump azure/setup-helm from 4.3.1 to 5.0.0 (#38815)
add 5cc286e383e chore(deps-dev): bump @playwright/test from 1.58.2 to 1.59.1 in /superset-frontend (#39057)
add 59f92f979a5 chore(deps-dev): bump eslint-plugin-testing-library from 7.16.1 to 7.16.2 in /superset-frontend (#39056)
add 985d7b6a792 chore(deps-dev): bump @types/node from 25.3.5 to 25.5.0 in /superset-frontend (#39055)
add 87f0540acd7 chore(deps-dev): bump ts-jest from 29.4.6 to 29.4.9 in /superset-frontend (#39049)
add bdb0030cf87 chore(deps-dev): bump @swc/core from 1.15.18 to 1.15.21 in /superset-frontend (#39045)
add 3802acb1e03 chore(deps-dev): bump jest-html-reporter from 4.3.0 to 4.4.0 in /superset-frontend (#39053)
add c372f5980c1 chore(deps): bump lodash from 4.17.23 to 4.18.1 in /superset-frontend (#39043)
add 25eea295f6c fix(reports): log exception traceback in _get_csv_data (#39069)
add 135e0f80996 fix(mcp): Created dashboard should be in draft state by default (#39011)
add f0fcdcc76a8 chore: package bumps (#39014)
add 9e27d682f69 test(alerts/reports): close backend and frontend test coverage gaps (#38591)
add 5662ecab154 chore(tests): promote Playwright experimental tests to stable (#38924)
add 23ac4cb3a42 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39051)
add 08d1ddd9fbd chore(deps-dev): bump mini-css-extract-plugin from 2.10.1 to 2.10.2 in /superset-frontend (#39054)
add b4cb815ebfd chore(deps): bump anthropics/claude-code-action from 1.0.83 to 1.0.85 (#39037)
add c51132f8242 chore(deps): bump aws-actions/amazon-ecr-login from 2.1.1 to 2.1.2 (#39042)
add f2ff24d811f chore(deps): bump @ant-design/icons from 5.6.1 to 6.1.1 in /superset-frontend (#39050)
add 0330fdeb00e chore(deps-dev): bump ts-jest from 29.4.6 to 29.4.9 in /superset-websocket (#39029)
add 0452d1515a3 chore(deps-dev): bump @babel/preset-env from 7.29.0 to 7.29.2 in /superset-frontend (#39028)
add ace5f9d8c20 chore(deps): bump lodash from 4.17.23 to 4.18.1 in /superset-frontend/cypress-base (#39027)
add a9ced5c8815 chore(deps): bump lodash-es from 4.17.23 to 4.18.1 in /superset-frontend (#39026)
add 7e0c634c3a7 chore(deps-dev): bump typescript-eslint from 8.56.1 to 8.58.0 in /superset-websocket (#38997)
add 3239f058c81 chore(deps-dev): bump baseline-browser-mapping from 2.10.10 to 2.10.13 in /superset-frontend (#39044)
add c5bce756f0c chore(deps): bump yeoman-generator from 7.5.1 to 8.1.2 in /superset-frontend (#38671)
add 851bbeea485 fix(mcp): improve execute_sql response-too-large error to suggest limit parameter (#39003)
add c7d175b8420 fix(dashboard): remove opacity on filter dropdown (#39074)
add b3a402d9365 fix(mcp): handle stale SSL connections, heatmap duplicate labels, and session rollback (#39015)
add 613e6d6cde4 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39093)
add e424b550362 chore(deps-dev): bump babel-loader from 10.1.0 to 10.1.1 in /superset-frontend (#39090)
add 7a64483e6bf chore(deps-dev): bump @swc/plugin-emotion from 14.7.0 to 14.8.0 in /superset-frontend (#39088)
add 6b029997d92 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39087)
add 8195574345e chore(deps): bump anthropics/claude-code-action from 1.0.85 to 1.0.87 (#39083)
add e5ae626433f chore(deps): bump dawidd6/action-download-artifact from 19 to 20 (#39081)
add d796543f5a0 chore(deps): update @deck.gl/react requirement from ~9.2.9 to ~9.2.11 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#39033)
add 12eb40db011 fix(SQL Lab): handle columns without names (#38986)
add a3dfbd7bffa fix(deps): revert simple-zstd from 2.1.0 back to 1.4.2 (#39139)
add a62be684a05 feat(mcp): add database connection listing and info tools (#39111)
add 7c79b9ab618 fix(migrations): check pre-existing foreign keys on create util (#39099)
add e56f8cc4fb1 fix(security_manager): custom auth_view issue (#39098)
add 7380a59ab8a fix(mcp): fix form_data null, dataset URL, ASCII preview, and chart rename (#39109)
add 92747246fc7 fix(mcp): remove JWT ValueError g.user fallback in auth layer (#39106)
add 83ad1eca26b fix(mcp): add dynamic response truncation for oversized info tool responses (#39107)
add 7be2acb2f3c fix(mcp): add description and certification fields to default list tool columns (#39017)
add b05764d070d feat: Add currencies controls in country map (#39016)
add bf9aff19b54 fix(mcp): compress chart config schemas to reduce search_tools token usage (#39018)
add 027de6339ba chore(deps-dev): bump jsdom from 29.0.1 to 29.0.2 in /superset-frontend (#39155)
add 8e811de5643 chore(deps): bump hot-shots from 14.2.0 to 14.3.1 in /superset-websocket (#39147)
add 5f9fc31ae23 feat(mcp): add get_chart_type_schema tool for on-demand schema discovery (#39142)
add 5ccfc530b26 chore(deps): bump geolib from 3.3.4 to 3.3.14 in /superset-frontend (#39092)
add 3db92021c76 chore(deps-dev): bump eslint from 10.1.0 to 10.2.0 in /superset-websocket (#39123)
add 97508811933 chore(deps-dev): bump @types/node from 25.5.0 to 25.5.2 in /superset-websocket (#39125)
add 96fa2cbd2b9 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)
add d159edc9a69 chore(deps-dev): bump @swc/core from 1.15.21 to 1.15.24 in /superset-frontend (#39127)
add a626d064156 chore(deps): bump caniuse-lite from 1.0.30001784 to 1.0.30001786 in /docs (#39128)
add 7e452df1cc6 chore(deps): bump anthropics/claude-code-action from 1.0.87 to 1.0.89 (#39132)
add 2bd41316367 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#39134)
add 5106afb07f3 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#39145)
add 6ba90968701 fix(explore): handle boolean false values correctly in control rendering (#39172)
add 4f695e1b4d2 fix(filterReports): _generate_native_filter() crashes on null/empty filterValues (#38954)
add 3a3a6536b7e fix(explore): Unnecessary scroll bars appearing on charts in Explore (#39160)
add 587fe4af632 fix(reports): propagate PlaywrightTimeout so execution transitions to ERROR state (#39176)
add 140f0001f21 fix(sqllab): demote "Save as new" button from primary to secondary (#39179)
add a64609f4f39 fix(explore): add left-indentation to control panel hierarchy (#39177)
add 36de05fe366 fix(plugin-chart-handlebars): improve CSS sanitization tooltip and hide when not needed (#39180)
add ed659958f31 fix(sqllab): use monospace font for SQL in database error messages (#39181)
add 62302ad8c3a perf(webpack): reduce watch mode memory usage and fix docker-compose-light env (#39183)
add 4c2dd634643 fix(sqllab): Update style for code viewer container (#39075)
add 2e80f2a473a fix: add template_processor so Jinja gets rendered before SQLGlot parse (#39207)
add d5017e60c34 fix(sqllab): fix table navigator schema list, pin/unpin UX, copy actions, icons, and toolbar colors (#39173)
add b8b2bdedf9b fix(ace-editor): style bracket matching to blend with theme (#39182)
add 63cceb6a799 refactor(plugins): replace react-icons with antd icons, remove 83MB dependency (#39184)
add d63308ca372 fix(frontend): fix loading spinner positioning in Save modal and filters panel (#39205)
add 4e0890ee1fb feat(api): Add filter_dashboard_id parameter to apply dashboard filters to chart/data endpoint (#38638)
add 1bde6f3bfda fix(mcp): resolve null fields in list_datasets, list_databases, and save_sql_query (#39206)
add bad5a35fce0 fix(explore): constrain Edit Dataset modal height to prevent footer cutoff (#39211)
add d915e4f3ff7 fix(tags): fix Bulk tag modal dropdown clipping and stale tag cache (#39210)
add c49641538d5 feat: modernize deck.gl and map plugins with MapLibre/Mapbox dual renderer (#38035)
add 5263abdc60e fix(AlertsReports): untie filters from alerts reports tabs flag (#38722)
add 6649f35a0d6 fix(reports): escape SQL LIKE wildcards in find_by_extra_metadata (#38738)
add 5815665cc62 feat: role/user CRUD events and login/logout tracking in the action log (#39121)
add 68067d7f44f fix(mcp): handle OAuth-authenticated databases in execute_sql (#39166)
add c7955a38ef7 fix: Drill to Detail for Embedded (#39214)
add f49310b8ff8 fix(sql-lab): apply access check in SqlExecutionResultsCommand (#38952)
add e17cf3c8086 fix(mcp): wire up compact schema serialization for search_tools results (#39229)
add 680cef0ee07 fix(mcp): strip json_metadata and position_json from get_dashboard_info response (#39101)
add e39dd1afce3 fix: implement native browser fullscreen for dashboard charts (#38819)
add 8bcc90c7664 fix(dashboard): Vertical filter bar gradient is extending past the filter bar area (#39204)
add aba7e6dae46 fix(table): cross-filtering breaks after renaming column labels via Custom SQL (#38858)
add b1d69f5b398 docs(api): add Theme API endpoints to OpenAPI spec (#37943)
add f632d2474b3 chore(deps-dev): bump webpack from 5.105.4 to 5.106.0 in /superset-frontend (#39268)
add 4583ef93a47 chore(deps-dev): bump prettier from 3.8.1 to 3.8.2 in /superset-frontend (#39263)
add 1ad76e847e7 chore(deps-dev): bump prettier from 3.8.1 to 3.8.2 in /superset-websocket (#39260)
add b65396ccd4e chore(deps-dev): bump @types/node from 25.5.2 to 25.6.0 in /superset-websocket (#39262)
add f1cf274751d chore(deps): bump axios from 1.13.5 to 1.15.0 in /docs (#39259)
add 2ff50667e77 chore(deps): bump axios from 1.13.5 to 1.15.0 in /superset-frontend (#39258)
add 69c8eef78e9 fix(ag-grid): jpeg export of ag-grid tables (#38781)
add e9911fbac4a fix(echarts): prevent tooltip crash during dashboard auto-refresh (#39277)
add 450701ecec3 fix(SqlLab): improve SQL diff modal — responsive width, padding, tabs, and copy button (#39246)
add 0aa8cace1b6 fix(dataset-editor): fix SQL expression editor extra spaces and height expansion (#39248)
add 98146251c4f fix(tests): improve ShareMenuItems test isolation to fix intermittent suite failure (#39280)
add 7a243d329ef fix(dashboard): allow filter list to scroll in filter config modal sidebar (#39203)
add eea3557f612 fix(dashboard): hide "Filters out of scope" section when empty (#39201)
add de40b58e105 fix(tests): fix async teardown leak in FiltersConfigModal.test.tsx (#39281)
add fa1f12a0b5f fix(explore): replace TableView with virtualized GridTable, add row limit controls, restore sample filters (#39212)
add de98fdc37ba test(heatmap): restore buildQuery coverage on master (#39329)
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 f1b8940f5e7 Merge branch 'master' into fix-echart-save-issue
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 4 +
.github/workflows/check_db_migration_confict.yml | 2 +-
.github/workflows/claude.yml | 4 +-
.github/workflows/ephemeral-env-pr-close.yml | 4 +-
.github/workflows/ephemeral-env.yml | 16 +-
.github/workflows/no-hold-label.yml | 2 +-
.github/workflows/pre-commit.yml | 2 +-
.github/workflows/release.yml | 4 +-
.github/workflows/showtime-trigger.yml | 2 +-
.github/workflows/superset-docs-deploy.yml | 4 +-
.github/workflows/superset-docs-verify.yml | 2 +-
.github/workflows/superset-helm-lint.yml | 2 +-
.github/workflows/superset-helm-release.yml | 4 +-
.../workflows/superset-python-integrationtest.yml | 15 +-
.github/workflows/superset-python-presto-hive.yml | 10 +-
.github/workflows/superset-python-unittest.yml | 5 +-
.github/workflows/supersetbot.yml | 2 +-
RESOURCES/INTHEWILD.yaml | 5 +
UPDATING.md | 18 +-
docker-compose-light.yml | 9 +
docker/docker-bootstrap.sh | 2 +-
docs/developer_docs/api.mdx | 34 +-
docs/developer_docs/testing/backend-testing.md | 103 +
docs/docs/faq.mdx | 2 +-
docs/docs/security/granular-export-controls.mdx | 78 +
docs/package.json | 16 +-
docs/scripts/fix-openapi-spec.py | 25 +
docs/static/img/logos/hifadih.png | Bin 0 -> 18383 bytes
docs/static/resources/openapi.json | 8663 ++++++++++++++------
docs/versioned_docs/version-6.0.0/faq.mdx | 2 +-
docs/yarn.lock | 1121 +--
pyproject.toml | 3 +-
requirements/base.txt | 14 +-
requirements/development.txt | 14 +-
superset-embedded-sdk/package-lock.json | 88 +-
superset-frontend/.eslintrc.js | 1 -
.../cypress/e2e/chart_list/list.test.ts | 171 -
.../cypress/e2e/dataset/dataset_list.test.ts | 42 -
.../cypress-base/cypress/e2e/explore/utils.ts | 33 +-
.../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 -
.../cypress-base/cypress/utils/index.ts | 22 -
.../cypress-base/cypress/utils/urls.ts | 5 -
superset-frontend/cypress-base/package-lock.json | 48 +-
superset-frontend/package-lock.json | 3343 ++++----
superset-frontend/package.json | 51 +-
.../packages/generator-superset/package.json | 6 +-
.../packages/superset-core/package.json | 4 +-
.../superset-ui-chart-controls/package.json | 4 +-
.../src/components/ControlSubSectionHeader.tsx | 4 +
.../packages/superset-ui-core/package.json | 26 +-
.../superset-ui-core/src/chart/types/VizType.ts | 1 +
.../src/components/AsyncAceEditor/index.tsx | 15 +
.../src/components/AsyncEsmComponent/index.tsx | 22 +-
.../CodeSyntaxHighlighter/index.test.tsx | 42 +-
.../src/components/CodeSyntaxHighlighter/index.tsx | 107 +-
.../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/Icons/AntdEnhanced.tsx | 2 +
.../src/components/Select/Select.test.tsx | 106 +-
.../src/components/Select/Select.tsx | 29 +-
.../src/components/Select/styles.tsx | 10 +-
.../ThemedAgGridReact/ThemedAgGridReact.test.tsx | 45 +-
.../src/components/ThemedAgGridReact/index.tsx | 50 +-
.../superset-ui-core/src/components/index.ts | 1 +
.../superset-ui-core}/src/utils/copy.ts | 5 +-
.../packages/superset-ui-core/src/utils/index.ts | 1 +
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/SaveDatasetModal.ts} | 33 +-
.../components/modals/SaveQueryModal.ts} | 30 +-
.../playwright/components/modals/index.ts | 5 +
.../playwright/helpers/api/assertions.ts | 16 +
.../helpers/api/savedQuery.ts} | 38 +-
.../playwright/helpers/fixtures/testAssets.ts | 25 +-
superset-frontend/playwright/pages/AuthPage.ts | 4 +-
.../playwright/pages/ChartListPage.ts | 39 +-
superset-frontend/playwright/pages/SqlLabPage.ts | 371 +
.../playwright/tests/auth/login.spec.ts | 37 +-
.../{experimental => }/chart/chart-list.spec.ts | 73 +-
.../{experimental => }/chart/chart-test-helpers.ts | 6 +-
.../dashboard/dashboard-list.spec.ts | 21 +-
.../dashboard/dashboard-test-helpers.ts | 4 +-
.../{experimental => }/dashboard/export.spec.ts | 6 +-
.../{experimental => }/dashboard/theme.spec.ts | 12 +-
.../dataset/create-dataset.spec.ts | 20 +-
.../dataset/dataset-list.spec.ts | 57 +-
.../dataset/dataset-test-helpers.ts | 4 +-
.../playwright/tests/sqllab/sqllab.spec.ts | 315 +
superset-frontend/playwright/utils/constants.ts | 16 +
superset-frontend/playwright/utils/urls.ts | 1 +
.../src/CountryMap.ts | 9 +-
.../src/controlPanel.ts | 1 +
.../src/transformProps.ts | 28 +-
.../test/CountryMap.test.tsx | 3 +
.../legacy-plugin-chart-map-box/CHANGELOG.md | 55 -
.../plugins/legacy-plugin-chart-map-box/README.md | 52 -
.../legacy-plugin-chart-map-box/src/MapBox.tsx | 243 -
.../src/ScatterPlotGlowOverlay.tsx | 425 -
.../src/stories/MapBox.stories.tsx | 107 -
.../src/transformProps.ts | 162 -
.../test/MapBox.test.tsx | 381 -
.../legacy-plugin-chart-map-box/test/tsconfig.json | 9 -
.../test/utils/roundDecimal.test.ts | 28 -
.../legacy-plugin-chart-map-box/tsconfig.json | 25 -
.../types/external.d.ts | 101 -
.../legacy-preset-chart-deckgl/CHANGELOG.md | 89 -
.../plugins/legacy-preset-chart-deckgl/README.md | 57 -
.../test/utils/colors.test.ts | 25 -
.../test/utils/getPointsFromPolygon.test.ts | 56 -
.../legacy-preset-chart-deckgl/types/external.d.ts | 71 -
.../plugins/legacy-preset-chart-nvd3/package.json | 2 +-
.../plugin-chart-ag-grid-table/package.json | 4 +-
.../src/AgGridTable/index.tsx | 41 +-
.../src/AgGridTableChart.tsx | 89 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 11 +-
.../src/utils/getCellClass.ts | 4 -
.../src/utils/getCrossFilterDataMask.ts | 49 +
.../src/utils/reconcileColumnState.test.ts | 86 +
.../src/utils/reconcileColumnState.ts | 83 +
.../test/buildQuery.test.ts | 21 +-
.../plugins/plugin-chart-cartodiagram/package.json | 6 +-
.../plugins/plugin-chart-echarts/package.json | 2 +-
.../src/Bubble/transformProps.ts | 6 +-
.../src/MixedTimeseries/transformProps.ts | 31 +-
.../src/Timeseries/Area/controlPanel.tsx | 27 +
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 34 +-
.../src/Timeseries/Regular/Line/controlPanel.tsx | 27 +
.../Timeseries/Regular/Scatter/controlPanel.tsx | 60 +-
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 27 +
.../src/Timeseries/Step/controlPanel.tsx | 27 +
.../src/Timeseries/transformProps.ts | 112 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 18 +-
.../plugins/plugin-chart-echarts/src/constants.ts | 5 +
.../plugin-chart-echarts/src/utils/tooltip.ts | 3 +-
.../test/Heatmap/buildQuery.test.ts | 95 +-
.../test/Timeseries/Area/controlPanel.test.ts | 115 +
.../test/Timeseries/Bar/controlPanel.test.ts | 74 +
.../test/Timeseries/Bar/transformProps.test.ts | 92 +
.../test/Timeseries/Line/controlPanel.test.ts | 115 +
.../test/Timeseries/Scatter/controlPanel.test.ts | 54 +-
.../Timeseries/SmoothLine/controlPanel.test.ts | 101 +
.../test/Timeseries/Step/controlPanel.test.ts | 115 +
.../test/Timeseries/transformProps.test.ts | 136 +
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../src/plugin/controls/style.tsx | 19 +-
.../plugins/plugin-chart-pivot-table/package.json | 5 +-
.../src/PivotTableChart.tsx | 48 +-
.../src/react-pivottable/TableRenderers.tsx | 24 +-
.../test/react-pivottable/tableRenders.test.tsx | 96 +
.../package.json | 19 +-
.../src/MapLibre.css} | 2 +-
.../src/MapLibre.tsx | 216 +
.../src/buildQuery.ts | 90 +
.../src/components/CanvasOverlay.tsx | 121 +
.../src/components/ScatterPlotOverlay.tsx | 400 +
.../src/controlPanel.ts | 126 +-
.../src/images/MapBox-dark.jpg | Bin
.../src/images/MapBox.jpg | Bin
.../src/images/MapBox2-dark.jpg | Bin
.../src/images/MapBox2.jpg | Bin
.../src/images/thumbnail-dark.png | Bin
.../src/images/thumbnail.png | Bin
.../src/images/thumbnailLarge.png | Bin
.../src/index.ts | 11 +-
.../src/stories/PointClusterMap.stories.tsx | 176 +
.../src/stories/data.ts | 0
.../src/transformProps.ts | 292 +
.../src/utils/geo.ts | 0
.../src/utils/luminanceFromRGB.ts | 0
.../src/utils/mapbox.ts} | 18 +-
.../src/utils/roundDecimal.ts | 0
.../test/MapLibre.test.tsx | 262 +
.../test/ScatterPlotOverlay.test.tsx} | 88 +-
.../test/controlPanel.test.ts | 0
.../test/transformProps.test.ts | 88 +-
.../tsconfig.json | 5 -
.../types/external.d.ts | 2 +-
.../plugins/plugin-chart-table/package.json | 5 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 41 +-
.../plugin-chart-table/src/transformProps.ts | 16 +
.../plugins/plugin-chart-table/src/types.ts | 4 +
.../plugin-chart-table/test/TableChart.test.tsx | 334 +
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../package.json | 33 +-
.../src/CategoricalDeckGLContainer.tsx | 17 +-
.../src/DeckGLContainer.tsx | 138 +-
.../src/Multi/Multi.test.tsx | 2 +-
.../src/Multi/Multi.tsx | 14 +-
.../src/Multi/controlPanel.test.ts | 0
.../src/Multi/controlPanel.ts | 10 +-
.../src/Multi/images/example-dark.png | Bin
.../src/Multi/images/example.png | Bin
.../src/Multi/images/thumbnail-dark.png | Bin
.../src/Multi/images/thumbnail.png | Bin
.../src/Multi/images/thumbnailLarge.png | Bin
.../src/Multi/index.ts | 0
.../src/TooltipRow.tsx | 0
.../src/components/DeckGLOverlayMapLibre.tsx} | 18 +-
.../src/components/DeckGLOverlayMapbox.tsx} | 18 +-
.../src/components/Legend.tsx | 10 +-
.../src/components/Tooltip.tsx | 8 +-
.../src/factory.tsx | 15 +-
.../src/index.ts | 0
.../src/layers/Arc/Arc.tsx | 0
.../src/layers/Arc/buildQuery.ts | 0
.../src/layers/Arc/controlPanel.ts | 9 +-
.../src/layers/Arc/images/example-dark.png | Bin
.../src/layers/Arc/images/example.png | Bin
.../src/layers/Arc/images/thumbnail-dark.png | Bin
.../src/layers/Arc/images/thumbnail.png | Bin
.../src/layers/Arc/images/thumbnailLarge.png | Bin
.../src/layers/Arc/index.ts | 0
.../src/layers/Arc/stories/Arc.stories.tsx | 7 +-
.../src/layers/Arc/stories/payload.ts | 0
.../src/layers/Arc/transformProps.ts | 0
.../src/layers/Contour/Contour.tsx | 0
.../src/layers/Contour/buildQuery.ts | 0
.../src/layers/Contour/controlPanel.ts | 4 +
.../src/layers/Contour/getSafeCellSize.test.ts | 0
.../src/layers/Contour/getSafeCellSize.ts | 0
.../src/layers/Contour/images/example-dark.png | Bin
.../src/layers/Contour/images/example.png | Bin
.../src/layers/Contour/images/thumbnail-dark.png | Bin
.../src/layers/Contour/images/thumbnail.png | Bin
.../src/layers/Contour/images/thumbnailLarge.png | Bin
.../src/layers/Contour/index.ts | 0
.../src/layers/Contour/transformProps.ts | 0
.../src/layers/Geojson/Geojson.test.ts | 5 +-
.../src/layers/Geojson/Geojson.tsx | 16 +-
.../src/layers/Geojson/buildQuery.ts | 86 +
.../src/layers/Geojson/controlPanel.ts | 9 +-
.../src/layers/Geojson/images/example-dark.png | Bin
.../src/layers/Geojson/images/example.png | Bin
.../src/layers/Geojson/images/thumbnail-dark.png | Bin
.../src/layers/Geojson/images/thumbnail.png | Bin
.../src/layers/Geojson/images/thumbnailLarge.png | Bin
.../src/layers/Geojson/index.ts | 5 +-
.../src/layers/Geojson/transformProps.ts | 50 +
.../src/layers/Grid/Grid.tsx | 0
.../src/layers/Grid/buildQuery.ts | 0
.../src/layers/Grid/controlPanel.ts | 4 +
.../src/layers/Grid/images/example-dark.png | Bin
.../src/layers/Grid/images/example.png | Bin
.../src/layers/Grid/images/thumbnail-dark.png | Bin
.../src/layers/Grid/images/thumbnail.png | Bin
.../src/layers/Grid/images/thumbnailLarge.png | Bin
.../src/layers/Grid/index.ts | 0
.../src/layers/Grid/stories/Grid.stories.tsx | 7 +-
.../src/layers/Grid/stories/payload.ts | 0
.../src/layers/Grid/transformProps.ts | 0
.../src/layers/Heatmap/Heatmap.tsx | 8 +-
.../src/layers/Heatmap/buildQuery.ts | 0
.../src/layers/Heatmap/controlPanel.ts | 4 +
.../src/layers/Heatmap/images/example-dark.png | Bin
.../src/layers/Heatmap/images/example.png | Bin
.../src/layers/Heatmap/images/thumbnail-dark.png | Bin
.../src/layers/Heatmap/images/thumbnail.png | Bin
.../src/layers/Heatmap/images/thumbnailLarge.png | Bin
.../src/layers/Heatmap/index.ts | 0
.../src/layers/Heatmap/transformProps.ts | 0
.../src/layers/Hex/Hex.tsx | 0
.../src/layers/Hex/buildQuery.ts | 0
.../src/layers/Hex/controlPanel.ts | 4 +
.../src/layers/Hex/images/example-dark.png | Bin
.../src/layers/Hex/images/example.png | Bin
.../src/layers/Hex/images/thumbnail-dark.png | Bin
.../src/layers/Hex/images/thumbnail.png | Bin
.../src/layers/Hex/images/thumbnailLarge.png | Bin
.../src/layers/Hex/index.ts | 0
.../src/layers/Hex/stories/Hex.stories.tsx | 7 +-
.../src/layers/Hex/stories/payload.ts | 0
.../src/layers/Hex/transformProps.ts | 0
.../src/layers/Path/Path.test.tsx | 0
.../src/layers/Path/Path.tsx | 2 +-
.../src/layers/Path/buildQuery.ts | 0
.../src/layers/Path/controlPanel.ts | 4 +
.../src/layers/Path/images/example-dark.png | Bin
.../src/layers/Path/images/example.png | Bin
.../src/layers/Path/images/thumbnail-dark.png | Bin
.../src/layers/Path/images/thumbnail.png | Bin
.../src/layers/Path/images/thumbnailLarge.png | Bin
.../src/layers/Path/index.ts | 0
.../src/layers/Path/stories/Path.stories.tsx | 7 +-
.../src/layers/Path/stories/payload.ts | 0
.../src/layers/Path/transformProps.ts | 0
.../src/layers/Polygon/Polygon.test.tsx | 2 +-
.../src/layers/Polygon/Polygon.tsx | 3 +-
.../src/layers/Polygon/buildQuery.test.ts | 0
.../src/layers/Polygon/buildQuery.ts | 0
.../src/layers/Polygon/controlPanel.ts | 10 +-
.../src/layers/Polygon/images/example-dark.png | Bin
.../src/layers/Polygon/images/example.png | Bin
.../src/layers/Polygon/images/thumbnail-dark.png | Bin
.../src/layers/Polygon/images/thumbnail.png | Bin
.../src/layers/Polygon/images/thumbnailLarge.png | Bin
.../src/layers/Polygon/index.ts | 0
.../src/layers/Polygon/stories/Polygon.stories.tsx | 10 +-
.../src/layers/Polygon/stories/geojsonPayload.ts | 0
.../src/layers/Polygon/stories/payload.ts | 0
.../src/layers/Polygon/transformProps.test.ts | 0
.../src/layers/Polygon/transformProps.ts | 0
.../src/layers/Scatter/Scatter.tsx | 0
.../src/layers/Scatter/buildQuery.test.ts | 0
.../src/layers/Scatter/buildQuery.ts | 0
.../src/layers/Scatter/controlPanel.ts | 9 +-
.../src/layers/Scatter/images/example-dark.png | Bin
.../src/layers/Scatter/images/example.png | Bin
.../src/layers/Scatter/images/thumbnail-dark.png | Bin
.../src/layers/Scatter/images/thumbnail.png | Bin
.../src/layers/Scatter/images/thumbnailLarge.png | Bin
.../src/layers/Scatter/index.ts | 0
.../src/layers/Scatter/stories/Scatter.stories.tsx | 7 +-
.../src/layers/Scatter/stories/payload.ts | 0
.../src/layers/Scatter/transformProps.test.ts | 0
.../src/layers/Scatter/transformProps.ts | 0
.../src/layers/Screengrid/Screengrid.tsx | 9 +-
.../src/layers/Screengrid/buildQuery.ts | 0
.../src/layers/Screengrid/controlPanel.ts | 9 +-
.../src/layers/Screengrid/images/example-dark.png | Bin
.../src/layers/Screengrid/images/example.png | Bin
.../layers/Screengrid/images/thumbnail-dark.png | Bin
.../src/layers/Screengrid/images/thumbnail.png | Bin
.../layers/Screengrid/images/thumbnailLarge.png | Bin
.../src/layers/Screengrid/index.ts | 0
.../Screengrid/stories/Screengrid.stories.tsx | 8 +-
.../src/layers/Screengrid/stories/payload.ts | 0
.../src/layers/Screengrid/transformProps.ts | 0
.../src/layers/buildQueryUtils.ts | 0
.../src/layers/common.test.ts | 0
.../src/layers/common.tsx | 0
.../src/layers/index.ts | 0
.../src/layers/spatialUtils.test.ts | 2 +-
.../src/layers/spatialUtils.ts | 26 +-
.../src/layers/transformUtils.test.ts | 0
.../src/layers/transformUtils.ts | 0
.../src/layers/utils/metricUtils.test.ts | 0
.../src/layers/utils/metricUtils.ts | 0
.../src/preset.ts | 0
.../src/transformProps.ts | 0
.../src/types.ts | 0
.../src/utilities/HandlebarsRenderer.tsx | 0
.../src/utilities/Shared_DeckGL.tsx | 71 +-
.../src/utilities/TooltipTemplateControl.tsx | 0
.../src/utilities/TooltipTemplateEditor.tsx | 0
.../src/utilities/controlRegistry.tsx | 0
.../src/utilities/controls.ts | 0
.../src/utilities/multiValueUtils.ts | 0
.../src/utilities/sharedDndControls.tsx | 0
.../src/utilities/tooltipUtils.tsx | 0
.../src/utilities/utils.ts | 0
.../src/utils.test.ts | 0
.../src/utils.ts | 45 -
.../src/utils/colors.ts | 0
.../src/utils/computeBoundsFromPoints.ts | 0
.../src/utils/crossFiltersDataMask.test.ts | 0
.../src/utils/crossFiltersDataMask.ts | 0
.../src/utils/explore.ts | 0
.../src/utils/fitViewport.ts | 0
.../src/utils/geo.ts | 0
.../src/utils/getPointsFromPolygon.ts | 0
.../preset-chart-deckgl/src/utils/mapbox.ts} | 18 +-
.../src/utils/safeStringify.ts | 0
.../src/utils/sandbox.ts | 0
.../preset-chart-deckgl}/tsconfig.json | 13 +-
.../types/external.d.ts | 2 +-
superset-frontend/scripts/check-custom-rules.js | 6 +-
.../src/SqlLab/components/ColumnElement/index.tsx | 12 +-
.../components/EditorWrapper/useKeywords.test.ts | 27 +-
.../SqlLab/components/EditorWrapper/useKeywords.ts | 108 +-
.../HighlightedSql/HighlightedSql.test.tsx | 37 +-
.../src/SqlLab/components/HighlightedSql/index.tsx | 68 +-
.../SqlLab/components/QueryLimitSelect/index.tsx | 2 +-
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 223 +-
.../src/SqlLab/components/ResultSet/index.tsx | 86 +-
.../components/SaveDatasetActionButton/index.tsx | 4 +-
.../src/SqlLab/components/SaveQuery/index.tsx | 2 +-
.../SqlLab/components/ShareSqlLabQuery/index.tsx | 2 +-
.../SqlEditorLeftBar/SqlEditorLeftBar.test.tsx | 2 +-
.../TableExploreTree/TableExploreTree.test.tsx | 88 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 194 +-
.../SqlLab/components/TableExploreTree/index.tsx | 143 +-
.../components/TableExploreTree/useTreeData.ts | 82 +-
superset-frontend/src/SqlLab/fixtures.ts | 2 +-
.../src/components/AlteredSliceTag/utils/index.ts | 2 +-
.../components/AlteredSliceTag/utils/utils.test.ts | 27 +
.../components/Chart/DrillBy/DrillByModal.test.tsx | 44 +-
.../Chart/DrillBy/DrillBySubmenu.test.tsx | 6 +-
.../Chart/DrillBy/useResultsTableView.test.ts | 75 +-
.../Chart/DrillBy/useResultsTableView.tsx | 25 +-
.../CopyToClipboard/CopyToClipboard.test.tsx | 24 +
.../src/components/CopyToClipboard/index.tsx | 20 +-
.../src/components/CopyToClipboard/types.ts | 1 +
.../DatabaseSelector/DatabaseSelector.test.tsx | 6 +-
.../src/components/DatabaseSelector/index.tsx | 21 +-
.../Datasource/DatasourceModal/index.tsx | 15 +-
.../components/Datasource/FoldersEditor/styles.tsx | 1 -
.../DatasourceEditor/DatasourceEditor.tsx | 74 +-
.../ErrorMessage/DatabaseErrorMessage.tsx | 1 +
.../src/components/ErrorMessage/ErrorAlert.tsx | 12 +-
.../src/components/ErrorMessage/types.ts | 1 +
.../src/components/ListView/ListView.tsx | 1 +
.../src/components/PanelToolbar/index.tsx | 4 +-
.../TableSelector/TableSelector.test.tsx | 2 +-
superset-frontend/src/components/Tag/utils.tsx | 11 +-
superset-frontend/src/core/sqlLab/sqlLab.test.ts | 25 +-
.../DashboardBuilder/DashboardBuilder.tsx | 51 +-
.../DashboardBuilder/DashboardContainer.test.tsx | 291 +-
.../DashboardBuilder/DashboardContainer.tsx | 43 +-
.../components/FiltersBadge/DetailsPanel/index.tsx | 2 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 3 +
.../dashboard/components/PropertiesModal/index.tsx | 56 +-
.../src/dashboard/components/SliceHeader/index.tsx | 4 +
.../SliceHeaderControls.test.tsx | 73 +-
.../components/SliceHeaderControls/Styles.tsx | 71 +
.../components/SliceHeaderControls/index.tsx | 89 +-
.../components/gridComponents/Chart/Chart.tsx | 12 +-
.../gridComponents/ChartHolder/ChartHolder.tsx | 109 +-
.../DownloadMenuItems/DownloadMenuItems.test.tsx | 112 +-
.../components/menu/DownloadMenuItems/index.tsx | 29 +-
.../menu/ShareMenuItems/ShareMenuItems.test.tsx | 34 +-
.../nativeFilters/ConfigModal/SharedStyles.tsx | 1 +
.../FilterBar/ActionButtons/ActionButtons.test.tsx | 28 -
.../FilterBar/ActionButtons/index.tsx | 11 +-
.../nativeFilters/FilterBar/FilterBar.test.tsx | 17 +-
.../FilterBar/FilterBarSettings/index.tsx | 2 +-
.../FilterControls/FilterControls.test.tsx | 13 +
.../FilterBar/FilterControls/FilterControls.tsx | 7 +-
.../FilterBar/FilterControls/FilterValue.tsx | 35 +-
.../FiltersDropdownContent.test.tsx | 71 +
.../FilterBar/FiltersDropdownContent/index.tsx | 2 +-
.../FiltersOutOfScopeCollapsible/index.tsx | 1 -
.../nativeFilters/FilterBar/Vertical.tsx | 11 +-
.../components/nativeFilters/FilterBar/index.tsx | 2 -
.../ConfigModalContent/ConfigModalContent.tsx | 25 +-
.../ConfigModalSidebar/ConfigModalSidebar.tsx | 122 +-
.../FiltersConfigForm/FilterScope/utils.test.ts | 76 +-
.../FiltersConfigForm/FilterScope/utils.ts | 12 +
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 143 +-
.../dashboard/hooks/useDownloadScreenshot.test.ts | 73 +
.../src/dashboard/hooks/useDownloadScreenshot.ts | 3 +-
.../util/charts/getFormDataWithExtraFilters.ts | 35 +-
.../util/getFormDataWithExtraFilters.test.ts | 578 +-
.../src/explore/actions/hydrateExplore.ts | 4 +-
.../components/ControlPanelsContainer.test.tsx | 113 +
.../explore/components/ControlPanelsContainer.tsx | 27 +-
.../CopyToClipboardButton.test.tsx | 28 +
.../explore/components/DataTableControl/index.tsx | 11 +-
.../components/DataTablesPane/DataTablesPane.tsx | 1 +
.../components/DataTableControls.tsx | 46 +-
.../DataTablesPane/components/SamplesPane.tsx | 118 +-
.../components/SingleQueryResultPane.tsx | 89 +-
.../components/useGridResultTable.tsx | 123 +
.../DataTablesPane/components/useResultsPane.tsx | 39 +-
.../DataTablesPane/test/DataTablesPane.test.tsx | 61 +-
.../test/ResultsPaneOnDashboard.test.tsx | 15 +-
.../DataTablesPane/test/SamplesPane.test.tsx | 27 +-
.../components/DataTablesPane/test/fixture.tsx | 4 +
.../src/explore/components/DataTablesPane/types.ts | 12 +-
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 6 +-
.../explore/components/ExploreChartPanel/index.tsx | 5 +-
.../useResizeDetectorByObserver.ts | 5 +-
.../src/explore/components/SaveModal.tsx | 19 +-
.../ConditionalFormattingControl.test.tsx | 83 +
.../ConditionalFormattingControl.tsx | 5 +
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 20 +
.../index.tsx | 5 +-
.../controls/NumberControl/NumberControl.test.tsx | 15 +
.../components/controls/NumberControl/index.tsx | 6 +
.../components/controls/TextAreaControl.tsx | 7 +-
.../VizTypeControl/VizTypeControl.test.tsx | 2 +-
.../useExploreAdditionalActionsMenu/index.tsx | 57 +-
.../exploreUtils/getSimpleSQLExpression.test.ts | 12 +
.../src/explore/exploreUtils/index.ts | 3 +-
.../src/features/alerts/AlertReportModal.test.tsx | 1487 +++-
.../src/features/alerts/AlertReportModal.tsx | 8 +-
.../components/AlertReportCronScheduler.test.tsx | 125 +
.../alerts/components/NumberInput.test.tsx | 67 +
.../src/features/cssTemplates/CssTemplateModal.tsx | 1 +
.../AddDataset/LeftPanel/LeftPanel.test.tsx | 8 +-
.../src/features/queries/QueryPreviewModal.tsx | 13 +-
.../features/queries/SavedQueryPreviewModal.tsx | 13 +-
.../src/features/queries/SyntaxHighlighterCopy.tsx | 6 +-
.../reports/ReportModal/ReportModal.test.tsx | 350 +-
.../features/reports/ReportModal/actions.test.ts | 178 +
.../src/features/reports/ReportModal/actions.ts | 6 +-
.../features/reports/ReportModal/reducer.test.ts | 214 +
.../src/features/tags/BulkTagModal.tsx | 3 +-
superset-frontend/src/features/tags/TagModal.tsx | 3 +
superset-frontend/src/hooks/usePermissions.ts | 26 +-
.../pages/AlertReportList/AlertReportList.test.tsx | 656 +-
.../src/pages/AlertReportList/index.tsx | 10 +-
superset-frontend/src/pages/Chart/Chart.test.tsx | 93 +
superset-frontend/src/pages/Chart/index.tsx | 46 +-
.../src/pages/FileHandler/index.test.tsx | 3 +-
superset-frontend/src/utils/copy.ts | 84 +-
.../src/utils/downloadAsImage.test.ts | 685 ++
superset-frontend/src/utils/downloadAsImage.tsx | 187 +-
superset-frontend/src/utils/urlUtils.test.ts | 44 +
superset-frontend/src/utils/urlUtils.ts | 19 +-
.../src/visualizations/presets/MainPreset.ts | 6 +-
superset-frontend/tsconfig.json | 4 +-
superset-frontend/webpack.config.js | 33 +-
superset-websocket/package-lock.json | 978 +--
superset-websocket/package.json | 22 +-
.../utils/client-ws-app/package-lock.json | 18 +-
superset/charts/api.py | 29 +-
superset/charts/data/api.py | 104 +-
superset/charts/data/dashboard_filter_context.py | 306 +
superset/charts/schemas.py | 45 +
superset/commands/database/utils.py | 3 +-
superset/commands/report/execute.py | 26 +-
superset/commands/sql_lab/results.py | 18 +-
superset/common/query_object.py | 4 +-
superset/config.py | 18 +-
superset/daos/base.py | 16 +-
superset/daos/report.py | 2 +-
superset/dashboards/api.py | 12 +-
superset/databases/utils.py | 1 +
superset/datasets/api.py | 2 +-
superset/db_engine_specs/base.py | 13 +-
superset/db_engine_specs/crate.py | 2 +-
superset/db_engine_specs/presto.py | 13 +
superset/mcp_service/CLAUDE.md | 762 +-
superset/mcp_service/SECURITY.md | 9 +-
superset/mcp_service/__main__.py | 32 +
superset/mcp_service/app.py | 121 +-
superset/mcp_service/auth.py | 418 +-
superset/mcp_service/chart/chart_utils.py | 148 +-
superset/mcp_service/chart/preview_utils.py | 18 +-
superset/mcp_service/chart/schemas.py | 291 +-
superset/mcp_service/chart/tool/__init__.py | 2 +
superset/mcp_service/chart/tool/generate_chart.py | 96 +-
superset/mcp_service/chart/tool/get_chart_data.py | 64 +-
superset/mcp_service/chart/tool/get_chart_info.py | 2 -
.../mcp_service/chart/tool/get_chart_preview.py | 53 +-
.../chart/tool/get_chart_type_schema.py | 174 +
superset/mcp_service/chart/tool/list_charts.py | 6 +-
superset/mcp_service/chart/tool/update_chart.py | 187 +-
.../mcp_service/chart/tool/update_chart_preview.py | 67 +-
.../chart/validation/dataset_validator.py | 101 +-
superset/mcp_service/chart/validation/pipeline.py | 17 +-
.../chart/validation/schema_validator.py | 89 +
superset/mcp_service/common/schema_discovery.py | 151 +-
superset/mcp_service/constants.py | 9 +
superset/mcp_service/dashboard/schemas.py | 260 +-
.../tool/add_chart_to_existing_dashboard.py | 43 +-
.../dashboard/tool/generate_dashboard.py | 34 +-
.../dashboard/tool/get_dashboard_info.py | 2 -
.../mcp_service/dashboard/tool/list_dashboards.py | 6 +-
.../mcp_service/database}/__init__.py | 0
superset/mcp_service/database/schemas.py | 364 +
.../{dataset => database}/tool/__init__.py | 8 +-
.../tool/get_database_info.py} | 89 +-
.../tool/list_databases.py} | 106 +-
superset/mcp_service/dataset/schemas.py | 126 +-
superset/mcp_service/dataset/tool/__init__.py | 2 +
.../dataset/tool/create_virtual_dataset.py | 137 +
.../mcp_service/dataset/tool/get_dataset_info.py | 7 +-
superset/mcp_service/dataset/tool/list_datasets.py | 11 +-
.../explore/tool/generate_explore_link.py | 56 +-
superset/mcp_service/mcp_config.py | 41 +-
superset/mcp_service/mcp_core.py | 59 +-
superset/mcp_service/middleware.py | 97 +-
superset/mcp_service/server.py | 166 +-
superset/mcp_service/sql_lab/schemas.py | 36 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 57 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 13 +-
.../mcp_service/sql_lab/tool/save_sql_query.py | 4 -
.../mcp_service/system/tool/get_instance_info.py | 108 +-
superset/mcp_service/system/tool/get_schema.py | 35 +-
superset/mcp_service/utils/oauth2_utils.py | 47 +
superset/mcp_service/utils/permissions_utils.py | 4 -
superset/mcp_service/utils/response_utils.py | 152 +
superset/mcp_service/utils/token_utils.py | 217 +-
superset/migrations/shared/utils.py | 27 +-
...00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py | 172 +
superset/models/helpers.py | 6 +-
superset/reports/models.py | 22 +-
superset/result_set.py | 43 +-
superset/security/manager.py | 204 +-
superset/sql/execution/executor.py | 6 +
superset/sqllab/api.py | 21 +-
superset/translations/fr/LC_MESSAGES/messages.po | 87 +-
superset/utils/log.py | 9 +-
superset/utils/oauth2.py | 29 +-
superset/utils/webdriver.py | 3 +-
superset/views/datasource/schemas.py | 2 +-
superset/views/datasource/utils.py | 7 +-
superset/views/datasource/views.py | 8 +-
superset/viz.py | 23 +
tests/integration_tests/charts/data/api_tests.py | 215 +
tests/integration_tests/datasource_tests.py | 23 +-
tests/integration_tests/event_logger_tests.py | 61 +
...ce6bd21901ab_migrate_deckgl_and_mapbox__test.py | 187 +
.../security/guest_token_security_tests.py | 100 +-
tests/integration_tests/security_tests.py | 23 +-
tests/integration_tests/sql_lab/commands_tests.py | 33 +-
.../integration_tests/test_granular_export_api.py | 275 +
.../charts/test_dashboard_filter_context.py | 525 ++
tests/unit_tests/commands/databases/utils_test.py | 6 +-
tests/unit_tests/commands/report/create_test.py | 222 +
tests/unit_tests/commands/report/execute_test.py | 777 +-
tests/unit_tests/commands/report/update_test.py | 73 +-
tests/unit_tests/daos/test_report_dao.py | 92 +
tests/unit_tests/datasets/api_tests.py | 48 +
tests/unit_tests/db_engine_specs/test_base.py | 2 +-
tests/unit_tests/db_engine_specs/test_presto.py | 6 +-
.../mcp_service/chart/test_big_number_chart.py | 524 ++
.../mcp_service/chart/test_chart_schemas.py | 102 +
.../mcp_service/chart/test_chart_utils.py | 222 +-
.../mcp_service/chart/tool/test_generate_chart.py | 37 +-
.../chart/tool/test_get_chart_type_schema.py | 86 +
.../mcp_service/chart/tool/test_list_charts.py | 25 +-
.../mcp_service/chart/tool/test_update_chart.py | 330 +-
.../chart/tool/test_update_chart_preview.py | 60 +-
.../validation/test_column_name_normalization.py | 50 +
.../dashboard/test_dashboard_schemas.py | 224 +-
.../dashboard/tool/test_dashboard_generation.py | 386 +-
.../dashboard/tool/test_dashboard_tools.py | 22 +-
.../unit_tests/mcp_service/database}/__init__.py | 0
.../mcp_service/database/tool}/__init__.py | 0
.../database/tool/test_database_tools.py | 206 +
.../mcp_service/dataset/tool/test_dataset_tools.py | 381 +-
.../explore/tool/test_generate_explore_link.py | 81 +-
.../mcp_service/sql_lab/tool/test_execute_sql.py | 85 +-
.../sql_lab/tool/test_save_sql_query.py | 29 +-
.../mcp_service/system/tool/test_get_schema.py | 41 +-
tests/unit_tests/mcp_service/test_auth_api_key.py | 17 +-
.../mcp_service/test_auth_user_resolution.py | 456 ++
.../mcp_service/test_g_user_race_condition.py | 164 +
tests/unit_tests/mcp_service/test_middleware.py | 100 +
.../mcp_service/test_middleware_logging.py | 157 +
.../mcp_service/test_tool_search_transform.py | 340 +
.../mcp_service/utils/test_token_utils.py | 283 +-
tests/unit_tests/reports/api_test.py | 52 +
tests/unit_tests/reports/dao_test.py | 91 +
tests/unit_tests/reports/filters_test.py | 64 +
tests/unit_tests/reports/model_test.py | 372 +-
.../reports/notifications/slack_tests.py | 54 +
tests/unit_tests/reports/schemas_test.py | 183 +-
tests/unit_tests/result_set_test.py | 59 +
tests/unit_tests/security/api_test.py | 2 +-
tests/unit_tests/security/audit_log_test.py | 251 +
tests/unit_tests/sql/execution/test_executor.py | 72 +
tests/unit_tests/utils/oauth2_tests.py | 64 +
tests/unit_tests/utils/webdriver_test.py | 35 +-
657 files changed, 36100 insertions(+), 11945 deletions(-)
create mode 100644 docs/docs/security/granular-export-controls.mdx
create mode 100644 docs/static/img/logos/hifadih.png
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/chart_list/list.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dataset/dataset_list.test.ts
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
copy superset-frontend/{ => packages/superset-ui-core}/src/utils/copy.ts (95%)
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%)
copy superset-frontend/{src/types/SqlExpression.ts => playwright/helpers/api/savedQuery.ts} (54%)
create mode 100644 superset-frontend/playwright/pages/SqlLabPage.ts
rename superset-frontend/playwright/tests/{experimental => }/chart/chart-list.spec.ts (79%)
rename superset-frontend/playwright/tests/{experimental => }/chart/chart-test-helpers.ts (92%)
rename superset-frontend/playwright/tests/{experimental => }/dashboard/dashboard-list.spec.ts (95%)
rename superset-frontend/playwright/tests/{experimental => }/dashboard/dashboard-test-helpers.ts (93%)
rename superset-frontend/playwright/tests/{experimental => }/dashboard/export.spec.ts (94%)
rename superset-frontend/playwright/tests/{experimental => }/dashboard/theme.spec.ts (93%)
rename superset-frontend/playwright/tests/{experimental => }/dataset/create-dataset.spec.ts (91%)
rename superset-frontend/playwright/tests/{experimental => }/dataset/dataset-list.spec.ts (92%)
rename superset-frontend/playwright/tests/{experimental => }/dataset/dataset-test-helpers.ts (93%)
create mode 100644 superset-frontend/playwright/tests/sqllab/sqllab.spec.ts
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/CHANGELOG.md
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/README.md
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/MapBox.tsx
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/ScatterPlotGlowOverlay.tsx
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/stories/MapBox.stories.tsx
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/src/transformProps.ts
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/MapBox.test.tsx
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/tsconfig.json
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/test/utils/roundDecimal.test.ts
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/tsconfig.json
delete mode 100644 superset-frontend/plugins/legacy-plugin-chart-map-box/types/external.d.ts
delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/CHANGELOG.md
delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/README.md
delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/test/utils/colors.test.ts
delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/test/utils/getPointsFromPolygon.test.ts
delete mode 100644 superset-frontend/plugins/legacy-preset-chart-deckgl/types/external.d.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
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Area/controlPanel.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Line/controlPanel.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/SmoothLine/controlPanel.test.ts
create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Timeseries/Step/controlPanel.test.ts
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/package.json (65%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box/src/MapBox.css => plugin-chart-point-cluster-map/src/MapLibre.css} (96%)
create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/MapLibre.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/buildQuery.ts
create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/components/CanvasOverlay.tsx
create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/components/ScatterPlotOverlay.tsx
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/controlPanel.ts (73%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox-dark.jpg (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox.jpg (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox2-dark.jpg (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/MapBox2.jpg (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/index.ts (88%)
create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/stories/PointClusterMap.stories.tsx
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/stories/data.ts (100%)
create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/transformProps.ts
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/geo.ts (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/luminanceFromRGB.ts (100%)
copy superset-frontend/{src/types/ChartSource.ts => plugins/plugin-chart-point-cluster-map/src/utils/mapbox.ts} (63%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/src/utils/roundDecimal.ts (100%)
create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/test/MapLibre.test.tsx
rename superset-frontend/plugins/{legacy-plugin-chart-map-box/test/ScatterPlotGlowOverlay.test.tsx => plugin-chart-point-cluster-map/test/ScatterPlotOverlay.test.tsx} (92%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/test/controlPanel.test.ts (100%)
rename superset-frontend/plugins/{legacy-plugin-chart-map-box => plugin-chart-point-cluster-map}/test/transformProps.test.ts (75%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => plugin-chart-point-cluster-map}/tsconfig.json (58%)
copy superset-frontend/plugins/{legacy-plugin-chart-calendar => plugin-chart-point-cluster-map}/types/external.d.ts (99%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/package.json (71%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/CategoricalDeckGLContainer.tsx (95%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/DeckGLContainer.tsx (64%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/Multi.test.tsx (99%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/Multi.tsx (96%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/controlPanel.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/controlPanel.ts (94%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/Multi/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/TooltipRow.tsx (100%)
copy superset-frontend/{src/views/ScrollToTop.tsx => plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapLibre.tsx} (70%)
copy superset-frontend/{src/views/ScrollToTop.tsx => plugins/preset-chart-deckgl/src/components/DeckGLOverlayMapbox.tsx} (70%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/components/Legend.tsx (94%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/components/Tooltip.tsx (95%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/factory.tsx (94%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/Arc.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/controlPanel.ts (96%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/stories/Arc.stories.tsx (93%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/stories/payload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Arc/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/Contour.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/controlPanel.ts (97%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/getSafeCellSize.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/getSafeCellSize.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Contour/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/Geojson.test.ts (97%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/Geojson.tsx (97%)
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/buildQuery.ts
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/controlPanel.ts (98%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Geojson/index.ts (94%)
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/transformProps.ts
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/Grid.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/controlPanel.ts (96%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/stories/Grid.stories.tsx (92%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/stories/payload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Grid/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/Heatmap.tsx (95%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/controlPanel.ts (98%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Heatmap/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/Hex.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/controlPanel.ts (97%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/stories/Hex.stories.tsx (92%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/stories/payload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Hex/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/Path.test.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/Path.tsx (99%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/controlPanel.ts (97%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/stories/Path.stories.tsx (92%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/stories/payload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Path/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/Polygon.test.tsx (99%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/Polygon.tsx (99%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/buildQuery.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/controlPanel.ts (97%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/Polygon.stories.tsx (94%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/geojsonPayload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/stories/payload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/transformProps.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Polygon/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/Scatter.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/buildQuery.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/controlPanel.ts (96%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/stories/Scatter.stories.tsx (93%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/stories/payload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/transformProps.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Scatter/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/Screengrid.tsx (97%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/buildQuery.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/controlPanel.ts (94%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/example-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/example.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnail-dark.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnail.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/images/thumbnailLarge.png (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/stories/Screengrid.stories.tsx (91%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/stories/payload.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/Screengrid/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/buildQueryUtils.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/common.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/common.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/index.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/spatialUtils.test.ts (99%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/spatialUtils.ts (93%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/transformUtils.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/transformUtils.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/utils/metricUtils.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/layers/utils/metricUtils.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/preset.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/transformProps.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/types.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/HandlebarsRenderer.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/Shared_DeckGL.tsx (90%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/TooltipTemplateControl.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/TooltipTemplateEditor.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/controlRegistry.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/controls.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/multiValueUtils.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/sharedDndControls.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/tooltipUtils.tsx (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utilities/utils.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils.ts (86%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/colors.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/computeBoundsFromPoints.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/crossFiltersDataMask.test.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/crossFiltersDataMask.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/explore.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/fitViewport.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/geo.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/getPointsFromPolygon.ts (100%)
copy superset-frontend/{src/types/ChartSource.ts => plugins/preset-chart-deckgl/src/utils/mapbox.ts} (63%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/safeStringify.ts (100%)
rename superset-frontend/plugins/{legacy-preset-chart-deckgl => preset-chart-deckgl}/src/utils/sandbox.ts (100%)
copy superset-frontend/{packages/generator-superset/generators/plugin-chart/templates => plugins/preset-chart-deckgl}/tsconfig.json (59%)
copy superset-frontend/plugins/{legacy-plugin-chart-calendar => preset-chart-deckgl}/types/external.d.ts (99%)
create mode 100644 superset-frontend/src/dashboard/components/SliceHeaderControls/Styles.tsx
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FiltersDropdownContent/FiltersDropdownContent.test.tsx
create mode 100644 superset-frontend/src/dashboard/hooks/useDownloadScreenshot.test.ts
create mode 100644 superset-frontend/src/explore/components/DataTablesPane/components/useGridResultTable.tsx
mode change 100644 => 100755 superset-frontend/src/explore/components/SaveModal.tsx
create mode 100644 superset-frontend/src/explore/components/controls/ConditionalFormattingControl/ConditionalFormattingControl.test.tsx
create mode 100644 superset-frontend/src/features/alerts/components/AlertReportCronScheduler.test.tsx
create mode 100644 superset-frontend/src/features/alerts/components/NumberInput.test.tsx
create mode 100644 superset-frontend/src/features/reports/ReportModal/actions.test.ts
create mode 100644 superset-frontend/src/features/reports/ReportModal/reducer.test.ts
create mode 100644 superset-frontend/src/utils/downloadAsImage.test.ts
create mode 100644 superset/charts/data/dashboard_filter_context.py
create mode 100644 superset/mcp_service/chart/tool/get_chart_type_schema.py
copy {superset-core/src/superset_core/common => superset/mcp_service/database}/__init__.py (100%)
create mode 100644 superset/mcp_service/database/schemas.py
copy superset/mcp_service/{dataset => database}/tool/__init__.py (85%)
copy superset/mcp_service/{dataset/tool/get_dataset_info.py => database/tool/get_database_info.py} (50%)
copy superset/mcp_service/{dataset/tool/list_datasets.py => database/tool/list_databases.py} (55%)
create mode 100644 superset/mcp_service/dataset/tool/create_virtual_dataset.py
create mode 100644 superset/mcp_service/utils/oauth2_utils.py
create mode 100644 superset/mcp_service/utils/response_utils.py
create mode 100644 superset/migrations/versions/2026-03-02_00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py
create mode 100644 tests/integration_tests/migrations/ce6bd21901ab_migrate_deckgl_and_mapbox__test.py
create mode 100644 tests/integration_tests/test_granular_export_api.py
create mode 100644 tests/unit_tests/charts/test_dashboard_filter_context.py
create mode 100644 tests/unit_tests/commands/report/create_test.py
create mode 100644 tests/unit_tests/daos/test_report_dao.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_big_number_chart.py
create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_get_chart_type_schema.py
copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/database}/__init__.py (100%)
copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/database/tool}/__init__.py (100%)
create mode 100644 tests/unit_tests/mcp_service/database/tool/test_database_tools.py
create mode 100644 tests/unit_tests/mcp_service/test_auth_user_resolution.py
create mode 100644 tests/unit_tests/mcp_service/test_g_user_race_condition.py
create mode 100644 tests/unit_tests/reports/api_test.py
create mode 100644 tests/unit_tests/reports/dao_test.py
create mode 100644 tests/unit_tests/reports/filters_test.py
create mode 100644 tests/unit_tests/security/audit_log_test.py