This is an automated email from the ASF dual-hosted git repository.
jli pushed a change to branch feat/dataset-rtl-tests
in repository https://gitbox.apache.org/repos/asf/superset.git
discard d459ffb45c test: add comprehensive React Testing Library and
integration tests for DatasetList
add 9605a4a9cb fix(mcp-service): ensure Flask app context in auth hook and
resolve Pydantic warnings (#36013)
add 85413f2a65 fix: fix crossfilter persisting after removal (#35998)
add dad469297c feat(mcp): add configurable branding for MCP service
(#36033)
add 962faa2196 fix: Use total count to filter datasets (#36135)
add fb8eb2a5c3 fix(dashboard): ensure world map chart uses correct country
code format in crossfilter (#35919)
add 519990e2fb fix: pin setuptools <81 to prevent pkg_resources removal
(#36104)
add 6723a58780 perf: Fix dashboard performance issues (#36119)
add 9bff64824b fix(navbar): some styling + components inconsistencies
(#36120)
add 282f4e5de2 feat(embedded): add setThemeMode API for dynamic theme
switching (#36125)
add fb7d0e0e3d chore: annotate important types (#36034)
add 9d06a5888f fix(csv-upload): log detailed errors during chunk
concatenation for debugging (#36108)
add 3b226038ba fix(datasets): prevent double time filter application in
virtual datasets (#35890)
add 6fc7af5ba8 build: update Dockerfile to 3.11.14-slim-trixie (#36047)
add 28bdec2c79 fix(tags): ensure tag creation is compatible with MySQL by
avoiding Markup objects (#36075)
add f8943c17c2 chore(deps): bump js-yaml in /superset-websocket (#36142)
add fb325a8f24 fix(translations): Fix Russian translations for EmptyState
(#34055)
add cc1d22012c chore(deps): bump antd from 5.28.0 to 5.28.1 in /docs
(#36065)
add 225886e859 chore(deps-dev): bump @typescript-eslint/parser from 8.46.2
to 8.46.4 in /docs (#36064)
add d91d81b5df chore(deps-dev): bump typescript-eslint from 8.46.2 to
8.46.4 in /docs (#36066)
add b5cac47ba7 chore(deps-dev): bump @eslint/js from 9.39.0 to 9.39.1 in
/docs (#35975)
add a9fd600c52 fix: 'save and go to dashboard' option was disabled after
changing the chart type (#36122)
add 8315804c85 fix(cache): apply dashboard filters to non-legacy
visualizations (#36109)
add 80ec241108 feat(dashboard): "embed code" option on dashboard share tab
(#33163)
add 43e9e1ec36 fix: role list edit modal height (#36123)
add a268232ed6 fix(datasets): prevent viewport overflow in dataset
creation page (#36166)
add 53b9045943 chore(DatabaseModal): simplify collapsible logic for extra
extension section (#36118)
add 21f85a4145 feat(tree chart): add initial tree depth to tree chart
(#35425)
add 4582f0e8d2 fix(dashboard): ensure charts re-render when visibility
state changes (#36011)
add 66afdfd119 docs(mcp): add comprehensive architecture, security, and
production deployment documentation (#36017)
add d0bf1cca60 chore(deps-dev): bump js-yaml from 3.14.1 to 3.14.2 in
/superset-embedded-sdk (#36172)
add cdbd5bf4f9 chore(docs): config Kapa to use logo from the repo (#36177)
add 69fc7f6852 chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 in
/docs (#36178)
add 9f55287672 chore(deps): bump caniuse-lite from 1.0.30001754 to
1.0.30001756 in /docs (#36179)
add f5b79c3623 chore(deps-dev): bump eslint from 9.39.0 to 9.39.1 in /docs
(#35976)
add 05d10d8e77 chore(deps-dev): bump @typescript-eslint/parser from 8.46.2
to 8.46.3 in /superset-websocket (#35973)
add 53207302f9 chore: bump duckdb et al. (#36171)
add 6d359161bb fix(dashboard): adjust vertical spacing for numerical range
filter to prevent overlaps (#36167)
add 35f156a1e1 feat(streaming): Streaming CSV uploads for over 100k
records for constant memory usage (#35478)
add 92d8139136 fix(security): enable AUTH_RATE_LIMITED to work correctly
(#36195)
add e68150c3ce chore(deps-dev): bump @types/node from 24.10.0 to 24.10.1
in /superset-websocket (#36198)
add be0283b9f2 chore(deps): bump antd from 5.28.1 to 5.29.1 in /docs
(#36180)
add 7805666103 perf(docker): exclude unnecessary directories from Flask
reloader watch (#36143)
add 71c015c579 feat(Tabs): Rearange tabs when editing dashboard (#35156)
add 979d385eea fix: recompile dependencies with linux and update generate
dependency script (#36194)
add 348b19cb4c fix(sqllab): validate results backend writes and enhance
410 diagnostics (#36222)
add 02bbc7c7de chore(deps-dev): bump eslint from 9.39.0 to 9.39.1 in
/superset-websocket (#36217)
add e6b258f418 chore(deps): bump http-errors from 2.0.0 to 2.0.1 in
/superset-websocket/utils/client-ws-app (#36218)
add 9d40c24a16 refactor(datasets): add comprehensive unit tests for
dataset API hooks and fix api guards (#36175)
add e7c54376e2 test(table): remove conditionals from TableChart tests
(#36149)
add a0c29cc260 test: fix flaky MySQL integration test in
test_update_v1_response (#36176)
add e303537e0c fix: adhoc column quoting (#36215)
add a2267d869b refactor: refactor `get_query_result` (#36057)
add 08c1d03479 fix(screenshots): Only cache thumbnails when image
generation succeeds (#36126)
add cac6ffcd3c fix: Extra controls width for Area Chart on dashboards
(#36133)
add a6b6eb4ab3 chore(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21
in /superset-websocket (#36231)
add bf2cef7d87 chore(sqllab): add logging for switching south panel tabs
(#36168)
add ab8352ee66 fix: Table chart types headers are offset from the columns
in the table (#36190)
add 186693b840 feat(ag-grid): add SQLGlot-based SQL escaping for where and
having filter clauses (#36136)
add 062e4a2922 fix: Columns bleeding into other cells (#36134)
add c966dd4f9e feat(dashboards): Add config to filter implicit tags in
list API (#36246)
add cd36845d56 fix: remove unwanted info from tags REST API (#36266)
add 8d5d71199a feat(mcp): Add flexible input parsing to handle
double-serialized requests (#36249)
add 0c87034b17 fix: cache key generation (#36225)
add bae716fa83 fix(log): remove unwanted info from logs REST API (#36269)
add a4860075d2 feat: add mcp abstractions to core (#36151)
add aca18fff99 fix: double computation of `contribution_totals` (#36226)
add cf88551a56 fix(mcp): Allow MCP tools to accept string or object
request formats (#36271)
add 06a8f4df02 feat(datasets): add datetime format detection to dataset
columns (#36150)
add fb2a8ac9a2 docs: clarify duplicate report deliveries for alerts &
reports (#36264)
add ab36bd3965 build: Add pytest-asyncio to enable async MCP service tests
(#36251)
add f98939103b fix(mcp-service): improve MCP tool parameter clarity and
validation (#36137)
add 18ab5382b1 feat(mcp): implement selective column serialization for
list tools (#36035)
add fe21485065 docs: Reorganizes the extensions documentation (#36298)
add 2af5a5adb0 fix(mcp): access wrapped function in dataset tool tests
(#36295)
add 1bf1890084 chore(deps-dev): bump typescript-eslint from 8.46.2 to
8.48.0 in /superset-websocket (#36252)
add df0211fe29 chore(deps-dev): bump typescript-eslint from 8.47.0 to
8.48.0 in /docs (#36254)
add 2db0107d12 chore(deps): bump caniuse-lite from 1.0.30001756 to
1.0.30001757 in /docs (#36256)
add 170d1b92eb chore(deps): bump cookie from 1.0.2 to 1.1.0 in
/superset-websocket (#36283)
add 81e561bdc9 chore(deps): bump swagger-ui-react from 5.30.2 to 5.30.3 in
/docs (#36284)
add 341ae994c5 feat(embed): get charts payload (#36237)
add a0e63faf62 fix: add a fallback to chart state callback (#36327)
add de7f41a888 fix(deckgl): polygon elevation fixed value (#35266)
add c9a7a85159 feat(chart): add axes settings for trendline (#36002)
add d5c5dbb3bf refactor(word-cloud): convert rotation and color controls
to React components (POC) (#36275)
add 01f032017f feat(controlPanel): add integer validation for rows per
page setting (#36289)
add a745fd49fa fix(deckgl): use DatasourceType enum in polygon
transformProps test + some TS issues (#36336)
add a754258fad fix(timeshift): Add a more reliable strategy for correct
temporal col (#36309)
add 9fc7a83320 fix: Do no aggregate results for CSV downloads from AG Grid
raw records table (#36247)
add 775d1ba061 fix: normalize totals cache keys for async hits (#36274)
add fd7ce4976a docs: Improve the Quick Start to make it more AI-friendly
(#36307)
add de69377b04 chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /docs
(#36300)
add 2b6b4e363b chore(deps): bump cookie from 1.1.0 to 1.1.1 in
/superset-websocket (#36303)
add 4935938bb1 chore(deps-dev): bump prettier from 3.6.2 to 3.7.3 in /docs
(#36353)
add d4206de8e0 docs: fix formatting of BaseCache import statement in docs
(#36278)
add 92986c2ecc chore(deps): bump node-forge from 1.3.1 to 1.3.2 in
/superset-frontend (#36299)
add b12f5f8394 fix: CI failures caused by a ruff version mismatch (#36358)
add db995ad5bf chore: Adds non-interactive mode to `superset-extensions
init` command (#36308)
add 6e0960c3f5 feat: show search filtered total (#36083)
add 51798edb23 feat(alert-report-modal): Use extensions registry for
DateFilterControl in AlertReportModal (#36376)
add 5e3ff0787b docs(extensions): Add community extensions registry page
(#36312)
add 005e4e3ea8 chore: Implement additional SQL Lab core APIs (#36331)
add e4cb84bc02 feat: DB2 dialect for sqlglot (#36365)
add 7748b60ff5 chore(docs): Fix typo in FEATURE_FLAGS.md (#36364)
add d05ab91d11 fix: `is_column_reference` check (#36382)
add 2c6bed27aa refactor(mcp): use dynamic APP_NAME instead of hardcoded
Superset branding (#36371)
add bf5de3cb50 fix(DatasourceControl): eliminate test flakiness and async
race conditions (#35993)
add 9c963b50e6 chore(deps): bump express from 4.21.2 to 4.22.0 in /docs
(#36362)
add 17027ff5ca chore(deps): bump express from 5.1.0 to 5.2.0 in
/superset-websocket/utils/client-ws-app (#36366)
add 9800fb7702 chore(deps): bump hot-shots from 11.2.0 to 11.3.0 in
/superset-websocket (#36352)
add a8111de3ef chore(deps-dev): bump ts-jest from 29.4.5 to 29.4.6 in
/superset-websocket (#36372)
add f955f0d133 chore(deps): bump express from 5.1.0 to 5.2.1 in
/superset-websocket/utils/client-ws-app (#36373)
add b40467c7e2 fix(SaveModal): reset chart state when saving and going to
a dashboard (#36402)
add 62d86aba14 fix(SQLLab): most recent queries at the top in Query
History without refreshing the page (#36359)
add 5c91ab91fb feat(mcp): add tool tags for Tool Search optimization
(#36405)
add 70aec7fa76 chore(deps): bump express from 4.21.2 to 4.22.0 in
/superset-frontend (#36361)
add c458f99dd4 chore: cleanup ssh tunnel (#34388)
add dc98a3b397 chore(deps): bump caniuse-lite from 1.0.30001757 to
1.0.30001759 in /docs (#36397)
add 7f85d92b85 chore(deps-dev): bump typescript-eslint from 8.48.0 to
8.48.1 in /docs (#36399)
add 22c061c06c chore(deps-dev): bump typescript-eslint from 8.48.0 to
8.48.1 in /superset-websocket (#36395)
add 3eec441abe chore(deps-dev): bump prettier from 3.6.2 to 3.7.4 in
/superset-websocket (#36391)
add d121cfdbda feat(prune_logs): add optional max_rows_per_run param
(#36313)
add 4a249a0745 fix(dashboards): Use same decorators as FAB (#36423)
add 1d8d30e5bb fix(echarts): pass vizType to enable theme overrides in all
chart types (#36389)
add 3345eb32c5 fix(heatmap): y-axis sorts in order (#36302)
add e5da6d3183 chore(deps-dev): bump prettier from 3.7.3 to 3.7.4 in /docs
(#36394)
add eabb5bdf7d feat(dashboard): implement boolean conditional formatting
(#36338)
add c36ac53445 fix(reports): simplify logging to focus on timing metrics
(#36227)
add 16e6452b8c feat: Explorable protocol (#36245)
add 482c674a0f chore: improve types (#36367)
add b6f1b4db2f chore(deps): bump jws from 3.2.2 to 3.2.3 in
/superset-websocket (#36428)
add 964c16f1a4 chore(deps): bump jws from 4.0.0 to 4.0.1 in
/superset-frontend (#36427)
add 2f14c6cd69 chore(deps): bump jws from 3.2.2 to 3.2.3 in
/superset-websocket/utils/client-ws-app (#36426)
add 23b61b080e chore(deps): bump actions/checkout from 5 to 6 (#36219)
add e1a8886d32 chore(deps): Remove unused direct dependency
geostyler-qgis-parser (#36413)
add 4479614754 feat(table): Gradient Toggle (#36280)
add 45a42396ab chore(deps-dev): update jest requirement from ^30.0.5 to
^30.2.0 in /superset-frontend/packages/generator-superset (#35389)
add 8c603a6f8b feat(state): remove chart state when navigation away from
the dashboard (#36421)
add 236e000398 fix(Gauge): clearing previously set min and max values in a
gauge chart sets the data labels to 0 (#36425)
add fb2826f92e fix(SaveModal): Update chart state when saving in explore
(#36441)
add 1d9c93a793 fix: core mcp injection and ephemeral envs (#36440)
add 98553f83e3 chore(deps): bump jsonwebtoken from 9.0.2 to 9.0.3 in
/superset-websocket/utils/client-ws-app (#36436)
add a18b62cf6b chore(deps): bump jsonwebtoken from 9.0.2 to 9.0.3 in
/superset-websocket (#36435)
add 1127374edd chore(ts): Migrate Row.jsx to Row.tsx (#36347)
add 240091516a chore(deps): bump hot-shots from 11.3.0 to 11.4.0 in
/superset-websocket (#36450)
add a76ec75933 fix: button text capitalization (#36444)
add 8a00badf45 chore(ts): Migrate Header.jsx to Header.tsx [SIP-36]
(#36286)
add 8d04c33adf refactor(sqllab): Separate left panel outside of tab
container (#36360)
add 440cbc4c1f fix(roles): Add missing SQLLab permissions for estimate and
format (#36263)
add 67cf287c03 fix(chart): Display better hover text for country map
charts (#36323)
add 1dcc887a62 chore(deps): bump winston from 3.18.3 to 3.19.0 in
/superset-websocket (#36451)
add 340ab9f238 docs: Add SQL Flow Visualizer to community extensions
registry (#36454)
add e7c060466d fix(SqlLab): enhance SQL formatting with Jinja template
support. (#36277)
add 0131e542e9 chore(deps-dev): bump eslint-plugin-react-hooks from 4.6.2
to 7.0.1 in /superset-frontend (#35882)
add b35b1d7633 fix: add subdirectory deployment support for app icon and
reports urls (#35098)
add 3940354120 feat(theming): add per-theme custom font URL support
(#36317)
add f4b919bf7d feat(table): Export table data with "Search box" enabled
(#36281)
add 9e7e813255 chore(deps-dev): bump eslint-plugin-testing-library from
6.5.0 to 7.13.3 in /superset-frontend (#35768)
add d300d69f8f docs: Update API Explorer screenshot (#36483)
add 8d7c83419c fix(mcp): Use config-based URL for MCP service instead of
request auto-detection (#36460)
add bb22eb1ca8 feat: add option for hash algorithms (#35621)
add ab80ec8066 chore(deps): bump JustinBeckwith/linkinator-action from
1.11.0 to 2.3 (#35927)
add 955b3b2b19 chore(deps-dev): bump @types/node from 24.10.1 to 24.10.2
in /superset-websocket (#36462)
add dc403145ed chore(deps-dev): bump @typescript-eslint/parser from 8.48.1
to 8.49.0 in /superset-websocket (#36466)
add abc0678454 chore(deps-dev): bump @typescript-eslint/parser from 8.48.1
to 8.49.0 in /docs (#36467)
add 47dbdd7a59 chore(deps): bump caniuse-lite from 1.0.30001759 to
1.0.30001760 in /docs (#36468)
add 4c9a463db3 chore(deps-dev): bump yeoman-test from 10.1.1 to 11.2.0 in
/superset-frontend (#36475)
add 954da8a3cc chore(deps-dev): bump
eslint-plugin-react-prefer-function-component from 3.4.0 to 5.0.0 in
/superset-frontend (#36476)
add 70a3e8fb42 docs: Remove title and badges from README index (#36442)
add 4f14eddf73 chore(deps): Remove unused luxon dependency (#36430)
add a64e5e15fc chore(deps): bump ioredis from 5.8.1 to 5.8.2 in
/superset-websocket (#35786)
add 4b7ae3a8f7 chore(deps-dev): bump typescript-eslint from 8.48.1 to
8.49.0 in /docs (#36469)
add 2120569267 chore(deps-dev): bump typescript-eslint from 8.48.1 to
8.49.0 in /superset-websocket (#36465)
add 0092cdca81 chore(ci): Upgrade GitHub Actions artifact actions to
latest versions (#36432)
add b8b7b958d9 chore(deps): bump actions/setup-node from 5 to 6 (#35633)
add 0d3c4d5d22 chore(deps): bump @emotion/styled from 10.3.0 to 11.14.1 in
/docs (#34927)
add 751804d044 chore(deps): bump antd from 5.29.1 to 6.1.0 in /docs
(#36463)
add 683a65488f feat(mcp): Add ResponseCachingMiddleware and Storage
(#36497)
add ee2ab7e078 chore(deps): update dayjs requirement from ^1.11.13 to
^1.11.18 in /superset-frontend/plugins/plugin-chart-echarts (#34955)
add d992a5836f chore(deps): update d3-cloud requirement from ^1.2.7 to
^1.2.8 in /superset-frontend/plugins/plugin-chart-word-cloud (#36400)
add f2e677c150 chore(deps): bump @deck.gl/layers from 9.1.13 to 9.2.2 in
/superset-frontend (#35743)
add 5b38a1a0d4 chore(deps): update @deck.gl/layers requirement from
^9.1.13 to ^9.2.2 in /superset-frontend/plugins/legacy-preset-chart-deckgl
(#35704)
add 47ea316792 chore(deps-dev): bump @testing-library/jest-dom and
@types/testing-library__jest-dom in /superset-frontend (#35785)
add c79c85cdfe chore(deps): bump ag-grid-community from 34.2.0 to 34.3.1
in /superset-frontend (#36154)
add 858a72d8c1 chore(deps-dev): bump react-refresh from 0.14.2 to 0.18.0
in /superset-frontend (#36521)
add 9d58599329 chore(deps-dev): bump webpack from 5.102.1 to 5.103.0 in
/superset-frontend (#36515)
add e8927ca3b3 chore(deps): update @luma.gl/constants requirement from
~9.2.2 to ~9.2.4 in /superset-frontend/plugins/legacy-preset-chart-deckgl
(#36509)
add 1bde06b366 chore(deps): update @luma.gl/engine requirement from ~9.2.2
to ~9.2.4 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36506)
add b7a541a9da chore: bump urllib3 to 2.6.0 (#36526)
add dba3fdfadf feat(mcp): Caching uses in-memory store by default when no
external store is configured (#36527)
add c1b52cb8ed chore(deps-dev): bump webpack-visualizer-plugin2 from 1.2.0
to 2.0.0 in /superset-frontend (#36511)
add e433cd5f69 chore(deps-dev): bump @types/node from 24.10.2 to 25.0.0 in
/superset-websocket (#36504)
add 0e8c420002 chore(deps): bump immer from 10.1.1 to 11.0.1 in
/superset-frontend (#36502)
add 0e8b69089d chore(deps-dev): bump @babel/plugin-transform-runtime from
7.28.3 to 7.28.5 in /superset-frontend (#36501)
add d674d54e2e chore(deps): bump @types/d3-array from 2.12.8 to 3.2.2 in
/superset-frontend/plugins/legacy-preset-chart-deckgl (#35365)
add c16ca9527c chore(deps): update @deck.gl/geo-layers requirement from
~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl
(#36508)
add ead19f9ba3 chore(deps-dev): bump prettier from 3.6.2 to 3.7.4 in
/superset-frontend (#36487)
add 955953b467 chore(deps): update dompurify requirement from ^3.3.0 to
^3.3.1 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#36471)
add 78081755aa chore(deps-dev): bump jest and @types/jest in
/superset-frontend (#34477)
add e1c022344e fix(alert-report-modal): enhance dashboard filters behavior
and visibility (#36380)
add 1f5df7407f fix(api): Fix JWT authentication for /api/v1/me endpoints
(#36410)
add 46e21c3003 chore(deps): update dompurify requirement from ^3.2.4 to
^3.3.1 in /superset-frontend/packages/superset-ui-core (#36513)
add 0e9cffe12e chore(deps): bump math-expression-evaluator and
@types/math-expression-evaluator in /superset-frontend (#36505)
add 076d4950d0 chore(deps): bump @emotion/core from 10.3.1 to 11.0.0 in
/docs (#36503)
add 375bcd00ba chore(deps-dev): bump @babel/preset-env from 7.27.2 to
7.28.5 in /superset-frontend (#36519)
add 740b328199 chore(deps): bump react-syntax-highlighter from 15.6.6 to
16.1.0 in /superset-frontend/packages/superset-ui-core (#36514)
add 9cf86c1533 chore(deps): update react requirement from ^19.2.0 to
^19.2.1 in /superset-frontend/plugins/legacy-plugin-chart-chord (#36418)
add a588668899 feat(mcp): return form_data and form_data_key in
generate_chart and generate_explore_link responses (#36539)
add 51a6b30179 chore(deps): bump @types/d3-array from 2.12.8 to 3.2.2 in
/superset-frontend/plugins/plugin-chart-table (#35382)
add edcb38517f chore(deps): bump d3-array and @types/d3-array in
/superset-frontend (#36510)
add e5b7e38a30 feat(mcp): add datasource field to generate_explore_link
form_data (#36543)
add 92c63a54e4 chore(deps): upgrade redis from 4.x to 5.x (#36593)
add a1b5b92265 chore(deps): upgrade fastmcp from 2.13.x to 2.14.0 (#36594)
add d5dbd06824 docs(mcp): add Kubernetes deployment instructions to MCP
service README (#36547)
add e5579ed939 feat(database): add cloudflare d1 support (#36348)
add 8a339febeb chore(deps-dev): update typescript requirement from ^5.7.2
to ^5.9.3 in /superset-frontend/packages/superset-ui-demo (#35372)
add 084f9832c7 chore(deps-dev): bump mini-css-extract-plugin from 2.9.2 to
2.9.4 in /superset-frontend (#36555)
add 019f9442ae chore(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21
in /superset-frontend (#36556)
add 0035da83af chore(deps-dev): bump @types/node from 25.0.0 to 25.0.1 in
/superset-websocket (#36557)
add 120ca5cf8f chore(deps): bump mapbox-gl from 3.13.0 to 3.17.0 in
/superset-frontend (#36558)
add 649112aa1f chore(deps): bump swagger-ui-react from 5.30.3 to 5.31.0 in
/docs (#36559)
add 0bcefe34ac chore(deps): update @deck.gl/react requirement from ~9.2.2
to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36566)
add cde9abfce2 fix(webpack): include devserverHost in allowedHosts for
Docker environments (#36597)
add 09a1788a8b chore(deps-dev): bump css-minimizer-webpack-plugin from
7.0.2 to 7.0.4 in /superset-frontend (#36585)
add b441844ca6 chore(deps-dev): bump @babel/node from 7.26.0 to 7.28.0 in
/superset-frontend (#36583)
add 989bb3432f chore(deps): bump content-disposition from 0.5.4 to 1.0.1
in /superset-frontend (#36582)
add 6439440260 chore(deps): bump actions/cache from 4 to 5 (#36575)
add 75c6da97b2 chore(deps-dev): bump eslint-plugin-testing-library from
7.13.3 to 7.13.6 in /superset-frontend (#36572)
add 2b1c72a92c chore(deps): update @deck.gl/aggregation-layers requirement
from ~9.2.2 to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl
(#36569)
add 18d3da81ca chore(deps): bump googleapis from 154.1.0 to 168.0.0 in
/superset-frontend (#36567)
add da31e82b6a chore(deps-dev): bump oxlint from 1.16.0 to 1.32.0 in
/superset-frontend (#36580)
add 4ae62dcae8 chore(deps): update @deck.gl/layers requirement from ~9.2.2
to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36563)
add 71a38305d9 chore(deps-dev): bump prettier-plugin-packagejson from
2.5.19 to 2.5.20 in /superset-frontend (#36587)
add 8b1c41a012 fix(tab): Fix tabs in column not clickable (#36528)
add 29a52652b9 fix: specify correct ff in quickstart (#36445)
add 76f1b5ed5a chore(deps): bump dayjs from 1.11.18 to 1.11.19 (#36552)
add 104eb90013 chore(deps-dev): bump @babel/eslint-parser from 7.28.4 to
7.28.5 in /superset-frontend (#36638)
add 824dafa342 chore(deps): update @deck.gl/core requirement from ~9.2.2
to ~9.2.5 in /superset-frontend/plugins/legacy-preset-chart-deckgl (#36619)
add c722c92adb chore(deps-dev): bump eslint-plugin-testing-library from
7.13.6 to 7.14.0 in /superset-frontend (#36623)
add a3ea950567 chore(deps): bump ace-builds from 1.43.4 to 1.43.5 in
/superset-frontend (#36625)
add 8bcb499a06 chore(deps-dev): bump terser-webpack-plugin from 5.3.14 to
5.3.16 in /superset-frontend (#36627)
add a1706229db chore(deps): bump actions/download-artifact from 6 to 7
(#36628)
add b27ec49204 chore(deps): bump actions/upload-artifact from 5 to 6
(#36630)
add e28ab05068 chore(deps): bump dom-to-image-more from 3.6.0 to 3.7.2 in
/superset-frontend (#36635)
add c3a9e28573 chore(deps-dev): bump tsx from 4.20.3 to 4.21.0 in
/superset-frontend (#36615)
add 94900e0fb3 chore(deps): bump less from 4.4.2 to 4.5.1 in /docs (#36614)
add 6bd37d11ae chore(deps-dev): bump eslint from 9.39.1 to 9.39.2 in
/superset-websocket (#36613)
add fdde5fe2d3 chore(deps-dev): bump @types/node from 25.0.1 to 25.0.2 in
/superset-websocket (#36611)
add 40db928091 chore(deps-dev): bump @eslint/js from 9.39.1 to 9.39.2 in
/docs (#36612)
add 11d3750044 chore(deps-dev): bump ts-jest from 29.4.5 to 29.4.6 in
/superset-frontend (#36633)
add 57ec3b5a6d chore(deps-dev): bump eslint from 9.39.1 to 9.39.2 in /docs
(#36608)
add d6d8e71b71 chore(deps): Remove redundant polished direct dependency
(#36431)
add c7a4d4f2cc fix(sql): handle backtick-quoted identifiers with base
dialect (#36545)
add 5844c05281 docs: clarify Jinja from_dttm/to_dttm availability in SQL
Lab (#36544)
add a1a57d50a4 fix(tests): resolve flaky "should edit correctly" test in
chart list (#36641)
add de7a72a37b feat(ci): use TTL labels for showtime cleanup (#36643)
add 5f431ee1ec chore(deps-dev): bump @types/node from 24.8.1 to 25.0.2 in
/superset-frontend (#36620)
add 6f8052b828 docs: add contribution guidelines from wiki to Developer
Portal (#36523)
add 52c711b0bc fix(dashboard): import with overwrite flag replaces charts
instead of merging (#36551)
add cd2c889c9a feat(frontend): upgrade Storybook and add extension
component documentation (#36498)
add 28e3ba749e feat: SQL execution API for Superset (#36529)
add 2329d49f9e fix(DatasourceEditor): add mount guards and fix async race
conditions (#35810)
add 821b259805 fix: Support datetime_format during import (#36679)
add d0361cb881 test(playwright): convert and create new dataset list
playwright tests (#36196)
new e1e40bdc10 test: add comprehensive React Testing Library and
integration tests for DatasetList
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (d459ffb45c)
\
N -- N -- N refs/heads/feat/dataset-rtl-tests (e1e40bdc10)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.github/CODEOWNERS | 1 +
.github/workflows/bashlib.sh | 13 +
.github/workflows/bump-python-package.yml | 2 +-
.github/workflows/cancel_duplicates.yml | 2 +-
.github/workflows/check-python-deps.yml | 2 +-
.github/workflows/check_db_migration_confict.yml | 2 +-
.github/workflows/claude.yml | 2 +-
.github/workflows/codeql-analysis.yml | 2 +-
.github/workflows/dependency-review.yml | 4 +-
.github/workflows/docker.yml | 4 +-
.github/workflows/embedded-sdk-release.yml | 4 +-
.github/workflows/embedded-sdk-test.yml | 4 +-
.github/workflows/ephemeral-env.yml | 4 +-
.github/workflows/generate-FOSSA-report.yml | 2 +-
.github/workflows/github-action-validator.yml | 4 +-
.github/workflows/issue_creation.yml | 2 +-
.github/workflows/latest-release-tag.yml | 2 +-
.github/workflows/license-check.yml | 2 +-
.github/workflows/pr-lint.yml | 2 +-
.github/workflows/pre-commit.yml | 10 +-
.github/workflows/prefer-typescript.yml | 2 +-
.github/workflows/release.yml | 8 +-
.github/workflows/showtime-cleanup.yml | 18 +-
.github/workflows/showtime-trigger.yml | 2 +-
.github/workflows/superset-app-cli.yml | 2 +-
.github/workflows/superset-applitool-cypress.yml | 4 +-
.../workflows/superset-applitools-storybook.yml | 4 +-
.github/workflows/superset-docs-deploy.yml | 4 +-
.github/workflows/superset-docs-verify.yml | 8 +-
.github/workflows/superset-e2e.yml | 22 +-
.github/workflows/superset-extensions-cli.yml | 4 +-
.github/workflows/superset-frontend.yml | 32 +-
.github/workflows/superset-helm-lint.yml | 2 +-
.github/workflows/superset-helm-release.yml | 2 +-
.github/workflows/superset-playwright.yml | 12 +-
.../workflows/superset-python-integrationtest.yml | 6 +-
.github/workflows/superset-python-presto-hive.yml | 4 +-
.github/workflows/superset-python-unittest.yml | 2 +-
.github/workflows/superset-translations.yml | 6 +-
.github/workflows/superset-websocket.yml | 2 +-
.github/workflows/supersetbot.yml | 2 +-
.github/workflows/tag-release.yml | 8 +-
.github/workflows/tech-debt.yml | 4 +-
.gitignore | 1 +
.pre-commit-config.yaml | 13 +-
.pylintrc | 2 +-
Dockerfile | 2 +-
README.md | 11 -
RESOURCES/FEATURE_FLAGS.md | 2 +-
UPDATING.md | 127 +
docker/docker-bootstrap.sh | 2 +-
.../pythonpath_dev/superset_config_docker_light.py | 1 +
docs/developer_portal/extensions/architecture.md | 4 +-
.../extensions/components/alert.mdx | 131 +
.../extensions/components/index.mdx | 93 +
.../extensions/contribution-types.md | 130 +
.../{deploying-extension.md => deployment.md} | 24 +-
.../extensions/development-mode.md | 48 -
docs/developer_portal/extensions/development.md | 309 +
.../extensions/extension-metadata.md | 55 -
.../extensions/extension-points/sqllab.md | 209 +
.../extensions/extension-project-structure.md | 78 -
.../extensions/frontend-contribution-types.md | 90 -
.../extensions/interacting-with-host.md | 129 -
docs/developer_portal/extensions/mcp.md | 459 +
docs/developer_portal/extensions/overview.md | 61 +-
docs/developer_portal/extensions/quick-start.md | 131 +-
docs/developer_portal/extensions/registry.md | 47 +
.../{security-implications.md => security.md} | 12 +-
.../guidelines/backend-style-guidelines.md | 36 +-
.../guidelines/backend/dao-style-guidelines.md | 24 +-
.../guidelines/design-guidelines.md | 131 +-
.../guidelines/frontend-style-guidelines.md | 42 +-
.../frontend/component-style-guidelines.md | 250 +-
.../frontend/emotion-styling-guidelines.md | 425 +-
.../guidelines/frontend/testing-guidelines.md | 297 -
docs/developer_portal/sidebars.js | 21 +-
.../developer_portal/testing/testing-guidelines.md | 129 +
docs/docs/configuration/alerts-reports.mdx | 8 +
docs/docs/configuration/async-queries-celery.mdx | 10 +-
docs/docs/configuration/databases.mdx | 15 +
docs/docs/configuration/sql-templating.mdx | 52 +-
docs/docs/configuration/theming.mdx | 49 +-
docs/docs/contributing/development.mdx | 14 +
docs/docs/contributing/pkg-resources-migration.md | 101 +
docs/docusaurus.config.ts | 11 +-
docs/package.json | 32 +-
docs/scripts/generate-extension-components.mjs | 676 +
docs/sidebarTutorials.js | 69 +-
docs/src/theme/ReactLiveScope/index.tsx | 53 +
.../src/types/apache-superset-core/index.d.ts | 21 +-
docs/src/webpack.extend.ts | 9 +
docs/static/img/extensions/api_explorer.png | Bin 0 -> 487250 bytes
docs/static/img/extensions/sql_flow_visualizer.png | Bin 0 -> 113995 bytes
docs/static/img/superset-logo-icon-only.png | Bin 0 -> 118635 bytes
docs/tsconfig.json | 24 +-
.../version-6.0.0/configuration/sql-templating.mdx | 52 +-
.../version-6.0.0/configuration/theming.mdx | 49 +-
.../version-6.0.0/contributing/development.mdx | 14 +
docs/yarn.lock | 1776 +-
pyproject.toml | 14 +-
pytest.ini | 1 +
requirements/base.in | 8 +-
requirements/base.txt | 18 +-
requirements/development.txt | 92 +-
scripts/uv-pip-compile.sh | 17 +
superset-core/pyproject.toml | 1 +
superset-core/src/superset_core/api/models.py | 88 +-
superset-core/src/superset_core/api/types.py | 177 +
superset-core/src/superset_core/mcp/__init__.py | 161 +
superset-embedded-sdk/package-lock.json | 16 +-
superset-embedded-sdk/package.json | 2 +-
superset-embedded-sdk/src/index.ts | 22 +-
.../src/superset_extensions_cli/cli.py | 54 +-
.../templates/extension.json.j2 | 4 +-
superset-extensions-cli/tests/test_cli_init.py | 138 +-
superset-extensions-cli/tests/test_templates.py | 2 +-
superset-frontend/.gitignore | 3 +
superset-frontend/.storybook/main.js | 61 +-
superset-frontend/.storybook/preview.jsx | 3 +-
.../test-runner.ts} | 32 +-
.../cypress/e2e/chart_list/list.test.ts | 12 +-
.../explore/visualizations/download_chart.test.js | 4 +
superset-frontend/jest.config.js | 2 +-
superset-frontend/package-lock.json | 55586 +++++++++----------
superset-frontend/package.json | 113 +-
.../packages/generator-superset/package.json | 4 +-
.../packages/superset-core/package.json | 8 +-
.../src/ui/components/Alert/Alert.stories.tsx | 11 +-
.../packages/superset-core/src/ui/theme/types.ts | 22 +
.../src/shared-controls/sharedControls.tsx | 2 +-
.../superset-ui-chart-controls/src/types.ts | 9 +-
.../src/utils/getColorFormatters.ts | 47 +-
.../test/utils/getColorFormatters.test.ts | 205 +
.../packages/superset-ui-core/package.json | 22 +-
.../src/chart/components/createLoadableRenderer.ts | 3 +-
.../src/components/AsyncAceEditor/index.tsx | 15 +-
.../src/components/CodeEditor/index.tsx | 6 +-
.../src/components/DesignSystem.stories.tsx | 117 +-
.../src/components/EditableTitle/index.tsx | 4 +-
.../src/components/EditableTitle/types.ts | 1 +
.../src/components/ListViewCard/ImageLoader.tsx | 6 +-
.../ListViewCard/ListViewCard.stories.tsx | 61 +-
.../src/components/{Flex => Progress}/index.tsx | 11 +-
.../src/components/Table/VirtualTable.tsx | 5 +-
.../superset-ui-core/src/components/index.ts | 2 +
.../superset-ui-core/src/connection/types.ts | 27 +-
.../superset-ui-core/src/query/api/legacy/types.ts | 6 +-
.../superset-ui-core/src/query/types/Query.ts | 7 +-
.../src/query/types/QueryResponse.ts | 3 +-
.../superset-ui-core/types/react-table-config.d.ts | 24 +-
.../packages/superset-ui-demo/.storybook/main.js | 15 +-
.../packages/superset-ui-demo/package.json | 16 +-
.../storybook/stories/ExampleApp.stories.jsx | 3 +-
superset-frontend/playwright.config.ts | 31 +-
.../playwright/components/core/Modal.ts | 118 +
.../playwright/components/core/Table.ts | 102 +
.../playwright/components/core/Toast.ts | 105 +
.../playwright/components/core/index.ts | 2 +
.../components/modals/DeleteConfirmationModal.ts | 75 +
.../components/modals/DuplicateDatasetModal.ts | 73 +
.../components/modals}/index.ts | 6 +-
superset-frontend/playwright/global-setup.ts | 93 +
.../playwright/helpers/api/database.ts | 79 +
.../playwright/helpers/api/dataset.ts | 133 +
.../playwright/helpers/api/requests.ts | 193 +
superset-frontend/playwright/pages/AuthPage.ts | 74 +-
.../playwright/pages/DatasetListPage.ts | 115 +
superset-frontend/playwright/pages/ExplorePage.ts | 88 +
.../playwright/tests/auth/login.spec.ts | 113 +-
.../playwright/tests/experimental/README.md | 112 +-
.../experimental/dataset/dataset-list.spec.ts | 254 +
.../utils/constants.ts} | 32 +-
superset-frontend/playwright/utils/urls.ts | 11 +
.../legacy-plugin-chart-calendar/package.json | 2 +-
.../plugins/legacy-plugin-chart-chord/package.json | 2 +-
.../legacy-plugin-chart-country-map/package.json | 4 +-
.../src/CountryMap.css | 61 -
.../src/CountryMap.js | 68 +-
.../src/ReactCountryMap.jsx | 34 +-
.../test/CountryMap.test.tsx | 159 +
.../legacy-plugin-chart-horizon/package.json | 2 +-
.../legacy-plugin-chart-world-map/package.json | 2 +-
.../legacy-plugin-chart-world-map/src/WorldMap.js | 5 +-
.../legacy-preset-chart-deckgl/package.json | 30 +-
.../src/layers/Polygon/buildQuery.test.ts | 456 +
.../src/layers/Polygon/buildQuery.ts | 28 +-
.../src/layers/Polygon/transformProps.test.ts | 260 +
.../src/layers/Polygon/transformProps.ts | 34 +-
.../src/layers/Scatter/buildQuery.ts | 3 +-
.../plugins/legacy-preset-chart-nvd3/package.json | 6 +-
.../plugin-chart-ag-grid-table/package.json | 4 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 10 +-
.../src/controlPanel.tsx | 5 +-
.../src/stateConversion.ts | 18 +-
.../test/buildQuery.test.ts | 24 +
.../plugins/plugin-chart-echarts/package.json | 4 +-
.../BigNumberPeriodOverPeriod/transformProps.ts | 3 +-
.../src/BigNumber/BigNumberViz.tsx | 1 +
.../BigNumberWithTrendline/controlPanel.tsx | 59 +
.../BigNumberWithTrendline/transformProps.test.ts | 13 +
.../BigNumberWithTrendline/transformProps.ts | 91 +-
.../plugin-chart-echarts/src/BigNumber/types.ts | 7 +-
.../plugin-chart-echarts/src/BigNumber/utils.ts | 5 +-
.../src/BoxPlot/EchartsBoxPlot.tsx | 4 +-
.../plugin-chart-echarts/src/BoxPlot/types.ts | 3 +-
.../plugin-chart-echarts/src/Bubble/types.ts | 3 +-
.../plugin-chart-echarts/src/Funnel/types.ts | 3 +-
.../src/Gantt/EchartsGantt.tsx | 1 +
.../src/Gantt/transformProps.ts | 2 +
.../plugin-chart-echarts/src/Gantt/types.ts | 3 +-
.../src/Gauge/transformProps.ts | 16 +-
.../plugin-chart-echarts/src/Gauge/types.ts | 3 +-
.../src/Graph/EchartsGraph.tsx | 1 +
.../plugin-chart-echarts/src/Graph/types.ts | 3 +-
.../plugin-chart-echarts/src/Heatmap/Heatmap.tsx | 3 +-
.../src/Heatmap/transformProps.ts | 161 +-
.../src/Histogram/Histogram.tsx | 2 +
.../src/MixedTimeseries/EchartsMixedTimeseries.tsx | 1 +
.../src/MixedTimeseries/types.ts | 3 +-
.../plugins/plugin-chart-echarts/src/Pie/types.ts | 3 +-
.../plugin-chart-echarts/src/Radar/types.ts | 3 +-
.../plugin-chart-echarts/src/Sankey/Sankey.tsx | 3 +-
.../src/Sunburst/EchartsSunburst.tsx | 1 +
.../src/Sunburst/controlPanel.tsx | 4 +-
.../plugin-chart-echarts/src/Sunburst/types.ts | 3 +-
.../src/Timeseries/EchartsTimeseries.test.tsx | 311 +
.../src/Timeseries/EchartsTimeseries.tsx | 28 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 3 +-
.../plugin-chart-echarts/src/Tree/EchartsTree.tsx | 8 +-
.../plugin-chart-echarts/src/Tree/constants.ts | 1 +
.../plugin-chart-echarts/src/Tree/controlPanel.tsx | 17 +
.../src/Tree/transformProps.ts | 2 +
.../plugins/plugin-chart-echarts/src/Tree/types.ts | 4 +-
.../src/Treemap/EchartsTreemap.tsx | 1 +
.../plugin-chart-echarts/src/Treemap/types.ts | 3 +-
.../src/Waterfall/EchartsWaterfall.tsx | 4 +-
.../test/BigNumber/transformProps.test.ts | 122 +
.../test/Gauge/transformProps.test.ts | 405 +
.../test/Heatmap/transformProps.test.ts | 294 +
.../plugins/plugin-chart-handlebars/package.json | 4 +-
.../plugins/plugin-chart-pivot-table/package.json | 2 +-
.../src/react-pivottable/Styles.js | 7 +
.../plugins/plugin-chart-table/package.json | 4 +-
.../plugin-chart-table/src/DataTable/DataTable.tsx | 107 +
.../src/DataTable/hooks/useSticky.tsx | 14 +-
.../src/DataTable/types/react-table.d.ts | 20 +-
.../src/DataTable/utils/externalAPIs.ts | 10 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 95 +-
.../plugins/plugin-chart-table/src/buildQuery.ts | 35 +-
.../plugin-chart-table/src/controlPanel.tsx | 8 +-
.../plugins/plugin-chart-table/src/index.ts | 1 +
.../plugin-chart-table/test/TableChart.test.tsx | 397 +-
.../plugin-chart-table/test/buildQuery.test.ts | 44 +
.../plugins/plugin-chart-table/test/testData.ts | 26 +
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../plugin/{controlPanel.ts => controlPanel.tsx} | 24 +-
.../src/plugin/controls/ColorSchemeControl.tsx | 62 +
.../ColorSchemeControl/ColorSchemeLabel.tsx | 2 +-
.../plugin}/controls/ColorSchemeControl/index.tsx | 11 +-
.../src/plugin/controls/RotationControl.tsx | 76 +
.../src/plugin/controls}/index.ts | 3 +-
.../test/ColorSchemeControl.test.tsx | 83 +
.../test/RotationControl.test.tsx | 59 +
.../test/controlPanel.test.ts | 47 +
.../plugin-chart-word-cloud/test/tsconfig.json | 3 +-
superset-frontend/src/SqlLab/actions/sqlLab.js | 22 +-
.../src/SqlLab/actions/sqlLab.test.js | 195 +-
.../src/SqlLab/components/App/App.test.tsx | 8 +-
.../src/SqlLab/components/App/index.tsx | 10 +-
.../SqlLab/components/AppLayout/AppLayout.test.tsx | 174 +
.../src/SqlLab/components/AppLayout/index.tsx | 138 +
.../components/PopEditorTab/PopEditorTab.test.tsx | 137 +
.../src/SqlLab/components/PopEditorTab/index.tsx | 122 +
.../components/QueryHistory/QueryHistory.test.tsx | 109 +
.../src/SqlLab/components/QueryHistory/index.tsx | 17 +-
.../src/SqlLab/components/QueryTable/index.tsx | 12 +-
.../src/SqlLab/components/ResultSet/index.tsx | 169 +-
.../src/SqlLab/components/SouthPane/index.tsx | 9 +-
.../SqlLab/components/SqlEditor/SqlEditor.test.tsx | 24 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 177 +-
.../SqlEditorLeftBar/SqlEditorLeftBar.test.tsx | 103 +-
.../SqlLab/components/SqlEditorLeftBar/index.tsx | 14 +-
.../SqlEditorTabHeader/SqlEditorTabHeader.test.tsx | 19 -
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 18 -
.../TabbedSqlEditors/TabbedSqlEditors.test.tsx | 147 +-
.../SqlLab/components/TabbedSqlEditors/index.tsx | 116 +-
.../src/SqlLab/components/TablePreview/index.tsx | 12 +-
superset-frontend/src/SqlLab/constants.ts | 1 +
.../svgType.d.ts => src/SqlLab/contributions.ts} | 6 +-
.../src/SqlLab/hooks/useQueryEditor/index.ts | 7 +-
.../AlteredSliceTag/AlteredSliceTag.stories.tsx | 4 +-
.../src/components/Chart/chartAction.js | 12 +-
.../src/components/Chart/chartActions.test.js | 64 +
.../DatasourceEditor/DatasourceEditor.jsx | 131 +-
.../DashboardLinksExternal.test.tsx | 129 +-
.../DatasetUsageTab/DatasetUsageTab.test.tsx | 49 +
.../components/DatasetUsageTab/index.tsx | 26 +-
.../tests/DatasourceEditor.test.tsx | 723 +-
.../tests/DatasourceEditor.test.utils.tsx | 177 +
.../tests/DatasourceEditorCurrency.test.tsx | 278 +-
.../tests/DatasourceEditorRTL.test.tsx | 129 -
.../src/components/Datasource/utils/index.js | 12 +-
.../src/components/ListView/ListView.tsx | 2 +-
.../StreamingExportModal.test.tsx | 244 +
.../StreamingExportModal/StreamingExportModal.tsx | 380 +
.../components/StreamingExportModal}/index.ts | 6 +-
.../useStreamingExport.test.ts | 126 +
.../StreamingExportModal/useStreamingExport.ts | 380 +
superset-frontend/src/constants.ts | 7 +
superset-frontend/src/core/sqlLab/index.ts | 129 +-
.../src/dashboard/actions/dashboardState.js | 5 +
.../src/dashboard/components/Dashboard.jsx | 1 +
.../src/dashboard/components/Dashboard.test.jsx | 2 +
.../DashboardBuilder/DashboardBuilder.tsx | 5 +
.../dashboard/components/GroupByBadge/index.tsx | 50 +-
.../SliceHeaderControls.test.tsx | 37 +
.../components/SliceHeaderControls/index.tsx | 2 +
.../components/gridComponents/Chart/Chart.jsx | 204 +-
.../components/gridComponents/Chart/Chart.test.jsx | 154 +
.../Header/{Header.test.jsx => Header.test.tsx} | 60 +-
.../Header/{Header.jsx => Header.tsx} | 121 +-
.../gridComponents/Header/{index.js => index.ts} | 0
.../Row/{Row.test.jsx => Row.test.tsx} | 168 +-
.../gridComponents/Row/{Row.jsx => Row.tsx} | 126 +-
.../components/gridComponents/Row/index.js | 21 -
.../components/gridComponents/Row}/index.ts | 2 +-
.../components/gridComponents/Tab/Tab.jsx | 5 +
.../components/gridComponents/Tabs/Tabs.jsx | 70 +-
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 200 +-
.../new/{NewRow.test.jsx => NewRow.test.tsx} | 6 +-
.../gridComponents/new/{NewRow.jsx => NewRow.tsx} | 23 +-
.../menu/ShareMenuItems/ShareMenuItems.test.tsx | 115 +
.../components/menu/ShareMenuItems/index.tsx | 85 +-
.../nativeFilters/ChartCustomization/selectors.ts | 42 +-
.../FilterBar/FilterControls/FilterControl.tsx | 4 +
.../FilterBar/FilterControls/FilterControls.tsx | 6 +-
.../nativeFilters/FilterBar/Horizontal.tsx | 2 +-
.../nativeFilters/FilterBar/Vertical.tsx | 2 +-
.../FilterCard/useFilterDependencies.ts | 33 +-
.../FiltersConfigForm/DatasetSelect.test.tsx | 66 +-
.../FiltersConfigForm/DatasetSelect.tsx | 109 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 18 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 57 +-
.../dashboard/components/nativeFilters/state.ts | 27 +-
.../src/dashboard/containers/Dashboard.ts | 2 +
.../dashboard/containers/DashboardComponent.jsx | 6 +
.../src/dashboard/reducers/dashboardState.js | 7 +
.../src/dashboard/reducers/dashboardState.test.js | 78 +
superset-frontend/src/dashboard/types.ts | 1 +
.../util/charts/getFormDataWithExtraFilters.ts | 15 +-
superset-frontend/src/database/actions.ts | 3 +-
superset-frontend/src/embedded/api.tsx | 16 +-
superset-frontend/src/embedded/index.tsx | 39 +-
superset-frontend/src/embedded/utils.test.ts | 228 +-
superset-frontend/src/embedded/utils.ts | 133 +-
.../explore/components/ControlPanelsContainer.tsx | 30 +-
.../ExploreChartHeader/ExploreChartHeader.test.tsx | 354 +-
.../components/ExploreChartHeader/index.jsx | 11 +-
.../components/ExploreViewContainer/index.jsx | 11 +-
.../src/explore/components/SaveModal.test.jsx | 84 +
.../src/explore/components/SaveModal.tsx | 6 +
.../controls/ColorBreakpointsControl/types.ts | 5 +-
.../FormattingPopoverContent.test.tsx | 71 +
.../FormattingPopoverContent.tsx | 79 +-
.../controls/ConditionalFormattingControl/types.ts | 1 +
.../components/controls/ContourControl/types.ts | 5 +-
.../DatasourceControl/DatasourceControl.test.tsx | 183 +-
.../ColumnSelectPopoverTrigger.tsx | 3 +-
.../DndColumnSelectControl/DndFilterSelect.tsx | 5 +-
.../src/explore/components/controls/ViewQuery.tsx | 5 +-
.../components/controls/VizTypeControl/VizTile.tsx | 8 +-
.../useExploreAdditionalActionsMenu/index.jsx | 405 +-
.../src/explore/controlUtils/getControlState.ts | 10 +-
.../controlUtils/standardizedFormData.test.ts | 86 +-
.../explore/controlUtils/standardizedFormData.ts | 6 +
.../src/explore/exploreUtils/index.js | 14 +-
.../src/features/alerts/AlertReportModal.test.tsx | 94 +
.../src/features/alerts/AlertReportModal.tsx | 39 +-
.../databases/DatabaseModal/ExtraOptions.test.tsx | 17 +
.../databases/DatabaseModal/ExtraOptions.tsx | 6 +-
.../src/features/databases/DatabaseModal/index.tsx | 3 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 2 +-
.../datasets/DatasetLayout/DatasetLayout.test.tsx | 69 +
.../datasets/hooks/useDatasetLists.test.ts | 392 +
.../src/features/datasets/hooks/useDatasetLists.ts | 3 +-
superset-frontend/src/features/datasets/styles.ts | 3 +-
superset-frontend/src/features/home/EmptyState.tsx | 27 +-
superset-frontend/src/features/home/Menu.tsx | 147 +-
superset-frontend/src/features/home/RightMenu.tsx | 13 +-
.../src/features/home/commonMenuData.ts | 5 +
.../src/features/queries/SyntaxHighlighterCopy.tsx | 6 +-
.../src/features/roles/RoleListEditModal.tsx | 1 -
.../src/hooks/apiResources/datasets.test.ts | 449 +
superset-frontend/src/hooks/useThemeMenuItems.tsx | 2 +
superset-frontend/src/logger/LogUtils.ts | 2 +
.../src/pages/SavedQueryList/index.tsx | 15 +-
.../src/pages/SqlLab/LocationContext.tsx | 14 +-
superset-frontend/src/theme/ThemeController.ts | 40 +
.../src/theme/tests/ThemeController.test.ts | 2351 +-
.../src/utils/getControlsForVizType.ts | 12 +
superset-frontend/src/utils/pathUtils.test.ts | 160 +
superset-frontend/src/utils/pathUtils.ts | 16 +
.../test-runner-jest.config.js | 14 +-
superset-frontend/tsconfig.json | 2 +-
superset-frontend/webpack.config.js | 13 +-
superset-frontend/webpack.proxy-config.js | 21 +-
superset-websocket/package-lock.json | 802 +-
superset-websocket/package.json | 24 +-
.../utils/client-ws-app/package-lock.json | 222 +-
.../utils/client-ws-app/package.json | 6 +-
superset/app.py | 16 +
superset/charts/data/api.py | 143 +-
.../chart/data/streaming_export_command.py | 80 +
superset/commands/chart/warm_up_cache.py | 107 +-
.../commands/dashboard/importers/v1/__init__.py | 42 +-
superset/commands/dashboard/permalink/create.py | 33 +-
superset/commands/database/create.py | 42 +-
superset/commands/database/export.py | 2 +-
superset/commands/database/importers/v1/utils.py | 13 +-
superset/commands/database/ssh_tunnel/create.py | 100 -
superset/commands/database/ssh_tunnel/delete.py | 52 -
superset/commands/database/ssh_tunnel/update.py | 82 -
superset/commands/database/sync_permissions.py | 25 +-
superset/commands/database/test_connection.py | 85 +-
superset/commands/database/update.py | 38 +-
superset/commands/database/uploaders/csv_reader.py | 12 +-
superset/commands/database/utils.py | 14 +-
superset/commands/dataset/export.py | 10 +-
superset/commands/dataset/refresh.py | 18 +
superset/commands/explore/get.py | 6 +-
superset/commands/logs/prune.py | 32 +-
superset/commands/report/execute.py | 96 +-
superset/commands/security/create.py | 4 +-
superset/commands/security/update.py | 4 +-
superset/commands/sql_lab/results.py | 57 +-
.../commands/sql_lab/streaming_export_command.py | 142 +
.../commands/streaming_export}/__init__.py | 0
superset/commands/streaming_export/base.py | 214 +
superset/common/query_actions.py | 25 +-
superset/common/query_context.py | 37 +-
superset/common/query_context_factory.py | 12 +-
superset/common/query_context_processor.py | 834 +-
superset/common/query_object.py | 46 +-
superset/common/utils/query_cache_manager.py | 2 +
superset/config.py | 76 +-
superset/connectors/sqla/models.py | 276 +-
.../api => superset/core/mcp}/__init__.py | 0
superset/core/mcp/core_mcp_injection.py | 225 +
superset/daos/base.py | 2 +-
superset/daos/database.py | 123 +-
superset/dashboards/api.py | 167 +-
superset/dashboards/schemas.py | 7 +
superset/databases/api.py | 84 +-
superset/databases/schemas.py | 18 +
superset/databases/ssh_tunnel/models.py | 14 +-
superset/datasets/api.py | 82 +
superset/datasets/datetime_format_detector.py | 211 +
superset/datasets/schemas.py | 4 +
superset/db_engine_specs/base.py | 4 +-
superset/db_engine_specs/bigquery.py | 6 +-
superset/db_engine_specs/clickhouse.py | 4 +-
superset/db_engine_specs/databend.py | 4 +-
superset/db_engine_specs/dremio.py | 4 +-
superset/db_engine_specs/drill.py | 4 +-
.../api => superset/explorables}/__init__.py | 0
superset/explorables/base.py | 373 +
superset/extensions/metastore_cache.py | 2 +-
superset/extensions/ssh.py | 6 +-
superset/initialization/__init__.py | 27 +-
superset/jinja_context.py | 5 +-
superset/key_value/shared_entries.py | 57 +-
superset/key_value/utils.py | 85 +-
superset/mcp_service/ARCHITECTURE.md | 693 +
superset/mcp_service/CLAUDE.md | 198 +-
superset/mcp_service/PRODUCTION.md | 1332 +
superset/mcp_service/README.md | 558 +
superset/mcp_service/SECURITY.md | 803 +
superset/mcp_service/app.py | 102 +-
superset/mcp_service/auth.py | 219 +-
superset/mcp_service/caching.py | 142 +
.../chart/prompts/create_chart_guided.py | 6 +-
.../mcp_service/chart/resources/chart_configs.py | 2 +-
superset/mcp_service/chart/schemas.py | 76 +-
superset/mcp_service/chart/tool/generate_chart.py | 133 +-
.../chart/tool/get_chart_available_filters.py | 8 +-
superset/mcp_service/chart/tool/get_chart_data.py | 6 +-
superset/mcp_service/chart/tool/get_chart_info.py | 26 +-
.../mcp_service/chart/tool/get_chart_preview.py | 8 +-
superset/mcp_service/chart/tool/list_charts.py | 32 +-
superset/mcp_service/chart/tool/update_chart.py | 37 +-
.../mcp_service/chart/tool/update_chart_preview.py | 8 +-
superset/mcp_service/common/error_schemas.py | 9 +-
superset/mcp_service/dashboard/schemas.py | 61 +-
.../tool/add_chart_to_existing_dashboard.py | 8 +-
.../dashboard/tool/generate_dashboard.py | 8 +-
.../tool/get_dashboard_available_filters.py | 8 +-
.../dashboard/tool/get_dashboard_info.py | 8 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 41 +-
superset/mcp_service/dataset/schemas.py | 34 +-
.../dataset/tool/get_dataset_available_filters.py | 8 +-
.../mcp_service/dataset/tool/get_dataset_info.py | 27 +-
superset/mcp_service/dataset/tool/list_datasets.py | 35 +-
.../mcp_service/docs/tool-search-optimization.md | 139 +
.../explore/tool/generate_explore_link.py | 49 +-
superset/mcp_service/flask_singleton.py | 15 +-
superset/mcp_service/mcp_config.py | 91 +-
superset/mcp_service/mcp_core.py | 20 +-
superset/mcp_service/middleware.py | 4 +-
superset/mcp_service/run_proxy.sh | 0
superset/mcp_service/server.py | 31 +-
superset/mcp_service/simple_proxy.py | 4 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 8 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 8 +-
superset/mcp_service/storage.py | 143 +
superset/mcp_service/system/prompts/quickstart.py | 39 +-
.../system/resources/instance_metadata.py | 6 +-
.../mcp_service/system/tool/get_instance_info.py | 12 +-
superset/mcp_service/system/tool/health_check.py | 13 +-
superset/mcp_service/utils/schema_utils.py | 526 +
superset/mcp_service/utils/url_utils.py | 79 +-
...ec10479_add_datetime_format_to_table_columns.py | 68 +
superset/models/core.py | 74 +-
superset/models/dashboard.py | 10 +
superset/models/helpers.py | 900 +-
superset/models/sql_lab.py | 33 +-
superset/security/manager.py | 133 +-
superset/sql/dialects/__init__.py | 3 +-
superset/sql/dialects/db2.py | 148 +
.../sql/execution/__init__.py | 3 +-
superset/sql/execution/celery_task.py | 486 +
superset/sql/execution/executor.py | 1108 +
superset/sql/parse.py | 49 +-
superset/sql_lab.py | 46 +-
superset/sqllab/api.py | 146 +-
superset/sqllab/schemas.py | 8 +
superset/superset_typing.py | 287 +-
superset/tags/api.py | 1 -
superset/tags/models.py | 3 +-
superset/tasks/scheduler.py | 7 +-
superset/templates/superset/spa.html | 7 -
superset/themes/schemas.py | 51 +-
superset/themes/utils.py | 63 +
superset/thumbnails/digest.py | 13 +-
superset/translations/ru/LC_MESSAGES/messages.po | 29 +-
superset/utils/cache.py | 26 +-
superset/utils/core.py | 43 +-
superset/utils/hashing.py | 71 +-
superset/utils/log.py | 11 +
superset/utils/screenshots.py | 27 +-
superset/utils/ssh_tunnel.py | 23 +-
superset/utils/urls.py | 19 +-
superset/views/base.py | 1 +
superset/views/core.py | 13 +-
superset/views/custom_tags_api_mixin.py | 105 +
superset/views/log/api.py | 6 +-
superset/views/users/api.py | 27 +-
superset/views/utils.py | 15 +-
superset/viz.py | 9 +-
superset_text.yml | 2 +-
tests/integration_tests/charts/commands_tests.py | 58 +-
tests/integration_tests/charts/data/api_tests.py | 26 +-
tests/integration_tests/commands_test.py | 4 +-
tests/integration_tests/dashboards/api_tests.py | 105 +
tests/integration_tests/databases/api_tests.py | 116 +-
.../integration_tests/databases/commands_tests.py | 15 +-
.../databases/ssh_tunnel/commands/__init__.py | 16 -
.../ssh_tunnel/commands/commands_tests.py | 58 -
tests/integration_tests/datasets/commands_tests.py | 3 +
.../db_engine_specs/bigquery_tests.py | 7 +-
tests/integration_tests/query_context_tests.py | 70 +-
tests/integration_tests/security_tests.py | 2 +
tests/integration_tests/sql_lab/api_tests.py | 19 +
.../sql_lab/test_execute_sql_statements.py | 124 +
tests/integration_tests/sqla_models_tests.py | 17 +-
tests/integration_tests/superset_test_config.py | 4 +
tests/integration_tests/tags/api_tests.py | 86 +
.../tags/mysql_compatibility_test.py | 285 +
.../test_subdirectory_deployments.py | 101 +
tests/integration_tests/thumbnails_tests.py | 3 +-
tests/integration_tests/utils/core_tests.py | 24 +-
tests/integration_tests/utils/hashing_tests.py | 210 +-
tests/integration_tests/utils_tests.py | 24 +-
tests/integration_tests/viz_tests.py | 17 +-
.../unit_tests/commands/chart}/__init__.py | 0
.../chart/streaming_export_command_test.py | 258 +
.../commands/chart/warm_up_cache_test.py | 490 +
.../commands/databases/csv_reader_test.py | 65 +
.../commands/databases/sync_permissions_test.py | 11 +-
.../unit_tests/commands/sql_lab}/__init__.py | 0
.../sql_lab/streaming_export_command_test.py | 540 +
.../common/test_query_context_processor.py | 788 +-
tests/unit_tests/common/test_time_shifts.py | 26 +-
.../commands/importers/v1/import_command_test.py | 214 +
tests/unit_tests/databases/api_test.py | 159 +-
tests/unit_tests/databases/commands/utils_test.py | 9 +-
tests/unit_tests/databases/dao/dao_tests.py | 7 +-
tests/unit_tests/databases/filters_test.py | 5 +-
.../databases/ssh_tunnel/commands/__init__.py | 16 -
.../databases/ssh_tunnel/commands/create_test.py | 148 -
.../databases/ssh_tunnel/commands/delete_test.py | 73 -
.../databases/ssh_tunnel/commands/update_test.py | 155 -
tests/unit_tests/databases/ssh_tunnel/dao_tests.py | 37 -
tests/unit_tests/datasets/commands/export_test.py | 5 +
.../datasets/commands/importers/v1/import_test.py | 95 +-
.../datasets/test_datetime_format_detector.py | 225 +
.../unit_tests/db_engine_specs/test_clickhouse.py | 5 +-
tests/unit_tests/db_engine_specs/test_databend.py | 5 +-
tests/unit_tests/db_engine_specs/test_drill.py | 5 +-
tests/unit_tests/db_engine_specs/test_oracle.py | 3 +-
.../key_value/test_shared_entries_migration.py | 135 +
tests/unit_tests/key_value/utils_test.py | 155 +-
.../mcp_service/chart/test_chart_schemas.py | 12 +-
.../mcp_service/chart/test_chart_utils.py | 26 +-
.../dashboard/tool/test_dashboard_generation.py | 87 +-
.../dashboard/tool/test_dashboard_tools.py | 66 +-
.../mcp_service/dataset/tool/test_dataset_tools.py | 118 +-
.../explore/tool/test_generate_explore_link.py | 107 +
tests/unit_tests/mcp_service/test_mcp_caching.py | 193 +
tests/unit_tests/mcp_service/test_mcp_config.py | 137 +
tests/unit_tests/mcp_service/test_mcp_storage.py | 96 +
.../mcp_service/test_mcp_tool_registration.py | 51 +
.../mcp_service/utils/test_schema_utils.py | 551 +
tests/unit_tests/models/core_test.py | 86 +-
tests/unit_tests/models/helpers_test.py | 297 +-
.../models/test_time_filter_double_application.py | 369 +
tests/unit_tests/queries/query_object_test.py | 63 +-
tests/unit_tests/sql/dialects/db2_tests.py | 246 +
.../unit_tests/sql/execution}/__init__.py | 0
tests/unit_tests/sql/execution/conftest.py | 324 +
tests/unit_tests/sql/execution/test_celery_task.py | 1077 +
tests/unit_tests/sql/execution/test_executor.py | 2114 +
tests/unit_tests/sql/parse_tests.py | 93 +
tests/unit_tests/sql/transpile_to_dialect_test.py | 347 +
tests/unit_tests/tags/models_test.py | 263 +
tests/unit_tests/themes/test_utils.py | 166 +
tests/unit_tests/thumbnails/test_digest.py | 48 +-
tests/unit_tests/utils/screenshot_test.py | 6 +-
tests/unit_tests/utils/test_core.py | 36 +-
tests/unit_tests/utils/test_hashing.py | 183 +
.../unit_tests/utils/test_screenshot_cache_fix.py | 410 +
641 files changed, 70693 insertions(+), 39474 deletions(-)
create mode 100644 docs/developer_portal/extensions/components/alert.mdx
create mode 100644 docs/developer_portal/extensions/components/index.mdx
create mode 100644 docs/developer_portal/extensions/contribution-types.md
rename docs/developer_portal/extensions/{deploying-extension.md =>
deployment.md} (59%)
delete mode 100644 docs/developer_portal/extensions/development-mode.md
create mode 100644 docs/developer_portal/extensions/development.md
delete mode 100644 docs/developer_portal/extensions/extension-metadata.md
create mode 100644 docs/developer_portal/extensions/extension-points/sqllab.md
delete mode 100644
docs/developer_portal/extensions/extension-project-structure.md
delete mode 100644
docs/developer_portal/extensions/frontend-contribution-types.md
delete mode 100644 docs/developer_portal/extensions/interacting-with-host.md
create mode 100644 docs/developer_portal/extensions/mcp.md
create mode 100644 docs/developer_portal/extensions/registry.md
rename docs/developer_portal/extensions/{security-implications.md =>
security.md} (65%)
delete mode 100644
docs/developer_portal/guidelines/frontend/testing-guidelines.md
create mode 100644 docs/developer_portal/testing/testing-guidelines.md
create mode 100644 docs/docs/contributing/pkg-resources-migration.md
create mode 100644 docs/scripts/generate-extension-components.mjs
create mode 100644 docs/src/theme/ReactLiveScope/index.tsx
copy superset-frontend/packages/superset-ui-core/src/query/api/v1/index.ts =>
docs/src/types/apache-superset-core/index.d.ts (65%)
create mode 100644 docs/static/img/extensions/api_explorer.png
create mode 100644 docs/static/img/extensions/sql_flow_visualizer.png
create mode 100644 docs/static/img/superset-logo-icon-only.png
create mode 100644 superset-core/src/superset_core/api/types.py
create mode 100644 superset-core/src/superset_core/mcp/__init__.py
copy
superset-frontend/{packages/superset-ui-core/src/utils/removeDuplicates.ts =>
.storybook/test-runner.ts} (56%)
copy superset-frontend/packages/superset-ui-core/src/components/{Flex =>
Progress}/index.tsx (80%)
create mode 100644 superset-frontend/playwright/components/core/Modal.ts
create mode 100644 superset-frontend/playwright/components/core/Table.ts
create mode 100644 superset-frontend/playwright/components/core/Toast.ts
create mode 100644
superset-frontend/playwright/components/modals/DeleteConfirmationModal.ts
create mode 100644
superset-frontend/playwright/components/modals/DuplicateDatasetModal.ts
copy superset-frontend/{src/dashboard/components/AddSliceCard =>
playwright/components/modals}/index.ts (82%)
create mode 100644 superset-frontend/playwright/global-setup.ts
create mode 100644 superset-frontend/playwright/helpers/api/database.ts
create mode 100644 superset-frontend/playwright/helpers/api/dataset.ts
create mode 100644 superset-frontend/playwright/helpers/api/requests.ts
create mode 100644 superset-frontend/playwright/pages/DatasetListPage.ts
create mode 100644 superset-frontend/playwright/pages/ExplorePage.ts
create mode 100644
superset-frontend/playwright/tests/experimental/dataset/dataset-list.spec.ts
copy superset-frontend/{src/setup/setupCodeOverrides.ts =>
playwright/utils/constants.ts} (52%)
delete mode 100644
superset-frontend/plugins/legacy-plugin-chart-country-map/src/CountryMap.css
create mode 100644
superset-frontend/plugins/legacy-plugin-chart-country-map/test/CountryMap.test.tsx
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/buildQuery.test.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Polygon/transformProps.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/Timeseries/EchartsTimeseries.test.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/test/Heatmap/transformProps.test.ts
rename
superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/{controlPanel.ts
=> controlPanel.tsx} (81%)
create mode 100644
superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controls/ColorSchemeControl.tsx
copy superset-frontend/{src/explore/components =>
plugins/plugin-chart-word-cloud/src/plugin}/controls/ColorSchemeControl/ColorSchemeLabel.tsx
(99%)
copy superset-frontend/{src/explore/components =>
plugins/plugin-chart-word-cloud/src/plugin}/controls/ColorSchemeControl/index.tsx
(97%)
create mode 100644
superset-frontend/plugins/plugin-chart-word-cloud/src/plugin/controls/RotationControl.tsx
copy superset-frontend/{packages/superset-core/src/ui/components =>
plugins/plugin-chart-word-cloud/src/plugin/controls}/index.ts (85%)
create mode 100644
superset-frontend/plugins/plugin-chart-word-cloud/test/ColorSchemeControl.test.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-word-cloud/test/RotationControl.test.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-word-cloud/test/controlPanel.test.ts
create mode 100644
superset-frontend/src/SqlLab/components/AppLayout/AppLayout.test.tsx
create mode 100644 superset-frontend/src/SqlLab/components/AppLayout/index.tsx
create mode 100644
superset-frontend/src/SqlLab/components/PopEditorTab/PopEditorTab.test.tsx
create mode 100644
superset-frontend/src/SqlLab/components/PopEditorTab/index.tsx
copy
superset-frontend/{packages/superset-ui-chart-controls/src/components/ColumnTypeLabel/type-icons/svgType.d.ts
=> src/SqlLab/contributions.ts} (88%)
create mode 100644
superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditor.test.utils.tsx
delete mode 100644
superset-frontend/src/components/Datasource/components/DatasourceEditor/tests/DatasourceEditorRTL.test.tsx
create mode 100644
superset-frontend/src/components/StreamingExportModal/StreamingExportModal.test.tsx
create mode 100644
superset-frontend/src/components/StreamingExportModal/StreamingExportModal.tsx
copy superset-frontend/{packages/superset-ui-core/src/components/assets/images
=> src/components/StreamingExportModal}/index.ts (80%)
create mode 100644
superset-frontend/src/components/StreamingExportModal/useStreamingExport.test.ts
create mode 100644
superset-frontend/src/components/StreamingExportModal/useStreamingExport.ts
rename
superset-frontend/src/dashboard/components/gridComponents/Header/{Header.test.jsx
=> Header.test.tsx} (74%)
rename
superset-frontend/src/dashboard/components/gridComponents/Header/{Header.jsx =>
Header.tsx} (72%)
rename
superset-frontend/src/dashboard/components/gridComponents/Header/{index.js =>
index.ts} (100%)
rename
superset-frontend/src/dashboard/components/gridComponents/Row/{Row.test.jsx =>
Row.test.tsx} (69%)
rename superset-frontend/src/dashboard/components/gridComponents/Row/{Row.jsx
=> Row.tsx} (80%)
delete mode 100644
superset-frontend/src/dashboard/components/gridComponents/Row/index.js
copy superset-frontend/{packages/superset-core/src/ui/components =>
src/dashboard/components/gridComponents/Row}/index.ts (96%)
rename
superset-frontend/src/dashboard/components/gridComponents/new/{NewRow.test.jsx
=> NewRow.test.tsx} (91%)
rename
superset-frontend/src/dashboard/components/gridComponents/new/{NewRow.jsx =>
NewRow.tsx} (78%)
create mode 100644
superset-frontend/src/features/datasets/hooks/useDatasetLists.test.ts
create mode 100644 superset-frontend/src/hooks/apiResources/datasets.test.ts
create mode 100644 superset-frontend/src/utils/pathUtils.test.ts
copy docs/babel.config.js => superset-frontend/test-runner-jest.config.js (67%)
create mode 100644 superset/commands/chart/data/streaming_export_command.py
delete mode 100644 superset/commands/database/ssh_tunnel/create.py
delete mode 100644 superset/commands/database/ssh_tunnel/delete.py
delete mode 100644 superset/commands/database/ssh_tunnel/update.py
create mode 100644 superset/commands/sql_lab/streaming_export_command.py
copy {superset-core/src/superset_core/api =>
superset/commands/streaming_export}/__init__.py (100%)
create mode 100644 superset/commands/streaming_export/base.py
copy {superset-core/src/superset_core/api => superset/core/mcp}/__init__.py
(100%)
create mode 100644 superset/core/mcp/core_mcp_injection.py
create mode 100644 superset/datasets/datetime_format_detector.py
copy {superset-core/src/superset_core/api => superset/explorables}/__init__.py
(100%)
create mode 100644 superset/explorables/base.py
create mode 100644 superset/mcp_service/ARCHITECTURE.md
create mode 100644 superset/mcp_service/PRODUCTION.md
create mode 100644 superset/mcp_service/SECURITY.md
create mode 100644 superset/mcp_service/caching.py
create mode 100644 superset/mcp_service/docs/tool-search-optimization.md
mode change 100644 => 100755 superset/mcp_service/run_proxy.sh
create mode 100644 superset/mcp_service/storage.py
create mode 100644 superset/mcp_service/utils/schema_utils.py
create mode 100644
superset/migrations/versions/2025-11-17_19-03_a9c01ec10479_add_datetime_format_to_table_columns.py
create mode 100644 superset/sql/dialects/db2.py
copy superset-extensions-cli/src/superset_extensions_cli/constants.py =>
superset/sql/execution/__init__.py (92%)
create mode 100644 superset/sql/execution/celery_task.py
create mode 100644 superset/sql/execution/executor.py
create mode 100644 superset/views/custom_tags_api_mixin.py
delete mode 100644
tests/integration_tests/databases/ssh_tunnel/commands/__init__.py
delete mode 100644
tests/integration_tests/databases/ssh_tunnel/commands/commands_tests.py
create mode 100644 tests/integration_tests/tags/mysql_compatibility_test.py
create mode 100644 tests/integration_tests/test_subdirectory_deployments.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/commands/chart}/__init__.py (100%)
create mode 100644
tests/unit_tests/commands/chart/streaming_export_command_test.py
create mode 100644 tests/unit_tests/commands/chart/warm_up_cache_test.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/commands/sql_lab}/__init__.py (100%)
create mode 100644
tests/unit_tests/commands/sql_lab/streaming_export_command_test.py
create mode 100644
tests/unit_tests/dashboards/commands/importers/v1/import_command_test.py
delete mode 100644 tests/unit_tests/databases/ssh_tunnel/commands/__init__.py
delete mode 100644
tests/unit_tests/databases/ssh_tunnel/commands/create_test.py
delete mode 100644
tests/unit_tests/databases/ssh_tunnel/commands/delete_test.py
delete mode 100644
tests/unit_tests/databases/ssh_tunnel/commands/update_test.py
delete mode 100644 tests/unit_tests/databases/ssh_tunnel/dao_tests.py
create mode 100644 tests/unit_tests/datasets/test_datetime_format_detector.py
create mode 100644 tests/unit_tests/key_value/test_shared_entries_migration.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_caching.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_config.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_storage.py
create mode 100644 tests/unit_tests/mcp_service/test_mcp_tool_registration.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_schema_utils.py
create mode 100644
tests/unit_tests/models/test_time_filter_double_application.py
create mode 100644 tests/unit_tests/sql/dialects/db2_tests.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/sql/execution}/__init__.py (100%)
create mode 100644 tests/unit_tests/sql/execution/conftest.py
create mode 100644 tests/unit_tests/sql/execution/test_celery_task.py
create mode 100644 tests/unit_tests/sql/execution/test_executor.py
create mode 100644 tests/unit_tests/sql/transpile_to_dialect_test.py
create mode 100644 tests/unit_tests/tags/models_test.py
create mode 100644 tests/unit_tests/utils/test_hashing.py
create mode 100644 tests/unit_tests/utils/test_screenshot_cache_fix.py