This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch chore/use-modernized-po2json-fork
in repository https://gitbox.apache.org/repos/asf/superset.git
discard e043f3a7493 Merge branch 'master' into
chore/use-modernized-po2json-fork
discard 0a4b329fa67 fix: correct Jed format to be used with forked `po2json`
discard 77eaf6013b9 Merge branch 'master' into
chore/use-modernized-po2json-fork
discard 6a28dc96460 build(dev-deps): use `@hainenber/po2json` as modernized
`po2json` fork
add 9f48d0eac9e fix(tests): await userEvent.click in CsrfErrorMessage
compact-mode test (#44540)
add 7024401aef2 fix(mcp): drop tiktoken, size-guard responses by exact
byte length (#44508)
add 9413294b2bd docs(pivot-table): document the "Show values as"
percentage display option (#44127)
add 48795f9a2d4 docs(explore): document show_download param for standalone
chart embeds (#43906)
add 7dd70eaf2d6 fix: tighten object-level and destination checks across
four unrelated endpoints (#44036)
add add97e5d190 fix(embedded): tighten guest-token scoping for
annotations, result types, and channels (#43391)
add ca7cdfcd0ff fix(pinot): require the SQLAlchemy 2 driver extra (#44287)
add 0f229fda75f fix(security): exempt health blueprint from forced
password changes (#44504)
add 269b9f99fef fix(views): return 401 for NoAuthorizationError in
handle_api_exception (SC-121647) (#44533)
add 50bbcedf13b docs(mcp): document restore_chart and restore_dashboard
tools (#44207)
add ea1ffcf0adb fix: fixed inverseSelection (#40970)
add 350dd0d60ec fix(security): delete deprecated permissions left over
after upgrades (#44142)
add 7a9fe06762b fix(mcp): stop data tool responses crashing on binary and
NaT values (#44495)
add 9612437a9c8 fix(extensions): preserve chat state across display modes
(#44490)
add 61fffbe0c08 chore(deps-dev): bump oxlint from 1.82.0 to 1.83.0 in
/superset-frontend (#44525)
add c14ac29f477 fix(mcp): complete Treemap round-trip and previews (#44152)
add 3b4e5f5d0c6 chore(deps): bump markdown-to-jsx from 9.10.2 to 9.10.3 in
/superset-frontend (#44570)
add 7fe03a536b6 chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in
/superset-frontend (#44569)
add 6403e16fe56 chore(deps-dev): bump vitest from 5.0.0 to 5.0.1 in
/superset-embedded-sdk (#44568)
add d1f395914f1 chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in
/superset-embedded-sdk (#44567)
add 6c9138a6b7c chore(deps-dev): bump baseline-browser-mapping from
2.11.23 to 2.11.24 in /superset-frontend (#44566)
add 4b180bddad7 chore(deps): bump baseline-browser-mapping from 2.11.23 to
2.11.24 in /docs (#44565)
add 4290d94d6c9 chore(deps-dev): bump vitest from 5.0.0 to 5.0.1 in
/superset-websocket (#44564)
add 3e80a53e14f chore(deps-dev): bump @types/node from 26.5.1 to 26.6.1 in
/superset-websocket (#44563)
add f8f293d2666 chore(deps): bump benchmark-action/github-action-benchmark
from 1.22.1 to 1.22.2 (#44520)
add 689ab4a77af fix(translations): regenerate messages.pot after the
connection-move reword (#44574)
add 02dbfd2ab5b fix(dashboard): don't register an active tab for childless
TABS components (#44345)
add 838376dbc28 fix(mongodb): treat the Mongo database as the SQL Lab
schema so Data Preview returns rows (#44141)
add 6323b37f50a fix(dashboard): prevent and repair self-nested layout
components (#44303)
add 7c7b3adf745 fix(export): keep the acting user in streaming CSV exports
(#44425)
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 36e9e73dac5 build(dev-deps): use `@hainenber/po2json` as modernized
`po2json` fork
add f189137b721 fix: correct Jed format to be used with forked `po2json`
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 (e043f3a7493)
\
N -- N -- N refs/heads/chore/use-modernized-po2json-fork
(f189137b721)
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/workflows/frontend-bundle-size-nightly.yml | 2 +-
.github/workflows/superset-frontend.yml | 2 +-
UPDATING.md | 97 +-
.../configuration/configuring-superset.mdx | 7 +
docs/admin_docs/configuration/mcp-server.mdx | 106 +-
.../extensions/extension-points/chat.md | 4 +
docs/docs/using-superset/embedding.mdx | 21 +
docs/docs/using-superset/exploring-data.mdx | 14 +
.../using-superset/exporting-dashboard-data.mdx | 116 +-
.../docs/using-superset/using-ai-with-superset.mdx | 2 +
docs/package.json | 2 +-
docs/src/data/databases.json | 1 +
docs/static/resources/openapi.json | 78 +-
docs/yarn.lock | 8 +-
pyproject.toml | 20 +-
requirements/development.txt | 5 -
scripts/translations/check_pot_drift.py | 77 +-
superset-embedded-sdk/package-lock.json | 204 +--
superset-embedded-sdk/package.json | 4 +-
superset-frontend/package-lock.json | 186 +--
superset-frontend/package.json | 8 +-
.../packages/superset-ui-core/package.json | 2 +-
.../ErrorMessage/CsrfErrorMessage.test.tsx | 4 +-
superset-frontend/src/core/chat/ChatHost.tsx | 20 +-
.../src/dashboard/actions/hydrate.test.ts | 85 +-
superset-frontend/src/dashboard/actions/hydrate.ts | 28 +-
.../components/gridComponents/Tabs/Tabs.test.tsx | 95 ++
.../components/gridComponents/Tabs/Tabs.tsx | 22 +-
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 2 +-
.../DownloadMenuItems/DownloadMenuItems.test.tsx | 616 ++++++++-
.../components/menu/DownloadMenuItems/index.tsx | 210 ++-
.../src/dashboard/reducers/dashboardLayout.test.ts | 62 +
.../src/dashboard/reducers/dashboardLayout.ts | 26 +
.../src/dashboard/reducers/dashboardState.test.ts | 23 +
.../src/dashboard/util/getDropPosition.test.ts | 83 ++
.../src/dashboard/util/getDropPosition.ts | 13 +
.../util/removeUnreachableComponents.test.ts | 283 ++++
.../dashboard/util/removeUnreachableComponents.ts | 225 ++++
.../util/updateComponentParentsList.test.ts | 17 +
.../dashboard/util/updateComponentParentsList.ts | 7 +-
.../components/Select/SelectFilterPlugin.tsx | 22 +-
superset-frontend/src/views/App.test.tsx | 125 ++
superset-frontend/src/views/App.tsx | 28 +-
superset-websocket/package-lock.json | 204 +--
superset-websocket/package.json | 4 +-
superset/commands/dashboard/update.py | 7 +-
superset/commands/database/exceptions.py | 9 +-
superset/commands/database/update.py | 20 +-
superset/commands/database/utils.py | 47 +
superset/commands/distributed_lock/acquire.py | 9 +-
superset/commands/semantic_layer/update.py | 55 +-
superset/commands/streaming_export/base.py | 41 +-
superset/config.py | 68 +-
superset/daos/dashboard.py | 5 +
superset/dashboards/api.py | 264 +++-
superset/dashboards/excel_export/download_link.py | 160 +++
superset/dashboards/excel_export/email.py | 29 +-
superset/dashboards/layout.py | 269 ++++
superset/db_engine_specs/base.py | 82 +-
superset/db_engine_specs/gsheets.py | 1 +
superset/db_engine_specs/mongodb.py | 63 +-
superset/db_engine_specs/pinot.py | 4 +
superset/db_engine_specs/snowflake.py | 1 +
superset/embedded/view.py | 8 +-
superset/key_value/types.py | 1 +
superset/mcp_service/SECURITY.md | 2 +-
superset/mcp_service/__main__.py | 4 +-
superset/mcp_service/chart/chart_helpers.py | 35 +
superset/mcp_service/chart/chart_utils.py | 124 ++
superset/mcp_service/chart/compile.py | 50 +-
superset/mcp_service/chart/plugins/treemap.py | 10 +-
superset/mcp_service/chart/preview_utils.py | 14 +-
superset/mcp_service/chart/query_result.py | 113 +-
superset/mcp_service/chart/schemas.py | 390 +++---
superset/mcp_service/chart/tool/get_chart_data.py | 40 +-
.../mcp_service/chart/tool/get_chart_preview.py | 30 +-
.../chart/tool/get_chart_type_schema.py | 21 +-
superset/mcp_service/chart/tool/update_chart.py | 30 +-
.../mcp_service/chart/tool/update_chart_preview.py | 51 +-
superset/mcp_service/chart/treemap_preview.py | 297 +++++
superset/mcp_service/constants.py | 30 +-
superset/mcp_service/dashboard/schemas.py | 15 +-
.../dashboard/tool/generate_dashboard.py | 3 +-
superset/mcp_service/dataset/schemas.py | 13 +-
.../explore/tool/generate_explore_link.py | 3 +-
superset/mcp_service/mcp_config.py | 23 +-
superset/mcp_service/middleware.py | 495 +++++--
superset/mcp_service/semantic_layer/schemas.py | 29 +-
superset/mcp_service/sql_lab/schemas.py | 18 +-
superset/mcp_service/sql_lab/tool/execute_sql.py | 19 -
.../{token_utils.py => response_size_utils.py} | 319 ++---
superset/mcp_service/utils/response_utils.py | 8 +-
superset/mcp_service/utils/serialization.py | 225 ++++
superset/migrations/shared/security_converge.py | 34 +
...4fb8bfc1_delete_deprecated_permissions_33272.py | 153 +++
...a4572f8a_rename_deprecated_permissions_33272.py | 193 +++
...e6_merge_deprecated_permissions_with_master.py} | 12 +-
...merge_deprecated_permissions_with_master_v2.py} | 12 +-
...merge_deprecated_permissions_with_master_v3.py} | 12 +-
superset/security/api.py | 13 +-
superset/security/manager.py | 397 +++++-
superset/security/password_change.py | 11 +-
superset/tasks/export_dashboard_excel.py | 272 +++-
superset/translations/ar/LC_MESSAGES/messages.po | 9 +-
superset/translations/ca/LC_MESSAGES/messages.po | 9 +-
superset/translations/cs/LC_MESSAGES/messages.po | 9 +-
superset/translations/de/LC_MESSAGES/messages.po | 9 +-
superset/translations/en/LC_MESSAGES/messages.po | 9 +-
superset/translations/es/LC_MESSAGES/messages.po | 9 +-
superset/translations/fa/LC_MESSAGES/messages.po | 9 +-
superset/translations/fi/LC_MESSAGES/messages.po | 9 +-
superset/translations/fr/LC_MESSAGES/messages.po | 9 +-
superset/translations/it/LC_MESSAGES/messages.po | 9 +-
superset/translations/ja/LC_MESSAGES/messages.po | 9 +-
superset/translations/ko/LC_MESSAGES/messages.po | 9 +-
superset/translations/lv/LC_MESSAGES/messages.po | 9 +-
superset/translations/messages.pot | 22 +-
superset/translations/mi/LC_MESSAGES/messages.po | 9 +-
superset/translations/nl/LC_MESSAGES/messages.po | 9 +-
superset/translations/pl/LC_MESSAGES/messages.po | 9 +-
superset/translations/pt/LC_MESSAGES/messages.po | 9 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 9 +-
superset/translations/ro/LC_MESSAGES/messages.po | 9 +-
superset/translations/ru/LC_MESSAGES/messages.po | 9 +-
superset/translations/sk/LC_MESSAGES/messages.po | 9 +-
superset/translations/sl/LC_MESSAGES/messages.po | 9 +-
superset/translations/sr/LC_MESSAGES/messages.po | 9 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 9 +-
superset/translations/ta/LC_MESSAGES/messages.po | 9 +-
superset/translations/th/LC_MESSAGES/messages.po | 9 +-
superset/translations/tr/LC_MESSAGES/messages.po | 9 +-
superset/translations/uk/LC_MESSAGES/messages.po | 9 +-
superset/translations/zh/LC_MESSAGES/messages.po | 9 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 9 +-
superset/utils/export_storage.py | 76 ++
superset/utils/gcs.py | 101 ++
superset/utils/network.py | 115 ++
superset/utils/s3.py | 124 +-
superset/views/error_handling.py | 6 +-
superset/views/utils.py | 12 +
tests/integration_tests/dashboards/api_tests.py | 435 ++++++-
tests/integration_tests/embedded/test_view.py | 23 +
tests/integration_tests/security/api_tests.py | 28 +
tests/integration_tests/security_tests.py | 8 +
.../chart/streaming_export_command_test.py | 61 +
tests/unit_tests/commands/dashboard/update_test.py | 46 +
tests/unit_tests/commands/databases/utils_test.py | 58 +
.../commands/semantic_layer/update_test.py | 96 ++
tests/unit_tests/dao/dashboard_test.py | 139 ++
tests/unit_tests/dashboards/api_test.py | 116 ++
tests/unit_tests/dashboards/layout_test.py | 325 +++++
.../dashboards/test_excel_export_download_link.py | 65 +
tests/unit_tests/db_engine_specs/test_base.py | 243 +++-
.../unit_tests/db_engine_specs/test_databricks.py | 28 +-
.../db_engine_specs/test_databricks_multi_cloud.py | 4 +
tests/unit_tests/db_engine_specs/test_gsheets.py | 27 +-
tests/unit_tests/db_engine_specs/test_mongodb.py | 205 ++-
tests/unit_tests/db_engine_specs/test_pinot.py | 41 +-
tests/unit_tests/db_engine_specs/test_snowflake.py | 7 +-
tests/unit_tests/db_engine_specs/test_trino.py | 7 +-
.../distributed_lock/distributed_lock_tests.py | 22 +
.../mcp_service/chart/test_treemap_completeness.py | 1373 ++++++++++++++++++++
.../mcp_service/chart/tool/test_get_chart_data.py | 180 ++-
.../chart/tool/test_get_chart_type_schema.py | 26 +
.../dashboard/tool/test_dashboard_generation.py | 63 +
.../explore/tool/test_generate_explore_link.py | 49 +
.../semantic_layer/tool/test_list_metrics.py | 62 +-
.../mcp_service/sql_lab/tool/test_execute_sql.py | 104 +-
.../mcp_service/test_error_classification.py | 679 ++++++++++
.../mcp_service/test_mcp_tool_registration.py | 2 +-
tests/unit_tests/mcp_service/test_middleware.py | 227 ++--
.../mcp_service/test_response_serialization.py | 321 +++++
..._token_utils.py => test_response_size_utils.py} | 265 ++--
.../mcp_service/utils/test_serialization.py | 294 +++++
.../migrations/shared/security_converge_test.py | 218 ++++
.../test_deprecated_permissions_33272.py | 420 ++++++
tests/unit_tests/security/manager_test.py | 431 +++++-
tests/unit_tests/security/test_password_change.py | 68 +-
.../tasks/test_export_dashboard_excel.py | 681 +++++++++-
tests/unit_tests/utils/gcs_tests.py | 120 ++
tests/unit_tests/utils/s3_tests.py | 102 +-
tests/unit_tests/utils/test_network.py | 81 +-
tests/unit_tests/views/test_error_handling.py | 22 +
tests/unit_tests/views/test_utils.py | 69 +-
184 files changed, 14493 insertions(+), 1907 deletions(-)
create mode 100644
superset-frontend/src/dashboard/util/removeUnreachableComponents.test.ts
create mode 100644
superset-frontend/src/dashboard/util/removeUnreachableComponents.ts
create mode 100644 superset-frontend/src/views/App.test.tsx
create mode 100644 superset/dashboards/excel_export/download_link.py
create mode 100644 superset/dashboards/layout.py
create mode 100644 superset/mcp_service/chart/treemap_preview.py
rename superset/mcp_service/utils/{token_utils.py => response_size_utils.py}
(81%)
create mode 100644 superset/mcp_service/utils/serialization.py
create mode 100644
superset/migrations/versions/2026-09-10_00-00_1f5f4fb8bfc1_delete_deprecated_permissions_33272.py
create mode 100644
superset/migrations/versions/2026-09-10_00-01_3ce9a4572f8a_rename_deprecated_permissions_33272.py
copy superset/migrations/versions/{2016-09-19_17-22_b347b202819b_.py =>
2026-09-16_00-01_2ce579e91ae6_merge_deprecated_permissions_with_master.py} (79%)
copy superset/migrations/versions/{2016-09-19_17-22_b347b202819b_.py =>
2026-09-17_00-00_53a7abc31422_merge_deprecated_permissions_with_master_v2.py}
(76%)
copy superset/migrations/versions/{2016-09-19_17-22_b347b202819b_.py =>
2026-09-23_00-00_95d8a99c822e_merge_deprecated_permissions_with_master_v3.py}
(76%)
create mode 100644 superset/utils/export_storage.py
create mode 100644 superset/utils/gcs.py
create mode 100644 tests/unit_tests/dashboards/layout_test.py
create mode 100644
tests/unit_tests/dashboards/test_excel_export_download_link.py
create mode 100644
tests/unit_tests/mcp_service/chart/test_treemap_completeness.py
create mode 100644 tests/unit_tests/mcp_service/test_error_classification.py
create mode 100644 tests/unit_tests/mcp_service/test_response_serialization.py
rename tests/unit_tests/mcp_service/utils/{test_token_utils.py =>
test_response_size_utils.py} (87%)
create mode 100644 tests/unit_tests/mcp_service/utils/test_serialization.py
create mode 100644 tests/unit_tests/migrations/shared/security_converge_test.py
create mode 100644
tests/unit_tests/migrations/test_deprecated_permissions_33272.py
create mode 100644 tests/unit_tests/utils/gcs_tests.py