This is an automated email from the ASF dual-hosted git repository.
jli pushed a change to branch fix-cannot-view-dashboard-if-no-theme-role
in repository https://gitbox.apache.org/repos/asf/superset.git
from 2453e1c7fc fix(dashboard): use inline theme data to prevent 403 for
non-admin users
add 61e5a684ed test(dashboard): assert no /api/v1/theme/ calls instead of
blanket no-GET check
add ef4b1d674b feat(docs): add filterable UI Components table and improve
build performance (#38253)
add 7815afb24d fix(charts): improve minor gridline visibility in dark
themes (#38371)
add 51ac758b80 fix(tags): expire tag relationship after deleting all
tagged objects (#38163)
add 80a29cd6fe chore(deps-dev): bump terser-webpack-plugin from 5.3.16 to
5.3.17 in /superset-frontend (#38386)
add 35d0aad854 feat(explore): Add Echarts option editor (#37868)
add 69732d9dca fix(superset-ui-core): achieve 100% coverage for npm run
core:cover (#38397)
add 832fee3ff8 refactor(mcp): move superset_core MCP module from mcp to
api/mcp (#38394)
add 19f949276c refactor(config): SIGNAL_CACHE_CONFIG →
DISTRIBUTED_COORDINATION_CONFIG (#38395)
add aff6e26089 build(deps): replace monolithic `googleapis` with
lightweight `@googleapis/sheet` sub-package (#38124)
add 3d5694ee0f chore: regular `npm audit fix` (#38248)
add 3b656f9cc2 fix(dashboard): restore filterState prop for cross-filter
functionality (#38349)
add c25adbc395 test(DashboardList): migrate Cypress E2E tests to RTL
(#38368)
add e2ebc135e4 test(playwright): add dashboard list E2E tests (#38377)
add 27d54f8421 fix(build/backend): migrate to deps-free `pygeohash` with
pre-built wheels at runtime (#37524)
add 796c206ee7 fix(charts): apply resample before rolling window in
post-processing pipeline (#37987)
add 63e7ee70bf fix(echarts): adaptive formatting labels (#38017)
add 8c9efe5659 feat: support for import/export masked_encrypted_extra
(backend) (#38077)
add dc995328a8 chore(deps): bump cryptography from 44.0.3 to 46.0.5
(#37912)
add 8f28a8734a chore(deps): bump flask from 2.3.3 to 3.1.3 (#38168)
add 1bfd41df0c chore(deps): bump aquasecurity/trivy-action from 0.34.1 to
0.34.2 (#38352)
add 88241d3e71 chore(deps-dev): bump oxlint from 1.50.0 to 1.51.0 in
/superset-frontend (#38353)
add a79dcbbb66 chore(deps): update d3-cloud requirement from ^1.2.8 to
^1.2.9 in /superset-frontend/plugins/plugin-chart-word-cloud (#38381)
add 939e4194c6 fix(alerts): fix error toast when editing report with saved
tab selection (#38198)
add 0d5827ac42 chore(extensions): unified contribution api and automatic
prefixing (#38412)
add 5a2a72cf31 chore(deps): bump svgo from 3.3.2 to 3.3.3 in /docs (#38422)
add fdf19db5e6 chore(deps): bump svgo from 3.3.2 to 3.3.3 in
/superset-frontend (#38421)
add d9e72c10e6 Merge remote-tracking branch 'origin/master' into
fix-cannot-view-dashboard-if-no-theme-role
add 52b6cc4420 test(dashboard): add E2E test for non-admin user viewing
themed dashboard
No new revisions were added by this update.
Summary of changes:
.github/workflows/docker.yml | 2 +-
UPDATING.md | 8 +-
docs/.gitignore | 8 +-
docs/admin_docs/configuration/cache.mdx | 16 +-
docs/babel.config.js | 32 -
docs/developer_docs/api.mdx | 36 +-
.../extensions/contribution-types.md | 51 +-
docs/developer_docs/extensions/development.md | 64 +-
docs/developer_docs/extensions/mcp.md | 6 +-
docs/developer_docs/extensions/overview.md | 6 +-
docs/developer_docs/extensions/quick-start.md | 44 +-
docs/developer_docs/extensions/tasks.md | 4 +-
docs/docusaurus.config.ts | 28 +
docs/package.json | 11 +-
docs/scripts/generate-database-docs.mjs | 8 +-
docs/scripts/generate-extension-components.mjs | 676 ----------
docs/scripts/generate-if-changed.mjs | 307 +++++
docs/scripts/generate-superset-components.mjs | 241 +++-
docs/sidebarTutorials.js | 11 -
docs/src/components/databases/DatabaseIndex.tsx | 1 +
.../components/ui-components/ComponentIndex.tsx | 262 ++++
.../src/components/ui-components/index.ts | 3 +-
.../src/components/ui-components}/types.ts | 43 +-
docs/src/data/databases.json | 12 +-
docs/src/shims/superset-ui-core.ts | 57 +
docs/src/types/apache-superset-core/index.d.ts | 4 +-
docs/src/webpack.extend.ts | 15 +-
docs/tsconfig.json | 5 +-
docs/yarn.lock | 713 +++++++++--
pyproject.toml | 8 +-
requirements/base.txt | 4 +-
requirements/development.txt | 8 +-
.../superset_core/{mcp/__init__.py => api/mcp.py} | 2 +-
superset-core/src/superset_core/api/rest_api.py | 97 +-
.../cypress/e2e/dashboard_list/filter.test.ts | 47 -
.../cypress/e2e/dashboard_list/list.test.ts | 279 -----
superset-frontend/package-lock.json | 1321 ++++++++------------
superset-frontend/package.json | 9 +-
.../packages/superset-core/src/api/editors.ts | 10 +-
.../src/shared-controls/sharedControls.tsx | 15 +
.../superset-ui-chart-controls/src/types.ts | 1 +
.../src/utils/metricColumnFilter.test.ts | 8 +
.../test/utils/getColorFormatters.test.ts | 41 +
.../Matrixify/MatrixifyGridGenerator.test.ts | 120 ++
.../components/Matrixify/MatrixifyGridGenerator.ts | 8 +-
.../types/matrixify.mocks.test.ts} | 12 +-
.../src/chart/types/matrixify.test.ts | 82 ++
.../superset-ui-core/src/chart/types/matrixify.ts | 36 +-
.../src/components/AsyncAceEditor/index.tsx | 6 +
.../AsyncAceEditor/useJsonValidation.test.ts | 25 +
.../src/components/List/List.test.tsx | 10 +
.../src/components/Select/constants.test.ts | 49 +
.../Table/utils/InteractiveTableUtils.test.ts | 574 +++++++++
.../superset-ui-core/src/components/index.ts | 1 +
.../src/types/react-syntax-highlighter.d.ts | 7 -
.../src/utils/rankedSearchCompare.test.ts | 20 +
.../index.ts => utils/withLabel.test.ts} | 24 +-
.../test/connection/SupersetClient.test.ts | 6 +
.../test/connection/SupersetClientClass.test.ts | 33 +
.../test/currency-format/CurrencyFormatter.test.ts | 78 ++
.../test/currency-format/utils.test.ts | 193 +++
.../test/query/types/Column.test.ts | 14 +
.../test/query/types/Dashboard.test.ts | 33 +
.../playwright/helpers/api/dashboard.ts | 171 +++
superset-frontend/playwright/helpers/api/theme.ts | 62 +
.../playwright/helpers/fixtures/testAssets.ts | 43 +-
.../{ChartListPage.ts => DashboardListPage.ts} | 67 +-
.../experimental/dashboard/dashboard-list.spec.ts | 403 ++++++
.../dashboard-test-helpers.ts} | 47 +-
.../tests/experimental/dashboard/theme.spec.ts | 100 ++
.../plugins/plugin-chart-echarts/package.json | 4 +-
.../BigNumberWithTrendline/buildQuery.test.ts | 4 +-
.../BigNumber/BigNumberWithTrendline/buildQuery.ts | 2 +-
.../src/MixedTimeseries/buildQuery.ts | 2 +-
.../src/MixedTimeseries/controlPanel.tsx | 1 +
.../src/MixedTimeseries/transformProps.ts | 20 +-
.../src/Timeseries/Area/controlPanel.tsx | 1 +
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 1 +
.../src/Timeseries/Regular/Line/controlPanel.tsx | 1 +
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 1 +
.../src/Timeseries/buildQuery.ts | 6 +-
.../src/Timeseries/transformProps.ts | 23 +-
.../plugin-chart-echarts/src/components/Echart.tsx | 6 +
.../plugins/plugin-chart-echarts/src/index.ts | 3 +
.../src/utils/eChartOptionsSchema.ts | 827 ++++++++++++
.../plugin-chart-echarts/src/utils/formatters.ts | 91 +-
.../src/utils/mergeCustomEChartOptions.test.ts | 163 +++
.../src/utils/mergeCustomEChartOptions.ts | 79 ++
.../src/utils/safeEChartOptionsParser.test.ts | 525 ++++++++
.../src/utils/safeEChartOptionsParser.ts | 477 +++++++
.../test/MixedTimeseries/transformProps.test.ts | 2 +-
.../test/Timeseries/Scatter/transformProps.test.ts | 8 +-
.../test/Timeseries/transformProps.test.ts | 6 +-
.../test/utils/formatters.test.ts | 174 ++-
.../plugins/plugin-chart-word-cloud/package.json | 2 +-
.../scripts/eslint-metrics-uploader.js | 144 ---
.../scripts/oxlint-metrics-uploader.js | 7 +-
superset-frontend/src/components/Chart/Chart.tsx | 2 +
.../src/core/editors/AceEditorProvider.tsx | 3 +
.../components/gridComponents/Chart/Chart.test.tsx | 30 +
.../components/gridComponents/Chart/Chart.tsx | 1 +
.../dashboard/containers/DashboardPage.test.tsx | 10 +
.../components/controls/JSEditorControl.test.tsx | 125 ++
.../components/controls/JSEditorControl.tsx | 105 ++
.../src/explore/components/controls/index.ts | 2 +
.../src/features/alerts/AlertReportModal.test.tsx | 467 ++++++-
.../src/features/alerts/AlertReportModal.tsx | 40 +-
superset-frontend/src/features/alerts/types.ts | 7 +
.../DashboardList/DashboardList.behavior.test.tsx | 394 ++++++
.../DashboardList/DashboardList.cardview.test.tsx | 417 ++++++
.../DashboardList/DashboardList.listview.test.tsx | 402 ++++++
.../DashboardList.permissions.test.tsx | 340 +++++
.../src/pages/DashboardList/DashboardList.test.tsx | 391 +++---
.../DashboardList/DashboardList.testHelpers.tsx | 360 ++++++
superset/commands/database/export.py | 9 +
superset/commands/database/importers/v1/utils.py | 26 +-
superset/commands/distributed_lock/acquire.py | 2 +-
superset/commands/distributed_lock/base.py | 6 +-
superset/commands/distributed_lock/release.py | 2 +-
superset/commands/importers/v1/__init__.py | 4 +
superset/commands/importers/v1/assets.py | 4 +
superset/commands/importers/v1/utils.py | 19 +
superset/config.py | 20 +-
superset/core/api/core_api_injection.py | 64 +-
superset/core/mcp/core_mcp_injection.py | 74 +-
superset/daos/tag.py | 7 +
superset/databases/api.py | 14 +
superset/databases/schemas.py | 62 +
superset/distributed_lock/__init__.py | 2 +-
superset/extensions/context.py | 90 ++
superset/extensions/contributions.py | 94 ++
superset/importexport/api.py | 13 +
superset/initialization/__init__.py | 5 +-
superset/mcp_service/CLAUDE.md | 16 +-
superset/mcp_service/app.py | 2 +-
.../chart/prompts/create_chart_guided.py | 2 +-
superset/mcp_service/chart/tool/generate_chart.py | 2 +-
superset/mcp_service/chart/tool/get_chart_data.py | 2 +-
superset/mcp_service/chart/tool/get_chart_info.py | 2 +-
.../mcp_service/chart/tool/get_chart_preview.py | 2 +-
superset/mcp_service/chart/tool/list_charts.py | 2 +-
superset/mcp_service/chart/tool/update_chart.py | 2 +-
.../mcp_service/chart/tool/update_chart_preview.py | 2 +-
.../tool/add_chart_to_existing_dashboard.py | 2 +-
.../dashboard/tool/generate_dashboard.py | 2 +-
.../dashboard/tool/get_dashboard_info.py | 2 +-
.../mcp_service/dashboard/tool/list_dashboards.py | 2 +-
.../mcp_service/dataset/tool/get_dataset_info.py | 2 +-
superset/mcp_service/dataset/tool/list_datasets.py | 2 +-
.../explore/tool/generate_explore_link.py | 2 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 2 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 2 +-
superset/mcp_service/system/prompts/quickstart.py | 2 +-
.../mcp_service/system/tool/get_instance_info.py | 2 +-
superset/mcp_service/system/tool/get_schema.py | 2 +-
superset/mcp_service/system/tool/health_check.py | 2 +-
superset/tasks/decorators.py | 15 +-
superset/tasks/locks.py | 4 +-
superset/tasks/manager.py | 8 +-
superset/utils/cache_manager.py | 34 +-
superset/utils/json.py | 43 +
superset/utils/pandas_postprocessing/geography.py | 6 +-
superset/viz.py | 24 +-
tests/integration_tests/databases/api_tests.py | 91 ++
tests/integration_tests/fixtures/importexport.py | 26 +
.../integration_tests/tasks/test_sync_join_wait.py | 4 +-
tests/unit_tests/databases/api_test.py | 70 ++
.../databases/commands/importers/v1/import_test.py | 123 ++
tests/unit_tests/databases/schema_tests.py | 106 ++
tests/unit_tests/importexport/api_test.py | 52 +
tests/unit_tests/tags/commands/update_test.py | 60 +
tests/unit_tests/tasks/test_handlers.py | 4 +-
tests/unit_tests/tasks/test_manager.py | 34 +-
tests/unit_tests/tasks/test_timeout.py | 32 +-
tests/unit_tests/utils/json_tests.py | 139 ++
175 files changed, 11118 insertions(+), 2758 deletions(-)
delete mode 100644 docs/babel.config.js
delete mode 100644 docs/scripts/generate-extension-components.mjs
create mode 100644 docs/scripts/generate-if-changed.mjs
create mode 100644 docs/src/components/ui-components/ComponentIndex.tsx
copy superset-frontend/packages/superset-ui-core/src/ui-overrides/index.tsx =>
docs/src/components/ui-components/index.ts (92%)
copy {superset-frontend/src/explore/components/controls/VizTypeControl =>
docs/src/components/ui-components}/types.ts (57%)
create mode 100644 docs/src/shims/superset-ui-core.ts
rename superset-core/src/superset_core/{mcp/__init__.py => api/mcp.py} (99%)
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard_list/filter.test.ts
delete mode 100644
superset-frontend/cypress-base/cypress/e2e/dashboard_list/list.test.ts
copy
superset-frontend/packages/superset-ui-core/src/{components/EmptyState/Empty.test.tsx
=> chart/types/matrixify.mocks.test.ts} (72%)
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/Select/constants.test.ts
create mode 100644
superset-frontend/packages/superset-ui-core/src/components/Table/utils/InteractiveTableUtils.test.ts
copy
superset-frontend/packages/superset-ui-core/src/{color/colorSchemes/index.ts =>
utils/withLabel.test.ts} (53%)
create mode 100644 superset-frontend/playwright/helpers/api/dashboard.ts
create mode 100644 superset-frontend/playwright/helpers/api/theme.ts
copy superset-frontend/playwright/pages/{ChartListPage.ts =>
DashboardListPage.ts} (56%)
create mode 100644
superset-frontend/playwright/tests/experimental/dashboard/dashboard-list.spec.ts
copy
superset-frontend/playwright/tests/experimental/{dataset/dataset-test-helpers.ts
=> dashboard/dashboard-test-helpers.ts} (53%)
create mode 100644
superset-frontend/playwright/tests/experimental/dashboard/theme.spec.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/eChartOptionsSchema.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/mergeCustomEChartOptions.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/mergeCustomEChartOptions.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts
delete mode 100644 superset-frontend/scripts/eslint-metrics-uploader.js
create mode 100644
superset-frontend/src/explore/components/controls/JSEditorControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/JSEditorControl.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.behavior.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.cardview.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.listview.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.permissions.test.tsx
create mode 100644
superset-frontend/src/pages/DashboardList/DashboardList.testHelpers.tsx
create mode 100644 superset/extensions/context.py
create mode 100644 superset/extensions/contributions.py