This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch feat/enable-merge-queue
in repository https://gitbox.apache.org/repos/asf/superset.git
discard 0a1c024603e Merge branch 'master' into feat/enable-merge-queue
discard 3746e605e20 feat(ci): enable GitHub merge queue for master
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 b8a817c040b feat(ci): enable GitHub merge queue for master
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 (0a1c024603e)
\
N -- N -- N refs/heads/feat/enable-merge-queue (b8a817c040b)
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:
UPDATING.md | 49 ++-
.../configuration/configuring-superset.mdx | 7 +
docs/admin_docs/configuration/mcp-server.mdx | 29 +-
.../extensions/extension-points/chat.md | 4 +
docs/docs/using-superset/embedding.mdx | 21 +
docs/docs/using-superset/exploring-data.mdx | 14 +
.../docs/using-superset/using-ai-with-superset.mdx | 2 +
docs/src/data/databases.json | 1 +
pyproject.toml | 6 +-
requirements/development.txt | 5 -
.../ErrorMessage/CsrfErrorMessage.test.tsx | 4 +-
superset-frontend/src/core/chat/ChatHost.tsx | 20 +-
.../components/Select/SelectFilterPlugin.tsx | 22 +-
superset-frontend/src/views/App.test.tsx | 125 ++++++
superset-frontend/src/views/App.tsx | 28 +-
superset/commands/database/exceptions.py | 9 +-
superset/commands/database/update.py | 20 +-
superset/commands/database/utils.py | 47 +++
superset/commands/semantic_layer/update.py | 55 ++-
superset/config.py | 9 +
superset/db_engine_specs/base.py | 82 +++-
superset/db_engine_specs/gsheets.py | 1 +
superset/db_engine_specs/pinot.py | 4 +
superset/db_engine_specs/snowflake.py | 1 +
superset/embedded/view.py | 8 +-
superset/mcp_service/SECURITY.md | 2 +-
superset/mcp_service/__main__.py | 4 +-
superset/mcp_service/chart/schemas.py | 33 +-
superset/mcp_service/chart/tool/get_chart_data.py | 31 +-
superset/mcp_service/constants.py | 2 +-
superset/mcp_service/dashboard/schemas.py | 15 +-
superset/mcp_service/dataset/schemas.py | 13 +-
superset/mcp_service/mcp_config.py | 23 +-
superset/mcp_service/middleware.py | 208 +++++-----
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/utils/network.py | 115 ++++++
superset/views/error_handling.py | 6 +-
superset/views/utils.py | 12 +
tests/integration_tests/embedded/test_view.py | 23 ++
tests/integration_tests/security/api_tests.py | 28 ++
tests/unit_tests/commands/databases/utils_test.py | 58 +++
.../commands/semantic_layer/update_test.py | 96 +++++
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_pinot.py | 41 +-
tests/unit_tests/db_engine_specs/test_snowflake.py | 7 +-
tests/unit_tests/db_engine_specs/test_trino.py | 7 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 25 +-
.../semantic_layer/tool/test_list_metrics.py | 62 +--
.../mcp_service/sql_lab/tool/test_execute_sql.py | 104 +++--
.../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 +++-
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 +++-
78 files changed, 4759 insertions(+), 904 deletions(-)
create mode 100644 superset-frontend/src/views/App.test.tsx
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 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