You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by mi...@apache.org on 2026/06/05 22:55:47 UTC
(superset) branch mcp-chart-explore-url updated (d694de88567 -> 0f65ec35ca1)
This is an automated email from the ASF dual-hosted git repository.
aminghadersohi pushed a change to branch mcp-chart-explore-url
in repository https://gitbox.apache.org/repos/asf/superset.git
from d694de88567 fix(mcp): relocate extract_permalink_key_from_url and fix UUID datasource
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 0f65ec35ca1 Merge branch 'master' into mcp-chart-explore-url
No new revisions were added by this update.
Summary of changes:
.asf.yaml | 6 +-
.github/workflows/pre-commit.yml | 7 +-
.github/workflows/superset-e2e.yml | 64 ++
.github/workflows/superset-extensions-cli.yml | 4 +-
.github/workflows/superset-playwright.yml | 2 +
.../workflows/superset-python-integrationtest.yml | 4 +-
.github/workflows/superset-python-unittest.yml | 4 +-
.github/workflows/superset-translations.yml | 2 +
README.md | 5 +
UPDATING.md | 19 +
docker-compose.yml | 25 +
docs/docusaurus.config.ts | 17 +
docs/i18n/en/docusaurus-theme-classic/footer.json | 2 +-
docs/package.json | 4 +-
docs/src/styles/main.css | 46 +-
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 | 38 +-
superset-frontend/jest.config.js | 2 +-
superset-frontend/package-lock.json | 453 +++++++------
superset-frontend/package.json | 28 +-
.../packages/superset-core/package.json | 2 +-
.../src/utils/D3Formatting.ts | 2 +-
.../packages/superset-ui-core/package.json | 10 +-
.../DropdownContainer/DropdownContainer.tsx | 31 +-
.../src/components/SafeMarkdown/SafeMarkdown.tsx | 49 +-
.../TableCollection/TableCollection.test.tsx | 6 +
.../src/components/TableCollection/index.tsx | 26 +-
.../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 +-
.../plugins/legacy-preset-chart-nvd3/package.json | 4 +-
.../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 +
.../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 | 19 +-
superset-frontend/src/components/ListView/utils.ts | 22 +-
.../useStreamingExport.test.ts | 32 +
.../StreamingExportModal/useStreamingExport.ts | 5 +
.../src/dashboard/actions/dashboardState.test.ts | 331 +++++++++-
.../src/dashboard/actions/dashboardState.ts | 100 ++-
.../FilterControls/GroupByFilterCard.test.tsx | 41 ++
.../FilterBar/FilterControls/GroupByFilterCard.tsx | 36 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 2 +-
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 133 ++++
.../FiltersConfigModal/FiltersConfigModal.tsx | 18 +-
.../util/charts/getFormDataWithExtraFilters.ts | 12 -
.../util/migrateChartCustomization.test.ts | 24 +-
.../dashboard/util/migrateChartCustomization.ts | 7 +-
.../components/useGridResultTable.tsx | 37 +-
.../DataTablesPane/test/DataTablesPane.test.tsx | 40 ++
.../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 +-
superset-frontend/src/preamble.test.ts | 113 ++++
superset-frontend/src/preamble.ts | 3 +-
superset-frontend/src/setup/setupFormatters.ts | 15 +-
superset-websocket/package-lock.json | 105 ++-
superset-websocket/package.json | 4 +-
superset/charts/data/dashboard_filter_context.py | 30 +-
superset/commands/dashboard/importers/v1/utils.py | 148 +++--
superset/config.py | 11 +
superset/dataframe.py | 18 +-
superset/db_engine_specs/base.py | 33 +
superset/db_engine_specs/druid.py | 26 +
superset/extensions/utils.py | 79 +++
superset/mcp_service/auth.py | 291 ++++----
superset/mcp_service/chart/schemas.py | 44 ++
superset/mcp_service/chart/tool/get_chart_info.py | 17 +-
superset/mcp_service/composite_token_verifier.py | 199 ++++++
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/middleware.py | 8 +-
superset/mcp_service/server.py | 10 +-
superset/reports/notifications/email.py | 16 +-
superset/result_set.py | 56 +-
superset/security/manager.py | 75 ++-
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/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/webdriver.py | 1 +
tests/integration_tests/result_set_tests.py | 34 +-
.../charts/test_dashboard_filter_context.py | 80 ++-
tests/unit_tests/connectors/sqla/utils_test.py | 1 +
.../dashboards/commands/importers/v1/utils_test.py | 174 +++++
tests/unit_tests/db_engine_specs/test_base.py | 21 +
tests/unit_tests/db_engine_specs/test_druid.py | 116 ++++
tests/unit_tests/extensions/test_utils.py | 96 +++
.../mcp_service/chart/tool/test_get_chart_info.py | 91 ++-
.../dashboard/tool/test_dashboard_tools.py | 72 ++
.../mcp_service/dataset/tool/test_dataset_tools.py | 59 ++
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_tool_search_transform.py | 14 +-
.../reports/notifications/email_tests.py | 21 +-
tests/unit_tests/result_set_test.py | 121 ++++
.../security/test_granular_export_permissions.py | 11 +
tests/unit_tests/utils/test_screenshot_utils.py | 26 +
168 files changed, 7901 insertions(+), 2603 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/preamble.test.ts
create mode 100644 superset/mcp_service/composite_token_verifier.py
create mode 100644 tests/unit_tests/extensions/test_utils.py
create mode 100644 tests/unit_tests/mcp_service/test_composite_token_verifier.py