You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ms...@apache.org on 2026/06/08 19:58:54 UTC
(superset) branch msyavuz/fix/theme-embedded-override updated (aaf69673c71 -> 62626d2251d)
This is an automated email from the ASF dual-hosted git repository.
msyavuz pushed a change to branch msyavuz/fix/theme-embedded-override
in repository https://gitbox.apache.org/repos/asf/superset.git
from aaf69673c71 fix(theme): embedded method overrides dashboard level config
add e5ff6de790b chore: correct typos in config.py and models_test.py comments (#40706)
add cb2a56d16e0 chore: guard recursive merge keys and invoke subprocess without a shell (#40558)
add e5c7200551a ci: gate expensive test workflows at the job level (#40718)
add 001834470b8 fix(mcp): escape LIKE wildcards in MCP list tool search filters (#40682)
add f4dfb7f0266 fix(mcp): fall back to form_data spatial query for Deck.gl charts (#40339)
add fcb1e299ace fix(nvd3): sanitize generateMultiLineTooltipContent output (#40612)
add 6ea4e227856 refactor(nvd3): extract testable generateAnnotationTooltipContent helper (#40620)
add 80ea36c852f fix(db_engine_specs): escape schema name in regex; document safe filter pattern (#40642)
add c373da1bb91 ci: add cancel-in-progress concurrency to PR helper workflows (#40725)
add 80a5f6b787e fix(calendar): Fix day offset in Calendar Heatmap visualization (#34564)
add 2be2246a003 chore(deps-dev): bump gevent from 24.2.1 to 26.4.0 (#40378)
add 43fde2fb07e fix(charts): enforce DISALLOWED_SQL_FUNCTIONS and DISALLOWED_SQL_TABLES at chart-data execution (#40567)
add 6a125bf774b fix(jinja): expose dialect-escaped companion value on get_filters() (#40531)
add 9d1bc6b2ccb fix(i18n): don't flag intentional string deletions as translation regressions (#40716)
add cf5307d0c6f ci: reduce Cypress parallelism from 6 shards to 2 (#40717)
add 5ba60d51fd0 ci: gate CodeQL analysis at the job level for docs-only PRs (#40724)
add 41572dbf9df fix(chart): restrict owner lookup to users with write access (#39304)
add 696705794b1 ci: gate docker image builds at the job level (#40723)
add 966c243db6f ci: drop removed Cypress shards from required status checks (#40770)
add aa547da9607 fix: remove registration_hash in the registrations API (#40643)
add bdb081329fb feat(websocket): validate WebSocket upgrade Origin against an allowlist (#40625)
add ff5e43c8a09 ci: add timeout-minutes to compute-heavy workflow jobs (#40743)
add 8dcc7e7eec2 ci: stable required-check anchors for skippable matrix test jobs (#40772)
add ddb09f468d8 fix(plugin-chart-ag-grid-table): enforce numeric bounds for range (BETWEEN) filters (#40607)
add 23d18743bdb fix(deck.gl): strip all JS-executed form_data keys when JavaScript controls are disabled (#40602)
add c505c70c52e fix(databases): do not render existing encrypted field value in edit mode (#40628)
add 75d94ff466a fix(SafeMarkdown): block script-executing link protocols regardless of EscapeMarkdownHtml (#40622)
add cd5bdf11acc fix(playwright): de-flake list-view delete and bulk-export specs (#39980)
add 9a31362fa5e fix(reports): stamp email subject date at send time, not import time (#40693)
add 7d69f76127a fix(mcp): API key authentication for MCP ā transport, validation, and RBAC (#39604)
add 6f97d9817e1 fix(database): preserve engine_information when creating database connection (#38107)
add 80a3df3550e ci: run full Python-version matrix on push, current-only on PRs (#40722)
add 3f94c9db2d5 chore(deps): bump query-string from 9.3.1 to 9.4.0 in /superset-frontend (#40742)
add cbd731e6614 chore(deps-dev): bump webpack from 5.107.1 to 5.107.2 in /superset-frontend (#40741)
add 09cd2c26cdc chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40740)
add 6662529306e chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40739)
add 0ad09d5cd0e chore(deps): bump dompurify from 3.4.8 to 3.4.7 in /superset-frontend/packages/superset-ui-core (#40737)
add ddeec68c88a chore(deps): bump dompurify from 3.4.5 to 3.4.7 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#40735)
add 0d1b702ce8d feat(extensions): static supply-chain controls ā denylist + version policy (#40668)
add 7d323dc0ae3 fix(filters): Enable decimal values in Range filter slider (#34742)
add 639866625db fix(echarts): Show full labels in bar chart tooltips (#34759)
add f5f4a415981 chore(deps-dev): bump @babel/register from 7.29.3 to 7.29.7 in /superset-frontend (#40757)
add 937eff6d52c chore(deps-dev): bump oxlint from 1.66.0 to 1.67.0 in /superset-frontend (#40755)
add 04939c94cc4 chore(deps-dev): bump @babel/node from 7.29.0 to 7.29.7 in /superset-frontend (#40752)
add 94c1a1b1f20 chore(deps-dev): bump @babel/runtime-corejs3 from 7.29.2 to 7.29.7 in /superset-frontend (#40751)
add ccce0cab187 chore(deps): bump content-disposition from 2.0.0 to 2.0.1 in /superset-frontend (#40750)
add 74060987082 fix(dashboard-filter): Consider dashboard filters to charts not declared in the dashboard position (#40774)
add 79c74af2e9d ci: cache npm downloads in frontend-heavy workflows (#40744)
add 875673f6707 fix(asyncEvent): use Map for job listener/retry registries (#40747)
add 42367afb25c fix(reports): add per-tile animation wait to prevent partial ECharts renders in tiled screenshots (#40694)
add 98c096df056 chore(deps): bump @babel/runtime from 7.29.2 to 7.29.7 in /superset-frontend (#40753)
add 45a616439bb chore(deps): update dayjs requirement from ^1.11.20 to ^1.11.21 in /superset-frontend/packages/superset-ui-core (#40736)
add aa4092ba682 fix(mcp): add select_columns lean defaults to get_dashboard_info, get_chart_info, get_dataset_info (#40473)
add fa42b13eb83 fix(dataset): preserve numeric column types when pydruid infers STRING from first-row value (#40677)
add 601f9c2b8c3 fix(embedded): add guest token to streaming exports (#40712)
add 55bb75efe6d fix(dashboard): prevent filter dropdown button from disappearing during layout recalculations (#38193)
add 645aa3b1df4 chore(deps-dev): bump eslint-plugin-prettier from 5.5.5 to 5.5.6 in /superset-frontend (#40795)
add 81192048572 fix(dashboard): sort Dynamic Group By display values alphabetically (#40220)
add 108e40cbb61 feat(duration-format): replace pretty-ms with native Intl.DurationFormat for localized duration formatting (#39330)
add 550c80f640a chore(lint): convert ChartRenderer, Chart, DrillByChart to function components (#39459)
add 70ee6e21eb6 chore(deps-dev): bump @babel/core from 7.29.0 to 7.29.7 in /superset-frontend (#40800)
add b069b6caf6c chore(deps-dev): bump terser-webpack-plugin from 5.6.0 to 5.6.1 in /superset-frontend (#40797)
add 20024ce3af2 chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.10.2 to 0.10.4 in /superset-frontend (#40796)
add 44777cc1109 chore(deps): bump @ant-design/icons from 6.2.3 to 6.2.5 in /superset-frontend (#40794)
add 2aca35cb68d chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40793)
add e956f82224b fix(dashboard): prevent divider display controls from reverting on second save (#40696)
add 1623ceda73d fix(result_set): preserve JSON/JSONB data as objects instead of strings (#38172)
add 19d01521bf5 fix(dashboard): replace chartsInScope references at import time (#38171)
add 81bc3088e22 fix(dashboard): prevent stale favorite status errors after navigation (#38156)
add 863e93539ae fix(dashboard): clean up JSON formatting and contribution suffix in V⦠(#40683)
add 0984839788f ci: required-check anchors for cypress-matrix and playwright-tests (unblock docs-only PRs) (#40780)
add 7eaaffde896 ci: cache npm downloads in the translations workflow (#40779)
add 7f452e40966 chore(deps): bump @ant-design/icons from 6.2.3 to 6.2.5 in /docs (#40792)
add 5a6306983e5 docs: add social media links to website footer and README (#38108)
add 4715cfd3725 chore(deps-dev): bump eslint-plugin-prettier from 5.5.5 to 5.5.6 in /docs (#40791)
add 2babb480818 chore(deps): bump ioredis from 5.10.1 to 5.11.0 in /superset-websocket (#40734)
add 3d7021fdf95 chore(deps): bump hot-shots from 14.3.1 to 15.0.0 in /superset-websocket (#40789)
add 151df43d9d0 fix(docker): prevent static asset 404s by waiting for webpack dev server (#38161)
add 6b0d7479399 fix: cache warmup using WebDriver for reliable authentication (#38449)
add 381b99ae84b fix(csv): respect CSV_EXPORT config for decimal separator and delimiter (#38170)
add b85a2cdab15 fix: ODPS (MaxCompute) data source table preview failed (#38174)
add 84aaaaa6b08 fix(mcp): filter sensitive database columns from list_databases loaded-metadata (#40771)
add ef7379c47e3 chore(mcp): remove low-value list/info tools that fail agent-native policy (#40690)
add 6348aa19173 chore(deps-dev): update taos-ws-py requirement from >=0.3.8 to >=0.6.9 (#40831)
add d3f07a7ba54 chore(deps-dev): update playwright requirement from <2,>=1.37.0 to >=1.60.0,<2 (#40829)
add 2463eb65b1c chore(deps-dev): bump python-ldap from 3.4.5 to 3.4.7 (#40827)
add 9da45363542 chore(deps-dev): update oceanbase-py requirement from >=0.0.1 to >=0.0.1.2 (#40824)
add 849f297e9d2 chore(deps-dev): update sqlalchemy-vertica-python requirement from <0.7,>=0.5.9 to >=0.6.3,<0.7 (#40826)
add 138e405cb60 chore(deps): bump xlsxwriter from 3.0.9 to 3.2.9 (#40825)
add c0a12f4cfb5 chore(deps-dev): update sqlalchemy-kusto requirement from <4,>=3.0.0 to >=3.1.2,<4 (#40828)
add 9bb700ff0df chore(deps-dev): bump concurrently from 9.2.1 to 10.0.0 in /superset-frontend (#40798)
add 5da63d716be fix(toasts): stop the toast overlay from covering controls behind it (#40805)
add 06f95f53623 refactor(explore): migrate Explore Controls from react-dnd to @dnd-kit (#37880)
add 21189ae130a fix(dashboard): update browser tab title when dashboard is renamed (#40730)
add 7c7ab88a602 feat(ListView): expose expandable prop (#40765)
add dc423b22b31 feat(embedded): support themeMode URL param for initial theme (#40760)
add a5fe47ee715 docs(footer): render social icons as uniform white (#40854)
add b4eda37fbf9 chore(deps-dev): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /superset-frontend (#40849)
add 983f2818b0e chore(deps-dev): bump @swc/plugin-emotion from 14.10.0 to 14.12.0 in /superset-frontend (#40848)
add c5d795c1f11 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40847)
add 709fd52b0b3 chore(deps-dev): bump tsx from 4.22.3 to 4.22.4 in /superset-frontend (#40845)
add 534d2191ffe chore(deps): bump react-draggable from 4.5.0 to 4.6.0 in /superset-frontend (#40844)
add c6ecaf9642b chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /docs (#40843)
add 228ac0d5687 chore(deps): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /docs (#40842)
add ba6e9cc90fa chore(deps-dev): bump eslint from 10.4.0 to 10.4.1 in /superset-websocket (#40840)
add 507cf936877 test(dashboard): API-created dashboards should link charts from position_json (#32966) (#40816)
add 62626d2251d Merge branch 'master' into msyavuz/fix/theme-embedded-override
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 14 +-
.github/workflows/codeql-analysis.yml | 35 +-
.github/workflows/docker.yml | 54 +-
.github/workflows/github-action-validator.yml | 5 +
.github/workflows/labeler.yml | 5 +
.github/workflows/pr-lint.yml | 5 +
.github/workflows/pre-commit.yml | 8 +-
.github/workflows/superset-e2e.yml | 126 +++-
.github/workflows/superset-extensions-cli.yml | 5 +-
.github/workflows/superset-frontend.yml | 6 +
.github/workflows/superset-playwright.yml | 40 +-
.../workflows/superset-python-integrationtest.yml | 98 +--
.github/workflows/superset-python-presto-hive.yml | 50 +-
.github/workflows/superset-python-unittest.yml | 56 +-
.github/workflows/superset-translations.yml | 2 +
.github/workflows/superset-websocket.yml | 1 +
README.md | 5 +
UPDATING.md | 23 +
docker-compose.yml | 25 +
docs/admin_docs/configuration/cache.mdx | 33 +
docs/docusaurus.config.ts | 17 +
docs/i18n/en/docusaurus-theme-classic/footer.json | 2 +-
docs/package.json | 8 +-
docs/src/styles/main.css | 52 +-
docs/static/img/community/reddit-symbol.svg | Bin 0 -> 1995 bytes
docs/static/img/community/slack-symbol.svg | Bin 0 -> 1911 bytes
docs/yarn.lock | 55 +-
pyproject.toml | 17 +-
requirements/base.txt | 4 +-
requirements/development.txt | 8 +-
.../translations/check_translation_regression.py | 174 +++--
superset-embedded-sdk/README.md | 116 ++--
superset-frontend/jest.config.js | 2 +-
superset-frontend/package-lock.json | 577 ++++++++--------
superset-frontend/package.json | 38 +-
.../packages/superset-core/package.json | 2 +-
.../src/utils/D3Formatting.ts | 2 +-
.../packages/superset-ui-core/package.json | 10 +-
.../DropdownContainer/DropdownContainer.tsx | 31 +-
.../src/components/Modal/Modal.tsx | 20 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 49 +-
.../src/components/Table/index.tsx | 2 +
.../TableCollection/TableCollection.test.tsx | 6 +
.../src/components/TableCollection/index.tsx | 31 +-
.../superset-ui-core/src/number-format/README.md | 6 +-
.../factories/createDurationFormatter.ts | 47 +-
.../utils/getIntlDurationFormatter.ts} | 14 +-
.../src/number-format/utils/parseMilliseconds.ts | 57 ++
.../superset-ui-core/src/query/types/Dashboard.ts | 1 -
.../test/components/SafeMarkdown.test.tsx | 58 ++
.../factories/createDurationFormatter.test.ts | 25 +-
.../utils/getIntlDurationFormatter.test.ts | 38 ++
.../number-format/utils/parseMilliseconds.test.ts | 148 +++++
.../packages/superset-ui-core/types/intl.d.ts | 73 ++
.../playwright/components/ListView/BulkSelect.ts | 84 ++-
.../playwright/components/ListView/index.ts | 1 +
.../components/modals/DeleteConfirmationModal.ts | 32 +-
.../playwright/pages/ChartListPage.ts | 33 +-
.../playwright/pages/DashboardListPage.ts | 33 +-
.../playwright/pages/DatasetListPage.ts | 39 +-
.../playwright/tests/chart/chart-list.spec.ts | 103 ++-
.../tests/dashboard/dashboard-list.spec.ts | 137 ++--
.../playwright/tests/dataset/dataset-list.spec.ts | 128 ++--
superset-frontend/playwright/utils/constants.ts | 7 +-
.../legacy-plugin-chart-calendar/src/utils.ts | 4 +-
.../src/vendor/cal-heatmap.ts | 27 +-
.../test/utils.test.ts | 125 ++--
.../plugins/legacy-preset-chart-nvd3/package.json | 4 +-
.../plugins/legacy-preset-chart-nvd3/src/utils.ts | 36 +-
.../legacy-preset-chart-nvd3/test/utils.test.ts | 79 +++
.../src/utils/agGridFilterConverter.ts | 33 +-
.../test/utils/agGridFilterConverter.test.ts | 61 ++
.../plugins/plugin-chart-echarts/package.json | 2 +-
.../src/Timeseries/transformProps.ts | 6 +-
.../test/Timeseries/transformProps.test.ts | 97 +++
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../plugins/preset-chart-deckgl/package.json | 2 +-
superset-frontend/spec/helpers/setup.ts | 4 +
superset-frontend/spec/helpers/testing-library.tsx | 7 +
.../DynamicGroupBy/DynamicGroupByPlugin.test.tsx | 81 +++
.../DynamicGroupBy/DynamicGroupByPlugin.tsx | 19 +-
.../components/DynamicGroupBy/types.ts | 1 -
superset-frontend/src/components/Chart/Chart.tsx | 506 +++++++-------
.../src/components/Chart/ChartRenderer.test.tsx | 83 +--
.../src/components/Chart/ChartRenderer.tsx | 732 ++++++++++-----------
.../src/components/Chart/DrillBy/DrillByChart.tsx | 4 +-
.../src/components/ListView/ListView.test.tsx | 5 +-
.../src/components/ListView/ListView.tsx | 23 +-
superset-frontend/src/components/ListView/utils.ts | 22 +-
.../MessageToasts/ToastPresenter.test.tsx | 10 +
.../components/MessageToasts/ToastPresenter.tsx | 4 +-
.../useStreamingExport.test.ts | 32 +
.../StreamingExportModal/useStreamingExport.ts | 5 +
.../src/dashboard/actions/dashboardState.test.ts | 331 +++++++++-
.../src/dashboard/actions/dashboardState.ts | 100 ++-
.../DashboardBuilder/DashboardWrapper.test.tsx | 53 +-
.../FilterControls/GroupByFilterCard.test.tsx | 41 ++
.../FilterBar/FilterControls/GroupByFilterCard.tsx | 36 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 2 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 133 ++++
.../FiltersConfigModal/FiltersConfigModal.tsx | 18 +-
.../dashboard/containers/DashboardPage.test.tsx | 191 +++++-
.../src/dashboard/containers/DashboardPage.tsx | 24 +-
.../util/charts/getFormDataWithExtraFilters.ts | 12 -
.../util/migrateChartCustomization.test.ts | 24 +-
.../dashboard/util/migrateChartCustomization.ts | 7 +-
.../src/embedded/EmbeddedContextProviders.tsx | 5 +-
.../src/embedded/getInitialThemeMode.test.ts | 66 ++
.../embedded/getInitialThemeMode.ts} | 27 +-
.../components/useGridResultTable.tsx | 37 +-
.../DataTablesPane/test/DataTablesPane.test.tsx | 40 ++
.../DatasourcePanelDragOption.test.tsx | 16 +-
.../DatasourcePanelDragOption/index.tsx | 44 +-
.../ExploreContainer/ExploreContainer.test.tsx | 120 ++--
.../ExploreContainer/ExploreDndContext.test.tsx | 125 ++++
.../ExploreContainer/ExploreDndContext.tsx | 244 +++++++
.../explore/components/ExploreContainer/index.tsx | 81 +--
.../components/controls/ContourControl/index.tsx | 2 +
.../DndColumnMetricSelect.test.tsx | 273 ++++----
.../DndColumnSelect.test.tsx | 24 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 5 +
.../DndFilterSelect.test.tsx | 329 +++++----
.../DndColumnSelectControl/DndFilterSelect.tsx | 2 +
.../DndMetricSelect.test.tsx | 258 ++++----
.../DndColumnSelectControl/DndMetricSelect.tsx | 5 +
.../DndColumnSelectControl/DndSelectLabel.test.tsx | 9 +-
.../DndColumnSelectControl/DndSelectLabel.tsx | 83 ++-
.../DndColumnSelectControl/OptionWrapper.test.tsx | 55 +-
.../DndColumnSelectControl/OptionWrapper.tsx | 90 +--
.../DndColumnSelectControl/dndTestUtils.ts | 120 ++++
.../AdhocFilterOption/AdhocFilterOption.test.tsx | 2 +-
.../OptionControls/OptionControls.test.tsx | 21 +-
.../components/controls/OptionControls/index.tsx | 109 ++-
.../DatabaseConnectionForm/EncryptedField.test.tsx | 62 +-
.../DatabaseConnectionForm/EncryptedField.tsx | 12 +-
.../databases/DatabaseModal/index.test.tsx | 37 ++
.../src/features/databases/DatabaseModal/index.tsx | 7 +
.../src/features/tasks/TaskStatusIcon.tsx | 4 +
.../src/features/tasks/timeUtils.test.ts | 6 +-
superset-frontend/src/features/tasks/timeUtils.ts | 72 +-
.../components/Range/RangeFilterPlugin.test.tsx | 159 ++++-
.../filters/components/Range/RangeFilterPlugin.tsx | 26 +
.../src/middleware/asyncEvent.test.ts | 28 +
superset-frontend/src/middleware/asyncEvent.ts | 37 +-
superset-frontend/src/pages/ChartList/index.tsx | 3 +
.../src/pages/DashboardList/index.tsx | 3 +
superset-frontend/src/pages/DatasetList/index.tsx | 6 +
superset-frontend/src/pages/TaskList/index.tsx | 7 +-
.../UserRegistrations/UserRegistrations.test.tsx | 7 +-
.../src/pages/UserRegistrations/index.tsx | 14 -
superset-frontend/src/preamble.test.ts | 113 ++++
superset-frontend/src/preamble.ts | 3 +-
superset-frontend/src/setup/setupFormatters.ts | 15 +-
superset-websocket/README.md | 19 +
superset-websocket/config.example.json | 3 +-
superset-websocket/package-lock.json | 135 ++--
superset-websocket/package.json | 6 +-
superset-websocket/spec/index.test.ts | 99 +++
superset-websocket/src/config.ts | 9 +-
superset-websocket/src/index.ts | 37 ++
superset/charts/api.py | 9 +
superset/charts/client_processing.py | 4 +-
superset/charts/data/dashboard_filter_context.py | 30 +-
superset/commands/dashboard/create.py | 13 +-
superset/commands/dashboard/importers/v1/utils.py | 148 +++--
superset/commands/streaming_export/base.py | 67 +-
superset/config.py | 27 +-
superset/daos/base.py | 37 +-
superset/daos/database.py | 75 +++
superset/databases/api.py | 20 +-
superset/dataframe.py | 18 +-
superset/db_engine_specs/__init__.py | 8 +
superset/db_engine_specs/base.py | 43 +-
superset/db_engine_specs/druid.py | 26 +
superset/db_engine_specs/odps.py | 201 ++++++
superset/extensions/utils.py | 79 +++
superset/jinja_context.py | 55 +-
superset/mcp_service/action_log/schemas.py | 302 ---------
superset/mcp_service/action_log/tool/__init__.py | 24 -
.../action_log/tool/get_action_log_info.py | 97 ---
.../action_log/tool/list_action_logs.py | 152 -----
superset/mcp_service/app.py | 50 +-
superset/mcp_service/auth.py | 291 ++++----
superset/mcp_service/bin/superset-mcp.js | 4 +-
superset/mcp_service/chart/chart_helpers.py | 153 +++++
superset/mcp_service/chart/schemas.py | 44 ++
superset/mcp_service/chart/tool/get_chart_data.py | 25 +-
superset/mcp_service/chart/tool/get_chart_info.py | 17 +-
superset/mcp_service/common/schema_discovery.py | 85 +--
superset/mcp_service/composite_token_verifier.py | 199 ++++++
superset/mcp_service/constants.py | 4 +-
superset/mcp_service/css_template/__init__.py | 16 -
superset/mcp_service/css_template/schemas.py | 280 --------
superset/mcp_service/css_template/tool/__init__.py | 24 -
.../css_template/tool/get_css_template_info.py | 108 ---
.../css_template/tool/list_css_templates.py | 150 -----
superset/mcp_service/dashboard/schemas.py | 49 ++
.../dashboard/tool/get_dashboard_info.py | 17 +-
superset/mcp_service/dataset/schemas.py | 86 +++
.../mcp_service/dataset/tool/get_dataset_info.py | 16 +-
superset/mcp_service/mcp_config.py | 189 ++++--
superset/mcp_service/mcp_core.py | 12 +
superset/mcp_service/middleware.py | 8 +-
superset/mcp_service/plugin/__init__.py | 16 -
superset/mcp_service/plugin/dao.py | 23 -
superset/mcp_service/plugin/schemas.py | 213 ------
superset/mcp_service/plugin/tool/__init__.py | 24 -
.../mcp_service/plugin/tool/get_plugin_info.py | 101 ---
superset/mcp_service/plugin/tool/list_plugins.py | 123 ----
superset/mcp_service/screenshot/webdriver_pool.py | 6 +-
superset/mcp_service/server.py | 10 +-
superset/mcp_service/system/tool/get_schema.py | 55 +-
superset/mcp_service/theme/__init__.py | 16 -
superset/mcp_service/theme/schemas.py | 305 ---------
superset/mcp_service/theme/tool/__init__.py | 24 -
superset/mcp_service/theme/tool/get_theme_info.py | 116 ----
superset/mcp_service/theme/tool/list_themes.py | 147 -----
superset/models/helpers.py | 33 +
superset/reports/notifications/email.py | 16 +-
superset/result_set.py | 56 +-
superset/security/api.py | 13 +-
superset/security/manager.py | 75 ++-
superset/sql/parse.py | 28 +
superset/tasks/cache.py | 204 ++----
superset/translations/ar/LC_MESSAGES/messages.po | 80 ++-
superset/translations/ca/LC_MESSAGES/messages.po | 86 ++-
superset/translations/cs/LC_MESSAGES/messages.po | 86 ++-
superset/translations/de/LC_MESSAGES/messages.po | 82 ++-
superset/translations/en/LC_MESSAGES/messages.po | 72 +-
superset/translations/es/LC_MESSAGES/messages.po | 88 ++-
superset/translations/fa/LC_MESSAGES/messages.po | 82 ++-
superset/translations/fi/LC_MESSAGES/messages.po | 99 ++-
superset/translations/fr/LC_MESSAGES/messages.po | 86 ++-
superset/translations/it/LC_MESSAGES/messages.po | 74 ++-
superset/translations/ja/LC_MESSAGES/messages.po | 84 ++-
superset/translations/ko/LC_MESSAGES/messages.po | 73 +-
superset/translations/lv/LC_MESSAGES/messages.po | 84 ++-
superset/translations/messages.pot | 66 +-
superset/translations/mi/LC_MESSAGES/messages.po | 84 ++-
superset/translations/nl/LC_MESSAGES/messages.po | 80 ++-
superset/translations/pl/LC_MESSAGES/messages.po | 80 ++-
superset/translations/pt/LC_MESSAGES/messages.po | 74 ++-
.../translations/pt_BR/LC_MESSAGES/messages.po | 80 ++-
superset/translations/requirements.txt | 5 +-
superset/translations/ru/LC_MESSAGES/messages.po | 92 ++-
superset/translations/sk/LC_MESSAGES/messages.po | 86 ++-
superset/translations/sl/LC_MESSAGES/messages.po | 80 ++-
superset/translations/th/LC_MESSAGES/messages.po | 99 ++-
superset/translations/tr/LC_MESSAGES/messages.po | 76 ++-
superset/translations/uk/LC_MESSAGES/messages.po | 84 ++-
superset/translations/zh/LC_MESSAGES/messages.po | 77 ++-
.../translations/zh_TW/LC_MESSAGES/messages.po | 77 ++-
superset/utils/screenshot_utils.py | 8 +
superset/utils/screenshots.py | 16 +-
superset/utils/webdriver.py | 95 ++-
superset/views/utils.py | 15 +-
tests/integration_tests/charts/api_tests.py | 8 +
tests/integration_tests/dao/base_dao_test.py | 69 ++
tests/integration_tests/dashboards/api_tests.py | 76 +++
.../db_engine_specs/base_engine_spec_tests.py | 7 +-
tests/integration_tests/result_set_tests.py | 34 +-
tests/integration_tests/strategy_tests.py | 56 +-
tests/integration_tests/tasks/test_cache.py | 95 ---
tests/integration_tests/tasks/test_utils.py | 77 ---
tests/integration_tests/thumbnails_tests.py | 16 +-
tests/unit_tests/charts/test_client_processing.py | 111 ++++
.../charts/test_dashboard_filter_context.py | 80 ++-
.../sql_lab/streaming_export_command_test.py | 194 ++++++
tests/unit_tests/connectors/sqla/models_test.py | 114 +++-
tests/unit_tests/connectors/sqla/utils_test.py | 1 +
.../dashboards/commands/importers/v1/utils_test.py | 174 +++++
tests/unit_tests/databases/api_test.py | 12 +-
tests/unit_tests/db_engine_specs/test_base.py | 77 +++
tests/unit_tests/db_engine_specs/test_druid.py | 116 ++++
tests/unit_tests/db_engine_specs/test_odps.py | 174 +++++
tests/unit_tests/extensions/test_utils.py | 96 +++
tests/unit_tests/jinja_context_test.py | 118 ++++
.../unit_tests/mcp_service/action_log/__init__.py | 16 -
.../mcp_service/action_log/tool/__init__.py | 16 -
.../action_log/tool/test_action_log_tools.py | 401 -----------
.../mcp_service/chart/test_chart_helpers.py | 651 ++++++++++++++++++
.../mcp_service/chart/tool/test_get_chart_info.py | 91 ++-
.../mcp_service/css_template/__init__.py | 16 -
.../mcp_service/css_template/tool/__init__.py | 16 -
.../css_template/tool/test_css_template_tools.py | 280 --------
.../dashboard/tool/test_dashboard_tools.py | 72 ++
.../database/tool/test_database_tools.py | 42 ++
.../mcp_service/dataset/tool/test_dataset_tools.py | 59 ++
tests/unit_tests/mcp_service/plugin/__init__.py | 16 -
.../unit_tests/mcp_service/plugin/tool/__init__.py | 16 -
.../mcp_service/plugin/tool/test_plugin_tools.py | 172 -----
.../mcp_service/system/tool/test_get_schema.py | 149 +----
.../mcp_service/system/tool/test_mcp_core.py | 76 +++
tests/unit_tests/mcp_service/test_auth_api_key.py | 366 +++++++----
tests/unit_tests/mcp_service/test_auth_rbac.py | 14 +-
.../mcp_service/test_auth_user_resolution.py | 4 +-
.../mcp_service/test_composite_token_verifier.py | 345 ++++++++++
tests/unit_tests/mcp_service/test_mcp_config.py | 213 ++++++
tests/unit_tests/mcp_service/test_mcp_server.py | 23 +
.../mcp_service/test_mcp_tool_registration.py | 53 +-
.../mcp_service/test_tool_search_transform.py | 14 +-
tests/unit_tests/mcp_service/theme/__init__.py | 16 -
.../unit_tests/mcp_service/theme/tool/__init__.py | 16 -
.../mcp_service/theme/tool/test_theme_tools.py | 267 --------
.../reports/notifications/email_tests.py | 21 +-
tests/unit_tests/result_set_test.py | 121 ++++
.../check_translation_regression_test.py | 179 +++++
.../security/test_granular_export_permissions.py | 11 +
.../unit_tests/server}/__init__.py | 0
.../server/test_gunicorn_gevent_smoke.py | 162 +++++
tests/unit_tests/sql/parse_tests.py | 36 +
tests/unit_tests/tasks/test_cache.py | 136 ++++
tests/unit_tests/utils/test_screenshot_utils.py | 26 +
tests/unit_tests/views/test_utils.py | 48 ++
314 files changed, 13812 insertions(+), 8261 deletions(-)
create mode 100644 docs/static/img/community/reddit-symbol.svg
create mode 100644 docs/static/img/community/slack-symbol.svg
copy superset-frontend/{src/dashboard/util/isEmbedded.ts => packages/superset-ui-core/src/number-format/utils/getIntlDurationFormatter.ts} (72%)
create mode 100644 superset-frontend/packages/superset-ui-core/src/number-format/utils/parseMilliseconds.ts
create mode 100644 superset-frontend/packages/superset-ui-core/test/number-format/utils/getIntlDurationFormatter.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/test/number-format/utils/parseMilliseconds.test.ts
create mode 100644 superset-frontend/packages/superset-ui-core/types/intl.d.ts
create mode 100644 superset-frontend/src/chartCustomizations/components/DynamicGroupBy/DynamicGroupByPlugin.test.tsx
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/GroupByFilterCard.test.tsx
create mode 100644 superset-frontend/src/embedded/getInitialThemeMode.test.ts
copy superset-frontend/{packages/superset-ui-core/src/hooks/useChangeEffect/useChangeEffect.ts => src/embedded/getInitialThemeMode.ts} (55%)
create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.test.tsx
create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx
create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/dndTestUtils.ts
create mode 100644 superset-frontend/src/preamble.test.ts
create mode 100644 superset/db_engine_specs/odps.py
delete mode 100644 superset/mcp_service/action_log/schemas.py
delete mode 100644 superset/mcp_service/action_log/tool/__init__.py
delete mode 100644 superset/mcp_service/action_log/tool/get_action_log_info.py
delete mode 100644 superset/mcp_service/action_log/tool/list_action_logs.py
create mode 100644 superset/mcp_service/composite_token_verifier.py
delete mode 100644 superset/mcp_service/css_template/__init__.py
delete mode 100644 superset/mcp_service/css_template/schemas.py
delete mode 100644 superset/mcp_service/css_template/tool/__init__.py
delete mode 100644 superset/mcp_service/css_template/tool/get_css_template_info.py
delete mode 100644 superset/mcp_service/css_template/tool/list_css_templates.py
delete mode 100644 superset/mcp_service/plugin/__init__.py
delete mode 100644 superset/mcp_service/plugin/dao.py
delete mode 100644 superset/mcp_service/plugin/schemas.py
delete mode 100644 superset/mcp_service/plugin/tool/__init__.py
delete mode 100644 superset/mcp_service/plugin/tool/get_plugin_info.py
delete mode 100644 superset/mcp_service/plugin/tool/list_plugins.py
delete mode 100644 superset/mcp_service/theme/__init__.py
delete mode 100644 superset/mcp_service/theme/schemas.py
delete mode 100644 superset/mcp_service/theme/tool/__init__.py
delete mode 100644 superset/mcp_service/theme/tool/get_theme_info.py
delete mode 100644 superset/mcp_service/theme/tool/list_themes.py
delete mode 100644 tests/integration_tests/tasks/test_cache.py
delete mode 100644 tests/integration_tests/tasks/test_utils.py
create mode 100644 tests/unit_tests/db_engine_specs/test_odps.py
create mode 100644 tests/unit_tests/extensions/test_utils.py
delete mode 100644 tests/unit_tests/mcp_service/action_log/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/action_log/tool/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/action_log/tool/test_action_log_tools.py
delete mode 100644 tests/unit_tests/mcp_service/css_template/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/css_template/tool/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/css_template/tool/test_css_template_tools.py
delete mode 100644 tests/unit_tests/mcp_service/plugin/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/plugin/tool/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/plugin/tool/test_plugin_tools.py
create mode 100644 tests/unit_tests/mcp_service/test_composite_token_verifier.py
delete mode 100644 tests/unit_tests/mcp_service/theme/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/theme/tool/__init__.py
delete mode 100644 tests/unit_tests/mcp_service/theme/tool/test_theme_tools.py
create mode 100644 tests/unit_tests/scripts/translations/check_translation_regression_test.py
rename {superset/mcp_service/action_log => tests/unit_tests/server}/__init__.py (100%)
create mode 100644 tests/unit_tests/server/test_gunicorn_gevent_smoke.py
create mode 100644 tests/unit_tests/tasks/test_cache.py
create mode 100644 tests/unit_tests/views/test_utils.py