This is an automated email from the ASF dual-hosted git repository.
hughhhh pushed a change to branch hughhhh/pfm-3-preview-and-editor
in repository https://gitbox.apache.org/repos/asf/superset.git
from 1588d981c18 Merge remote-tracking branch 'origin/master' into
hughhhh/pfm-3-preview-and-editor
add c0c688d3e4b fix(mcp): return a specific error per failure class on
tool calls (#44387)
add a071d23b41f fix(dashboard): guest sessions, pluggable storage, and
streamed downloads for the Excel export (#43805)
add d7a918b814c fix(ci): make check_pot_drift extract from an isolated git
snapshot (#44578)
add 775f7c5a1fd fix(db2): Use DATE_TRUNC to improve timegrain expressions
(#43236)
add 298aa2f0ba4 fix(dataset): bump changed_on on column refresh so chart
cache invalidates (#43921)
add 082961ba168 fix(chart): require edit rights for query-context-only
updates (#44494)
add 3b355b6a854 fix(chart): allow semantic view datasource when saving
charts (#44169)
add 390bf299ff9 fix(i18n): stop f-strings in gettext leaking a bogus msgid
on Python 3.12 (#44584)
add 8141d666d6d fix(dashboard): show loading spinner for charts outside an
in-flight auto-refresh batch (#44272)
add cd36b555e9b Merge remote-tracking branch 'origin/master' into
hughhhh/pfm-1-model-migration-api
add da9f21c1314 Merge branch 'hughhhh/pfm-1-model-migration-api' into
hughhhh/pfm-2-query-rewrite
add 6ca51264e57 Merge branch 'hughhhh/pfm-2-query-rewrite' into
hughhhh/pfm-3-preview-and-editor
No new revisions were added by this update.
Summary of changes:
UPDATING.md | 58 +-
docs/admin_docs/configuration/mcp-server.mdx | 16 +
.../using-superset/exporting-dashboard-data.mdx | 116 +++-
docs/static/resources/openapi.json | 78 ++-
pyproject.toml | 17 +-
scripts/translations/check_pot_drift.py | 77 ++-
.../Header/useHeaderAutoRefresh.test.tsx | 58 +-
.../components/Header/useHeaderAutoRefresh.ts | 2 +-
.../components/gridComponents/Chart/Chart.test.tsx | 59 ++
.../components/gridComponents/Chart/Chart.tsx | 4 +-
.../DownloadMenuItems/DownloadMenuItems.test.tsx | 616 +++++++++++++++++--
.../components/menu/DownloadMenuItems/index.tsx | 210 ++++++-
.../dashboard/contexts/AutoRefreshContext.test.tsx | 69 +++
.../src/dashboard/contexts/AutoRefreshContext.tsx | 31 +-
.../explore/components/ExploreChartPanel/index.tsx | 12 +-
superset/commands/chart/update.py | 11 +-
superset/commands/distributed_lock/acquire.py | 9 +-
superset/common/query_context_processor.py | 18 +-
superset/config.py | 59 +-
superset/connectors/sqla/models.py | 53 +-
superset/dashboards/api.py | 264 +++++++-
superset/dashboards/excel_export/download_link.py | 160 +++++
superset/dashboards/excel_export/email.py | 29 +-
superset/db_engine_specs/db2.py | 27 +-
superset/db_engine_specs/ibmi.py | 21 +
superset/key_value/types.py | 1 +
superset/mcp_service/chart/compile.py | 29 +-
superset/mcp_service/constants.py | 28 +
superset/mcp_service/middleware.py | 287 ++++++++-
...1_a7f3c2e91d84_add_partition_filter_mapping.py} | 4 +-
superset/models/dashboard.py | 3 +
superset/security/manager.py | 38 +-
superset/tasks/export_dashboard_excel.py | 272 ++++++--
superset/translations/ar/LC_MESSAGES/messages.po | 29 +-
superset/translations/ca/LC_MESSAGES/messages.po | 29 +-
superset/translations/cs/LC_MESSAGES/messages.po | 29 +-
superset/translations/de/LC_MESSAGES/messages.po | 29 +-
superset/translations/en/LC_MESSAGES/messages.po | 29 +-
superset/translations/es/LC_MESSAGES/messages.po | 29 +-
superset/translations/fa/LC_MESSAGES/messages.po | 29 +-
superset/translations/fi/LC_MESSAGES/messages.po | 29 +-
superset/translations/fr/LC_MESSAGES/messages.po | 29 +-
superset/translations/it/LC_MESSAGES/messages.po | 31 +-
superset/translations/ja/LC_MESSAGES/messages.po | 29 +-
superset/translations/ko/LC_MESSAGES/messages.po | 29 +-
superset/translations/lv/LC_MESSAGES/messages.po | 29 +-
superset/translations/messages.pot | 29 +-
superset/translations/mi/LC_MESSAGES/messages.po | 29 +-
superset/translations/nl/LC_MESSAGES/messages.po | 29 +-
superset/translations/pl/LC_MESSAGES/messages.po | 29 +-
superset/translations/pt/LC_MESSAGES/messages.po | 29 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 29 +-
superset/translations/ro/LC_MESSAGES/messages.po | 29 +-
superset/translations/ru/LC_MESSAGES/messages.po | 29 +-
superset/translations/sk/LC_MESSAGES/messages.po | 29 +-
superset/translations/sl/LC_MESSAGES/messages.po | 29 +-
superset/translations/sr/LC_MESSAGES/messages.po | 29 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 29 +-
superset/translations/ta/LC_MESSAGES/messages.po | 29 +-
superset/translations/th/LC_MESSAGES/messages.po | 29 +-
superset/translations/tr/LC_MESSAGES/messages.po | 29 +-
superset/translations/uk/LC_MESSAGES/messages.po | 29 +-
superset/translations/zh/LC_MESSAGES/messages.po | 31 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 29 +-
superset/utils/export_storage.py | 76 +++
superset/utils/gcs.py | 101 +++
superset/utils/s3.py | 124 ++--
tests/integration_tests/charts/api_tests.py | 109 ++++
tests/integration_tests/charts/commands_tests.py | 133 +++-
tests/integration_tests/dashboards/api_tests.py | 435 ++++++++++++-
tests/integration_tests/datasets/api_tests.py | 15 +-
tests/integration_tests/reports/commands_tests.py | 65 +-
tests/integration_tests/security_tests.py | 8 +
tests/unit_tests/charts/test_filters.py | 96 +++
tests/unit_tests/commands/chart/create_test.py | 33 +-
tests/unit_tests/commands/chart/update_test.py | 66 +-
.../common/test_query_context_processor.py | 35 ++
tests/unit_tests/connectors/sqla/models_test.py | 234 +++++++
tests/unit_tests/dao/test_query_stop_race.py | 68 +-
tests/unit_tests/dashboards/api_test.py | 116 ++++
.../dashboards/test_excel_export_download_link.py | 65 ++
tests/unit_tests/db_engine_specs/test_db2.py | 35 +-
tests/unit_tests/db_engine_specs/test_ibmi.py | 76 +++
.../distributed_lock/distributed_lock_tests.py | 22 +
.../mcp_service/test_error_classification.py | 679 ++++++++++++++++++++
tests/unit_tests/models/dashboard_test.py | 41 +-
tests/unit_tests/semantic_layers/models_test.py | 225 +++++++
tests/unit_tests/subjects/test_raise_for_access.py | 122 ++++
.../tasks/test_export_dashboard_excel.py | 681 ++++++++++++++++++++-
tests/unit_tests/utils/gcs_tests.py | 120 ++++
tests/unit_tests/utils/s3_tests.py | 102 ++-
91 files changed, 6978 insertions(+), 543 deletions(-)
create mode 100644 superset/dashboards/excel_export/download_link.py
rename
superset/migrations/versions/{2026-09-19_00-00_a7f3c2e91d84_add_partition_filter_mapping.py
=> 2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py} (98%)
create mode 100644 superset/utils/export_storage.py
create mode 100644 superset/utils/gcs.py
create mode 100644
tests/unit_tests/dashboards/test_excel_export_download_link.py
create mode 100644 tests/unit_tests/db_engine_specs/test_ibmi.py
create mode 100644 tests/unit_tests/mcp_service/test_error_classification.py
create mode 100644 tests/unit_tests/utils/gcs_tests.py