You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by gi...@apache.org on 2025/12/11 03:27:39 UTC
(superset) branch dependabot/npm_and_yarn/superset-frontend/multi-a28ee524ce updated (7f3444f66a -> ef7d5690e6)
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a change to branch dependabot/npm_and_yarn/superset-frontend/multi-a28ee524ce
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 7f3444f66a chore(deps-dev): bump jest and @types/jest in /superset-frontend
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 ef7d5690e6 chore(deps-dev): bump jest and @types/jest in /superset-frontend
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 (7f3444f66a)
\
N -- N -- N refs/heads/dependabot/npm_and_yarn/superset-frontend/multi-a28ee524ce (ef7d5690e6)
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.
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 1 +
.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 | 8 +-
.github/workflows/prefer-typescript.yml | 2 +-
.github/workflows/release.yml | 4 +-
.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 | 20 +-
.github/workflows/superset-extensions-cli.yml | 4 +-
.github/workflows/superset-frontend.yml | 14 +-
.github/workflows/superset-helm-lint.yml | 2 +-
.github/workflows/superset-helm-release.yml | 2 +-
.github/workflows/superset-playwright.yml | 10 +-
.../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 +-
README.md | 11 -
RESOURCES/FEATURE_FLAGS.md | 2 +-
UPDATING.md | 26 +
.../pythonpath_dev/superset_config_docker_light.py | 1 +
docs/developer_portal/extensions/architecture.md | 4 +-
.../extensions/contribution-types.md | 130 ++
.../{deploying-extension.md => deployment.md} | 24 +-
.../extensions/development-mode.md | 48 -
docs/developer_portal/extensions/development.md | 239 ++
.../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 | 129 +-
docs/developer_portal/extensions/registry.md | 47 +
.../{security-implications.md => security.md} | 12 +-
docs/developer_portal/sidebars.js | 21 +-
docs/docs/configuration/alerts-reports.mdx | 8 +
docs/docs/configuration/async-queries-celery.mdx | 10 +-
docs/docs/configuration/theming.mdx | 49 +-
docs/package.json | 14 +-
docs/sidebarTutorials.js | 21 +-
docs/static/img/extensions/api_explorer.png | Bin 0 -> 487250 bytes
docs/static/img/extensions/sql_flow_visualizer.png | Bin 0 -> 113995 bytes
.../version-6.0.0/configuration/theming.mdx | 49 +-
docs/yarn.lock | 1370 ++++++------
pyproject.toml | 2 +
pytest.ini | 1 +
requirements/base.txt | 4 +-
requirements/development.txt | 33 +-
scripts/uv-pip-compile.sh | 17 +
superset-core/pyproject.toml | 1 +
superset-core/src/superset_core/mcp/__init__.py | 161 ++
superset-embedded-sdk/package-lock.json | 4 +-
superset-embedded-sdk/package.json | 2 +-
superset-embedded-sdk/src/index.ts | 4 +
.../src/superset_extensions_cli/cli.py | 54 +-
superset-extensions-cli/tests/test_cli_init.py | 136 ++
.../explore/visualizations/download_chart.test.js | 4 +
superset-frontend/package-lock.json | 2266 +++----------------
superset-frontend/package.json | 8 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-core/package.json | 4 +-
.../packages/superset-core/src/ui/theme/types.ts | 22 +
.../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 | 2 -
.../superset-ui-core/src/query/types/Query.ts | 3 +
.../legacy-plugin-chart-country-map/package.json | 2 +-
.../src/CountryMap.css | 61 -
.../src/CountryMap.js | 68 +-
.../src/ReactCountryMap.jsx | 34 +-
.../test/CountryMap.test.tsx | 159 ++
.../legacy-preset-chart-deckgl/package.json | 4 +-
.../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 +-
.../plugins/legacy-preset-chart-nvd3/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 | 2 +-
.../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 | 4 +
.../plugin-chart-echarts/src/BigNumber/utils.ts | 5 +-
.../src/BoxPlot/EchartsBoxPlot.tsx | 4 +-
.../src/Gantt/EchartsGantt.tsx | 1 +
.../src/Gantt/transformProps.ts | 2 +
.../src/Gauge/transformProps.ts | 16 +-
.../src/Graph/EchartsGraph.tsx | 1 +
.../plugin-chart-echarts/src/Heatmap/Heatmap.tsx | 3 +-
.../src/Heatmap/transformProps.ts | 161 +-
.../src/Histogram/Histogram.tsx | 2 +
.../src/MixedTimeseries/EchartsMixedTimeseries.tsx | 1 +
.../plugin-chart-echarts/src/Sankey/Sankey.tsx | 3 +-
.../src/Sunburst/EchartsSunburst.tsx | 1 +
.../src/Timeseries/EchartsTimeseries.test.tsx | 311 +++
.../src/Timeseries/EchartsTimeseries.tsx | 28 +-
.../plugin-chart-echarts/src/Tree/EchartsTree.tsx | 8 +-
.../src/Treemap/EchartsTreemap.tsx | 1 +
.../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 | 2 +-
.../src/react-pivottable/Styles.js | 7 +
.../plugin-chart-table/src/DataTable/DataTable.tsx | 107 +
.../src/DataTable/hooks/useSticky.tsx | 14 +-
.../src/DataTable/types/react-table.d.ts | 2 +
.../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 +
.../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 | 3 +-
.../src/SqlLab/components/ResultSet/index.tsx | 7 +-
.../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 +-
.../DatasourceEditor/DatasourceEditor.jsx | 3 +-
.../src/components/ListView/ListView.tsx | 2 +-
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 +
.../components/gridComponents/Chart/Chart.jsx | 80 +-
.../components/gridComponents/Chart/Chart.test.jsx | 124 ++
.../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 +-
.../new/{NewRow.test.jsx => NewRow.test.tsx} | 6 +-
.../gridComponents/new/{NewRow.jsx => NewRow.tsx} | 23 +-
.../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/embedded/api.tsx | 16 +-
superset-frontend/src/embedded/index.tsx | 4 +
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/ExploreViewContainer/index.jsx | 11 +-
.../src/explore/components/SaveModal.test.jsx | 84 +
.../src/explore/components/SaveModal.tsx | 6 +
.../FormattingPopoverContent.test.tsx | 71 +
.../FormattingPopoverContent.tsx | 79 +-
.../controls/ConditionalFormattingControl/types.ts | 1 +
.../DatasourceControl/DatasourceControl.test.tsx | 183 +-
.../src/explore/components/controls/ViewQuery.tsx | 5 +-
.../useExploreAdditionalActionsMenu/index.jsx | 289 ++-
.../src/explore/controlUtils/getControlState.ts | 10 +-
.../src/features/alerts/AlertReportModal.tsx | 8 +-
.../src/features/databases/DatabaseModal/index.tsx | 3 +-
.../datasets/hooks/useDatasetLists.test.ts | 392 ++++
.../src/features/datasets/hooks/useDatasetLists.ts | 3 +-
superset-frontend/src/features/home/EmptyState.tsx | 3 +-
superset-frontend/src/features/home/RightMenu.tsx | 4 +-
.../src/hooks/apiResources/datasets.test.ts | 449 ++++
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 +
superset-websocket/package-lock.json | 1062 +++------
superset-websocket/package.json | 24 +-
.../utils/client-ws-app/package-lock.json | 222 +-
.../utils/client-ws-app/package.json | 6 +-
superset/app.py | 16 +
.../chart/data/streaming_export_command.py | 2 +-
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/utils.py | 14 +-
superset/commands/dataset/export.py | 10 +-
superset/commands/dataset/refresh.py | 18 +
superset/commands/explore/get.py | 4 +-
superset/commands/logs/prune.py | 32 +-
superset/commands/report/execute.py | 96 +-
superset/commands/sql_lab/results.py | 57 +-
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 | 37 +-
superset/common/utils/query_cache_manager.py | 2 +
superset/config.py | 70 +-
superset/connectors/sqla/models.py | 241 +-
.../api => superset/core/mcp}/__init__.py | 0
superset/core/mcp/core_mcp_injection.py | 225 ++
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 | 3 +
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/key_value/shared_entries.py | 57 +-
superset/key_value/utils.py | 85 +-
superset/mcp_service/CLAUDE.md | 198 +-
superset/mcp_service/app.py | 43 +-
superset/mcp_service/auth.py | 66 +-
superset/mcp_service/caching.py | 137 ++
.../chart/prompts/create_chart_guided.py | 6 +-
.../mcp_service/chart/resources/chart_configs.py | 2 +-
superset/mcp_service/chart/schemas.py | 66 +-
superset/mcp_service/chart/tool/generate_chart.py | 49 +-
.../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/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 | 25 +-
superset/mcp_service/flask_singleton.py | 15 +-
superset/mcp_service/mcp_config.py | 31 +-
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 | 12 +-
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 | 10 +-
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 | 40 +-
superset/models/dashboard.py | 10 +
superset/models/helpers.py | 820 ++++++-
superset/models/sql_lab.py | 31 +-
superset/security/manager.py | 108 +-
superset/sql/dialects/__init__.py | 3 +-
superset/sql/dialects/db2.py | 148 ++
superset/sql/parse.py | 32 +-
superset/sql_lab.py | 46 +-
superset/sqllab/api.py | 29 +-
superset/sqllab/schemas.py | 8 +
superset/superset_typing.py | 57 +-
superset/tags/api.py | 1 -
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 | 25 +-
superset/utils/cache.py | 26 +-
superset/utils/core.py | 39 +-
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/core.py | 7 +-
superset/views/custom_tags_api_mixin.py | 105 +
superset/views/log/api.py | 6 +-
superset/views/utils.py | 7 +-
superset/viz.py | 4 +-
tests/integration_tests/charts/commands_tests.py | 58 +-
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 | 3 +-
tests/integration_tests/superset_test_config.py | 4 +
tests/integration_tests/tags/api_tests.py | 47 +-
.../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 +-
.../commands/databases/sync_permissions_test.py | 11 +-
.../common/test_query_context_processor.py | 788 ++++++-
tests/unit_tests/common/test_time_shifts.py | 26 +-
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/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 | 11 +
tests/unit_tests/mcp_service/test_mcp_caching.py | 143 ++
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 | 2 +-
tests/unit_tests/models/helpers_test.py | 297 ++-
tests/unit_tests/queries/query_object_test.py | 63 +-
tests/unit_tests/sql/dialects/db2_tests.py | 246 ++
tests/unit_tests/sql/transpile_to_dialect_test.py | 347 +++
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 ++++
431 files changed, 22900 insertions(+), 9635 deletions(-)
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%)
create mode 100644 docs/static/img/extensions/api_explorer.png
create mode 100644 docs/static/img/extensions/sql_flow_visualizer.png
create mode 100644 superset-core/src/superset_core/mcp/__init__.py
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%)
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
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
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/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
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/test_subdirectory_deployments.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_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/sql/dialects/db2_tests.py
create mode 100644 tests/unit_tests/sql/transpile_to_dialect_test.py
create mode 100644 tests/unit_tests/utils/test_hashing.py
create mode 100644 tests/unit_tests/utils/test_screenshot_cache_fix.py