This is an automated email from the ASF dual-hosted git repository.
msyavuz pushed a change to branch msyavuz/fix/embedded-multilayer
in repository https://gitbox.apache.org/repos/asf/superset.git
discard b02c9428666 chore: add tests
omit 1132ed53875 fix: check if child slice is included in parent config
omit 90c3c26f938 fix: ci
omit cd474fb91bd fix: add parent_slice_id and use it
add 8f070169a59 perf(datasource): add pagination to datasource editor
tables to prevent browser freeze (#37555)
add 8a74424545a fix(types): add explicit types for extendedDayjs plugin
methods (#37923)
add 615f13419cb fix(jest): ignore storybook-static and package __mocks__
directories (#37946)
add 8eb30468884 fix(docs): guard window reference in logging.ts for SSR
compatibility (#38201)
add b8459c15b86 chore(deps-dev): bump @typescript-eslint/parser from
8.56.0 to 8.56.1 in /docs (#38211)
add f60432e34cf fix: Allow non-owners to fave/unfave charts (#38095)
add fca8a495611 feat: auto refresh dashboard (#37459)
add 974bee14c3e fix(extensions): make LOCAL_EXTENSIONS loading resilient
to individual failures (#38217)
add 7b04d251d60 fix(build): restore automatic .d.ts generation in dev mode
(#38202)
add 35c135852e8 feat(extensions): add mandatory publisher field to
extension metadata (#38200)
add 0d66accc377 chore(build): prevent opening Dependabot PRs for `@rjsf/*`
deps due to React 18 constraint (#37976)
add 97b8585fe5d chore(deps-dev): bump typescript-eslint from 8.56.0 to
8.56.1 in /docs (#38209)
add aa475734ef9 chore(deps-dev): bump eslint from 9.39.2 to 10.0.2 in
/superset-websocket (#38204)
add e4a7cd30c34 fix(GAQ): don't use async queries when cache timeout is -1
(#38089)
add 76a2559b2b8 fix(ci): revert "chore(deps): bump
JustinBeckwith/linkinator-action from 2.3 to 2.4" (#38164)
add 4809903bb80 chore(deps): bump markdown-to-jsx from 9.7.4 to 9.7.6 in
/superset-frontend (#38225)
add 9e4a88dfa2b chore(deps): bump antd from 6.3.0 to 6.3.1 in /docs
(#38221)
add 01c1b2eb8f0 chore(deps-dev): bump @types/lodash from 4.17.23 to
4.17.24 in /superset-frontend (#38224)
add 5eb35a47957 fix(reports): validate database field on PUT report
schedule (#38084)
add 1cd35bb1029 feat(mcp): dynamic feature availability via menus and
feature flags (#37964)
add 30849079318 feat(mcp): support unsaved state in Explore and Dashboard
tools (#37183)
add a1312a86e88 fix(mcp): normalize column names to fix time series filter
prompt issue (#37187)
add b543358d2f5 chore(deps-dev): bump @swc/core from 1.15.11 to 1.15.13 in
/superset-frontend (#38237)
add 1b605c4ddad chore(deps): bump fs-extra from 11.3.2 to 11.3.3 in
/superset-frontend (#38234)
add 79b2647481b chore(deps): bump @swc/core from 1.15.11 to 1.15.13 in
/docs (#38207)
add 37a46370181 chore(deps-dev): bump typescript-eslint from 8.56.0 to
8.56.1 in /superset-websocket (#38203)
add 438a9274206 chore(deps-dev): bump oxlint from 1.49.0 to 1.50.0 in
/superset-frontend (#38240)
add c54b21ef988 fix(mcp): add eager loading to get_info tools to prevent
N+1 query timeouts (#38129)
add cc1128a404a feat(mcp): add response size guard to prevent oversized
responses (#37200)
add eef4d95c229 fix(mcp): add dataset validation for chart tools (#37185)
add abf0b7cf4b8 fix(mcp): use broad Exception in outermost tool-level
handlers (#38254)
add 26053a8b5d3 fix(alert-modal): show the add filter button on firefox
(#38093)
add 2b6c745444b fix(ci): use OIDC auth token for successful Codecov upload
(#38218)
add ae99b194225 feat(mcp): add detailed JWT error messages and default
auth factory fallback (#37972)
add 2ecfb3406c3 fix(dataset-modal): show warning toast when dropping items
outside folders (#38257)
add 7f72c747f5b fix(dataset-modal): prevent shift-select from selecting
search-hidden items (#38255)
add dce0e5f4e62 chore(deps): bump mapbox-gl from 3.18.1 to 3.19.0 in
/superset-frontend (#38264)
add dcbe77818a0 chore(deps-dev): bump @types/node from 25.3.0 to 25.3.1 in
/superset-frontend (#38263)
add e42202e5ede chore(deps-dev): bump @types/node from 25.2.3 to 25.3.1 in
/superset-websocket (#38260)
add 0e7a9febdf1 chore(deps): bump minimatch from 3.1.2 to 3.1.3 in
/superset-frontend/cypress-base (#38228)
add 8c58b998b17 chore(deps): pin currencyformatter.js to v1 in
/superset-frontend (#38242)
add 660357c76b0 feat: Persist default folders location when repositioned
in folders editor (#38105)
add ca48663c593 chore(deps): bump dawidd6/action-download-artifact from 15
to 16 (#38261)
add f5d489da29c fix(actionlog): restore full name display in Action Logs
user column (#37985)
add c1c012fb529 fix(chart): make chart error banners non-dismissible
(#38014)
add 5a134170a03 fix(chart): prevent x-axis date labels from disappearing
when rotated (#37755)
add bbafae5f62b fix(save-chart): fix info icon alignment in save chart
modal (#37708)
add 70e4fe1bd95 fix: add parent_slice_id and use it
add 7d2dc6e9154 fix: ci
add 61c564cedc9 fix: check if child slice is included in parent config
add ad4bfebd416 chore: add tests
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 (b02c9428666)
\
N -- N -- N refs/heads/msyavuz/fix/embedded-multilayer
(ad4bfebd416)
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/dependabot.yml | 8 +
.github/workflows/superset-docs-deploy.yml | 4 +-
.github/workflows/superset-docs-verify.yml | 4 +-
.github/workflows/superset-frontend.yml | 23 +-
docs/developer_portal/extensions/quick-start.md | 73 +-
docs/package.json | 8 +-
docs/yarn.lock | 309 ++++---
.../src/superset_core/extensions}/constants.py | 27 +-
.../src/superset_core/extensions/types.py | 26 +-
.../src/superset_extensions_cli/cli.py | 197 +++--
.../templates/extension.json.j2 | 8 +-
.../templates/frontend/package.json.j2 | 2 +-
.../templates/frontend/webpack.config.js.j2 | 2 +-
.../src/superset_extensions_cli/types.py | 25 +-
.../src/superset_extensions_cli/utils.py | 226 +++--
superset-extensions-cli/tests/conftest.py | 39 +-
superset-extensions-cli/tests/test_cli_build.py | 85 +-
superset-extensions-cli/tests/test_cli_bundle.py | 19 +-
superset-extensions-cli/tests/test_cli_dev.py | 29 +-
superset-extensions-cli/tests/test_cli_init.py | 158 ++--
.../tests/test_name_transformations.py | 834 +++++++++++--------
superset-extensions-cli/tests/test_templates.py | 138 ++--
superset-frontend/cypress-base/package-lock.json | 12 +-
superset-frontend/jest.config.js | 5 +
superset-frontend/package-lock.json | 301 +++----
superset-frontend/package.json | 10 +-
.../packages/superset-core/package.json | 2 +-
.../packages/superset-core/src/utils/logging.ts | 3 +-
.../packages/superset-ui-core/package.json | 4 +-
.../src/components/Icons/AntdEnhanced.tsx | 10 +-
.../packages/superset-ui-core/src/utils/dates.ts | 40 +-
.../plugin-chart-echarts/src/BigNumber/types.ts | 1 +
.../plugin-chart-echarts/src/Graph/buildQuery.ts | 21 +-
.../plugin-chart-echarts/src/Heatmap/Heatmap.tsx | 3 +-
.../plugin-chart-echarts/src/Sankey/buildQuery.ts | 19 +-
.../src/Timeseries/transformProps.ts | 36 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 1 +
.../plugin-chart-echarts/src/Tree/buildQuery.ts | 15 +-
.../src/Tree/transformProps.ts | 10 +-
.../src/Treemap/EchartsTreemap.tsx | 2 +-
.../plugin-chart-echarts/src/Treemap/buildQuery.ts | 16 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 30 +-
.../plugins/plugin-chart-echarts/src/types.ts | 1 +
.../src/utils/orderby.test.ts} | 19 +-
.../plugin-chart-echarts/src/utils/orderby.ts | 51 ++
.../plugin-chart-echarts/src/utils/series.ts | 6 +-
.../test/Graph/buildQuery.test.ts | 2 +
.../test/Timeseries/transformProps.test.ts | 2 +-
.../test/Timeseries/transformers.test.ts | 96 +++
.../test/Tree/buildQuery.test.ts | 33 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 2 +-
.../plugins/plugin-chart-handlebars/package.json | 2 +-
.../src/plugin/buildQuery.ts | 17 +-
superset-frontend/src/components/Chart/Chart.tsx | 6 +-
.../components/Chart/ChartErrorMessage.test.tsx | 13 +
.../src/components/Chart/ChartErrorMessage.tsx | 1 +
.../src/components/Chart/ChartRenderer.test.tsx | 70 +-
.../src/components/Chart/ChartRenderer.tsx | 18 +-
.../src/components/Chart/chartAction.ts | 24 +-
.../src/components/Chart/chartReducer.ts | 8 +
.../Datasource/DatasourceModal/index.tsx | 7 +-
.../FoldersEditor/folderOperations.test.ts | 106 +++
.../Datasource/FoldersEditor/folderOperations.ts | 57 +-
.../FoldersEditor/hooks/useDragHandlers.ts | 15 +
.../components/Datasource/FoldersEditor/index.tsx | 6 +-
.../components/CollectionTable/index.tsx | 55 +-
.../DatasourceEditor/DatasourceEditor.tsx | 395 +++++----
.../DatasetUsageTab/DatasetUsageTab.test.tsx | 143 ++++
.../components/DatasetUsageTab/index.tsx | 71 +-
.../tests/DatasourceEditor.test.tsx | 242 ++++++
.../src/components/Datasource/types.ts | 11 +
.../ErrorMessage/DatabaseErrorMessage.tsx | 2 +
.../ErrorMessage/DatasetNotFoundErrorMessage.tsx | 2 +
.../ErrorMessageWithStackTrace.test.tsx | 12 +
.../ErrorMessage/ErrorMessageWithStackTrace.tsx | 4 +
.../ErrorMessage/FrontendNetworkErrorMessage.tsx | 2 +
.../ErrorMessage/InvalidSQLErrorMessage.tsx | 2 +
.../ErrorMessage/OAuth2RedirectMessage.tsx | 2 +
.../ErrorMessage/ParameterErrorMessage.tsx | 2 +
.../ErrorMessage/TimeoutErrorMessage.tsx | 2 +
.../src/components/ErrorMessage/types.ts | 1 +
.../src/dashboard/actions/autoRefresh.ts | 124 +++
.../src/dashboard/actions/dashboardState.test.ts | 164 ++++
.../src/dashboard/actions/dashboardState.ts | 63 +-
superset-frontend/src/dashboard/actions/hydrate.ts | 2 +
.../components/AutoRefreshIndicator/index.tsx | 169 ++++
.../AutoRefreshStatus/StatusIndicatorDot.test.tsx | 114 +++
.../AutoRefreshStatus/StatusIndicatorDot.tsx | 168 ++++
.../StatusTooltipContent.test.tsx | 180 ++++
.../AutoRefreshStatus/StatusTooltipContent.tsx | 178 ++++
.../components/FiltersBadge/FiltersBadge.test.tsx | 251 ++++--
.../dashboard/components/FiltersBadge/index.tsx | 27 +-
.../dashboard/components/Header/Header.test.tsx | 128 ++-
.../src/dashboard/components/Header/index.tsx | 383 ++++-----
.../src/dashboard/components/Header/types.ts | 26 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 13 +-
.../components/Header/useHeaderAutoRefresh.ts | 410 +++++++++
.../dashboard/components/PropertiesModal/index.tsx | 18 +-
.../PropertiesModal/sections/RefreshSection.tsx | 2 +-
.../dashboard/components/RefreshButton/index.tsx | 81 ++
.../{index.ts => RefreshFrequencySelect.test.tsx} | 25 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 67 +-
.../dashboard/components/RefreshIntervalModal.tsx | 81 +-
.../components/gridComponents/Chart/Chart.test.tsx | 25 +
.../components/gridComponents/Chart/Chart.tsx | 5 +-
.../components/gridComponents/Tab/Tab.test.tsx | 2 +
.../components/gridComponents/Tab/Tab.tsx | 17 +-
.../src/dashboard/containers/DashboardPage.tsx | 15 +-
.../dashboard/contexts/AutoRefreshContext.test.tsx | 137 +++
.../src/dashboard/contexts/AutoRefreshContext.tsx | 101 +++
.../hooks/useAutoRefreshTabPause.test.tsx | 378 +++++++++
.../src/dashboard/hooks/useAutoRefreshTabPause.ts | 146 ++++
.../src/dashboard/hooks/useCurrentTime.test.ts | 182 ++++
.../src/dashboard/hooks/useCurrentTime.ts | 67 ++
.../dashboard/hooks/useRealTimeDashboard.test.ts | 175 ++++
.../src/dashboard/hooks/useRealTimeDashboard.ts | 245 ++++++
.../src/dashboard/hooks/useTabVisibility.test.ts | 175 ++++
.../src/dashboard/hooks/useTabVisibility.ts | 102 +++
.../dashboard/reducers/autoRefreshReducer.test.ts | 246 ++++++
.../src/dashboard/reducers/dashboardState.ts | 81 ++
superset-frontend/src/dashboard/types.ts | 16 +-
.../src/dashboard/types/autoRefresh.ts | 64 ++
.../transformDatasourceFolders.test.ts | 12 +-
.../DatasourcePanel/transformDatasourceFolders.ts | 71 +-
.../src/explore/components/SaveModal.test.tsx | 13 +
.../src/explore/components/SaveModal.tsx | 32 +-
.../src/features/alerts/AlertReportModal.tsx | 43 +-
superset-frontend/src/pages/ActionLog/index.tsx | 20 +-
superset-frontend/webpack.config.js | 21 +-
superset-websocket/package-lock.json | 918 ++++++++++-----------
superset-websocket/package.json | 6 +-
superset/charts/data/api.py | 19 +-
superset/commands/chart/fave.py | 8 -
superset/commands/chart/unfave.py | 8 -
superset/commands/dataset/update.py | 22 +-
superset/commands/report/exceptions.py | 12 +
superset/commands/report/update.py | 18 +-
superset/daos/base.py | 11 +-
superset/daos/database.py | 6 +-
superset/extensions/api.py | 35 +-
superset/extensions/utils.py | 36 +-
superset/mcp_service/CLAUDE.md | 37 +
superset/mcp_service/app.py | 4 +
superset/mcp_service/auth.py | 18 +-
superset/mcp_service/chart/chart_utils.py | 120 ++-
superset/mcp_service/chart/schemas.py | 68 +-
superset/mcp_service/chart/tool/generate_chart.py | 33 +-
superset/mcp_service/chart/tool/get_chart_data.py | 146 +++-
superset/mcp_service/chart/tool/get_chart_info.py | 96 ++-
.../mcp_service/chart/tool/get_chart_preview.py | 73 +-
.../chart/validation/dataset_validator.py | 153 +++-
superset/mcp_service/chart/validation/pipeline.py | 86 +-
.../mcp_service}/constants.py | 6 +-
superset/mcp_service/dashboard/schemas.py | 43 +-
.../dashboard/tool/get_dashboard_info.py | 114 ++-
.../mcp_service/dataset/tool/get_dataset_info.py | 12 +
.../explore/tool/generate_explore_link.py | 15 +-
superset/mcp_service/jwt_verifier.py | 320 +++++++
superset/mcp_service/mcp_config.py | 117 ++-
superset/mcp_service/mcp_core.py | 24 +-
superset/mcp_service/middleware.py | 170 ++++
superset/mcp_service/server.py | 62 +-
superset/mcp_service/system/schemas.py | 22 +
superset/mcp_service/system/system_utils.py | 29 +
.../mcp_service/system/tool/get_instance_info.py | 2 +
superset/mcp_service/utils/token_utils.py | 424 ++++++++++
superset/reports/schemas.py | 2 +-
tests/integration_tests/charts/commands_tests.py | 17 +-
tests/integration_tests/reports/api_tests.py | 294 ++++++-
tests/unit_tests/commands/dataset/update_test.py | 35 +-
.../unit_tests/commands/report}/__init__.py | 0
tests/unit_tests/commands/report/update_test.py | 254 ++++++
tests/unit_tests/extensions/test_types.py | 108 ++-
.../mcp_service/chart/test_chart_utils.py | 101 ++-
.../validation/test_column_name_normalization.py | 681 +++++++++++++++
.../explore/tool/test_generate_explore_link.py | 149 ++++
.../mcp_service/system/test_system_utils.py | 60 ++
.../system/tool/test_get_current_user.py | 2 +
.../mcp_service/system/tool/test_mcp_core.py | 4 +-
tests/unit_tests/mcp_service/test_jwt_verifier.py | 726 ++++++++++++++++
tests/unit_tests/mcp_service/test_mcp_config.py | 9 +
tests/unit_tests/mcp_service/test_middleware.py | 343 ++++++++
.../mcp_service/utils/test_token_utils.py | 358 ++++++++
183 files changed, 13257 insertions(+), 2539 deletions(-)
copy {superset/mcp_service/dashboard =>
superset-core/src/superset_core/extensions}/constants.py (53%)
copy superset-frontend/{src/explore/exploreUtils/getLegacyEndpointType.test.ts
=> plugins/plugin-chart-echarts/src/utils/orderby.test.ts} (65%)
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/orderby.ts
create mode 100644 superset-frontend/src/dashboard/actions/autoRefresh.ts
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshIndicator/index.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusIndicatorDot.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusTooltipContent.test.tsx
create mode 100644
superset-frontend/src/dashboard/components/AutoRefreshStatus/StatusTooltipContent.tsx
create mode 100644
superset-frontend/src/dashboard/components/Header/useHeaderAutoRefresh.ts
create mode 100644
superset-frontend/src/dashboard/components/RefreshButton/index.tsx
copy superset-frontend/src/dashboard/components/RefreshFrequency/{index.ts =>
RefreshFrequencySelect.test.tsx} (58%)
create mode 100644
superset-frontend/src/dashboard/contexts/AutoRefreshContext.test.tsx
create mode 100644
superset-frontend/src/dashboard/contexts/AutoRefreshContext.tsx
create mode 100644
superset-frontend/src/dashboard/hooks/useAutoRefreshTabPause.test.tsx
create mode 100644
superset-frontend/src/dashboard/hooks/useAutoRefreshTabPause.ts
create mode 100644 superset-frontend/src/dashboard/hooks/useCurrentTime.test.ts
create mode 100644 superset-frontend/src/dashboard/hooks/useCurrentTime.ts
create mode 100644
superset-frontend/src/dashboard/hooks/useRealTimeDashboard.test.ts
create mode 100644
superset-frontend/src/dashboard/hooks/useRealTimeDashboard.ts
create mode 100644
superset-frontend/src/dashboard/hooks/useTabVisibility.test.ts
create mode 100644 superset-frontend/src/dashboard/hooks/useTabVisibility.ts
create mode 100644
superset-frontend/src/dashboard/reducers/autoRefreshReducer.test.ts
create mode 100644 superset-frontend/src/dashboard/types/autoRefresh.ts
copy {superset-extensions-cli/src/superset_extensions_cli =>
superset/mcp_service}/constants.py (78%)
create mode 100644 superset/mcp_service/jwt_verifier.py
create mode 100644 superset/mcp_service/utils/token_utils.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/commands/report}/__init__.py (100%)
create mode 100644 tests/unit_tests/commands/report/update_test.py
create mode 100644
tests/unit_tests/mcp_service/chart/validation/test_column_name_normalization.py
create mode 100644 tests/unit_tests/mcp_service/system/test_system_utils.py
create mode 100644 tests/unit_tests/mcp_service/test_jwt_verifier.py
create mode 100644 tests/unit_tests/mcp_service/test_middleware.py
create mode 100644 tests/unit_tests/mcp_service/utils/test_token_utils.py