You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ms...@apache.org on 2026/06/01 20:23:49 UTC

(superset) branch msyavuz/chore/react-18.3-bump updated (838c4f13848 -> ba87f127af0)

This is an automated email from the ASF dual-hosted git repository.

msyavuz pushed a change to branch msyavuz/chore/react-18.3-bump
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 838c4f13848 chore(deps): sync package-lock for d3-cloud ^1.2.9
     add b2320820b4a feat(core): SoftDeleteMixin and restore infrastructure (#39977)
     add 8f88bbcc796 chore(deps-dev): bump @swc/core from 1.15.33 to 1.15.40 in /superset-frontend (#40519)
     add 63ae80ab623 chore(deps-dev): bump baseline-browser-mapping from 2.10.31 to 2.10.32 in /superset-frontend (#40518)
     add e1948c87c6d chore(deps-dev): bump webpack-sources from 3.4.1 to 3.5.0 in /superset-frontend (#40517)
     add cf9ee99b5ae chore(deps-dev): bump eslint-plugin-react-you-might-not-need-an-effect from 0.10.1 to 0.10.2 in /superset-frontend (#40516)
     add 61cb0aeae74 chore(deps): bump @swc/core from 1.15.33 to 1.15.40 in /docs (#40515)
     add c3bda6baea9 chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in /superset-frontend (#40487)
     add ead21d9789d chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40486)
     add 661ff31c6d5 chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#40485)
     add 63e3a18e8f4 chore(deps): bump baseline-browser-mapping from 2.10.31 to 2.10.32 in /docs (#40484)
     add ae5823fb9c2 chore(deps-dev): bump tmp from 0.2.5 to 0.2.7 in /superset-frontend (#40480)
     add e73d2d0bf60 chore(deps): bump tmp from 0.2.4 to 0.2.7 in /superset-frontend/cypress-base (#40476)
     add 53e2793bc3c fix: coerce out-of-bounds nanosecond timestamps to NaT instead of raising (#40127)
     add f614863ed78 feat(mcp): add list and get tools for annotation layers and annotations (#40342)
     add a69bbcb044c feat(mcp): add list and get tools for saved queries and query history (#40346)
     add 8d8eeb35053 feat(mcp): add list_tags and get_tag_info MCP tools (#40349)
     add b8ea4448d69 feat(ci): perform static security analysis for GHA workflows  (#40510)
     add 40de44f6de6 feat(mcp): add list and get tools for action log and tasks (#40344)
     add 43c3c06035f chore(deps): bump vm2 from 3.11.3 to 3.11.5 in /superset-frontend (#40529)
     add 62b4ee3d9e0 feat(mcp): add list and get tools for users and roles (#40345)
     add 16b56873b02 fix(ci): restrict workflow_run jobs to trusted origins and add zizmor audit (#40533)
     add f0838353a5a feat(i18n): add Czech (cs) locale support for dates (#40241)
     add c9136af8b6d fix(ci): trigger python dep check when pyproject.toml changes (#39792)
     add d350792d438 feat(mcp): add list and get tools for CSS templates and themes (#40343)
     add 44a8d9d4695 chore(deps): pin lodash, lodash-es, and yaml in docs to patched releases (#40535)
     add 8c6271e9ff8 chore(deps): bump urllib3, Mako, and python-multipart for high-severity CVEs (#40534)
     add f165c3fa786 fix(ci): grant security-events write to GHA validator workflow (#40539)
     add 7f54b0b13d0 test(database): regression test for sqla engine creation (#27897) (#40237)
     add 838ee27c299 chore(deps): bump protobuf to 5.29.6 and google-cloud-bigquery-storage to 2.26.0 (#40537)
     add fa4e571db5d chore(deps): force uuid 11.1.1 in docs (#40542)
     add f4787a4f252 chore(deps): bump ws to 8.20.1 in docs (#40538)
     add 2e7bec3646c chore(ci): harden GitHub Actions workflows per static analysis (#40545)
     add 2d6e68b5f29 fix(ci): remove deprecated ephemeral env workflows + resolve fixable GHA-related security issues  (#40121)
     add 4d95a8d0348 feat(listview): compact filter pills with popover for CRUD views (#40169)
     add 87be424f9c4 feat(mcp): add list and get tools for row level security and plugins (#40347)
     add f17e4de9cd5 fix(superset-frontend): color formats big numbers when value is 0 (#28038)
     add f10a296ed02 chore(deps): bump nh3 from 0.2.21 to 0.3.5 (#40551)
     add dfa4dbb96c8 chore(deps-dev): update denodo-sqlalchemy requirement from <2.1.0,>=1.0.6 to >=2.0.5,<2.1.0 (#40550)
     add ab66f0066ad chore(deps-dev): update sqlalchemy-cratedb requirement from <1,>=0.40.1 to >=0.41.0,<1 (#40549)
     add 35125d85215 chore(deps-dev): bump syntaqlite from 0.1.0 to 0.5.9 (#40548)
     add afc4f3c9b3f fix(database): extend URI blocklist to cover duckdb dialect (#40402)
     add 8e47eb1cc19 docs(security): explicit security model, role/capability matrix, AGENTS.md linkage (#40503)
     add c7bbfff4759 fix(ci): gate welcome message on first-time contributor association (#40543)
     add 585745695c3 fix(chart): load viz_type from request params when creating chart via API (#40536)
     add 469979714f3 chore(deps): force serialize-javascript 7.0.5 in docs (#40540)
     add a340293fefe chore(deps): bump idna, Authlib, fontTools, python-ldap, virtualenv (#40560)
     add ab5ea1f7d3c chore(deps): force d3-color 3.1.0 in docs (#40541)
     add 7e8b8e25a5e chore(ci): resolve remaining GitHub Actions static-analysis findings (#40556)
     add 9a79588d359 feat(dashboard): add Rison-encoded URL filter support (#39795)
     add a6215203878 fix(ci): repair Python version extraction in uv-pip-compile.sh (#40565)
     add acc80242f05 chore: fix translations (#40564)
     add 63249c8c977 fix(chart): add regression coverage for UpdateChartCommand ownership (#39997)
     add a2eda11a81e fix(dataset): validate catalog against allow_multi_catalog on import (#40376)
     add d52e28c564b fix(dashboard): preserve user selection when Dynamic Group By overlaps base (#40031)
     add 316dd3db22b fix(dataset): sort by data type when clicking Datatype column header (#40411)
     add a33fcb0eddc feat: add embedded dashboard E2E tests to Playwright CI (#39300)
     add 041ecbc248c fix(embedded): resolve guest user permissions in user_view_menu_names (#39197)
     add 5312d0adf81 feat(mcp): add list_reports and get_report_info tools (#40348)
     add e1bc8e7ae8f chore(deps): bump uuid, qs, js-yaml, and @cypress/request in frontend lockfiles (#40561)
     add dab628c13af fix(i18n): auto-add ASF license header in backfill_po.py (#40395)
     add 97be689b5c4 fix(daos): lazy-import SoftDeleteMixin to fix pytest collection error (#40573)
     add ba87f127af0 Merge remote-tracking branch 'origin/master' into msyavuz/chore/react-18.3-bump

No new revisions were added by this update.

Summary of changes:
 .github/SECURITY.md                                |   75 -
 .github/actions/setup-backend/action.yml           |   35 +-
 .github/actions/setup-supersetbot/action.yml       |    1 +
 .github/dependabot.yml                             |   60 +-
 .github/workflows/bashlib.sh                       |   16 +-
 .github/workflows/cancel_duplicates.yml            |   43 -
 .github/workflows/check_db_migration_confict.yml   |    2 +
 .github/workflows/claude.yml                       |    4 +
 .github/workflows/codeql-analysis.yml              |    2 +
 .github/workflows/dependency-review.yml            |    4 +
 .github/workflows/docker.yml                       |   11 +-
 .github/workflows/embedded-sdk-release.yml         |    2 +
 .github/workflows/embedded-sdk-test.yml            |    2 +
 .github/workflows/ephemeral-env-pr-close.yml       |   83 -
 .github/workflows/ephemeral-env.yml                |  350 --
 .github/workflows/github-action-validator.yml      |   17 +-
 .github/workflows/labeler.yml                      |    2 +-
 .github/workflows/latest-release-tag.yml           |    4 +-
 .github/workflows/pre-commit.yml                   |    4 +-
 .github/workflows/release.yml                      |    6 +
 .github/workflows/showtime-trigger.yml             |    9 +-
 .github/workflows/superset-docs-deploy.yml         |   12 +-
 .github/workflows/superset-docs-verify.yml         |    9 +-
 .github/workflows/superset-e2e.yml                 |   11 +-
 .github/workflows/superset-extensions-cli.yml      |    2 +-
 .github/workflows/superset-frontend.yml            |    5 +-
 .github/workflows/superset-helm-release.yml        |    8 +-
 .github/workflows/superset-playwright.yml          |   20 +
 .../workflows/superset-python-integrationtest.yml  |    6 +-
 .github/workflows/superset-python-presto-hive.yml  |    4 +-
 .github/workflows/superset-python-unittest.yml     |    2 +-
 .../workflows/superset-translations-comment.yml    |    1 +
 .github/workflows/superset-translations.yml        |    6 +-
 .github/workflows/tag-release.yml                  |   17 +-
 .github/workflows/tech-debt.yml                    |    2 +
 .github/workflows/welcome-new-users.yml            |    4 +-
 .pre-commit-config.yaml                            |   11 +
 AGENTS.md                                          |   38 +
 Dockerfile                                         |    2 +-
 SECURITY.md                                        |  145 +
 UPDATING.md                                        |    6 +
 .../pythonpath_dev/superset_config_docker_light.py |   31 +
 docs/package.json                                  |   12 +-
 docs/yarn.lock                                     |  220 +-
 pyproject.toml                                     |   10 +-
 requirements/base.txt                              |    8 +-
 requirements/development.txt                       |   25 +-
 scripts/change_detector.py                         |    3 +-
 scripts/oxlint.sh                                  |    2 +-
 scripts/translations/backfill_po.py                |   33 +
 scripts/uv-pip-compile.sh                          |    7 +-
 superset-frontend/cypress-base/package-lock.json   |  510 +-
 superset-frontend/cypress-base/package.json        |    6 +
 superset-frontend/package-lock.json                |  314 +-
 superset-frontend/package.json                     |    9 +-
 .../packages/generator-superset/package.json       |    2 +-
 .../packages/superset-ui-core/package.json         |    2 +-
 superset-frontend/playwright.config.ts             |   24 +
 .../playwright/components/core/EditableTabs.ts     |   18 +-
 .../components/modals/EditDatasetModal.ts          |   17 +
 .../playwright/embedded-app/index.html             |   95 +
 .../playwright/helpers/api/dashboard.ts            |   50 +-
 .../playwright/helpers/api/embedded.ts             |  133 +
 .../playwright/helpers/api/requests.ts             |  112 +-
 superset-frontend/playwright/helpers/navigation.ts |   57 +
 .../playwright/pages/ChartCreationPage.ts          |    3 +-
 .../playwright/pages/ChartListPage.ts              |    5 +-
 .../playwright/pages/CreateDatasetPage.ts          |    3 +-
 .../playwright/pages/DashboardListPage.ts          |    3 +-
 .../playwright/pages/DashboardPage.ts              |    5 +-
 .../playwright/pages/DatasetListPage.ts            |    3 +-
 superset-frontend/playwright/pages/EmbeddedPage.ts |  172 +
 superset-frontend/playwright/pages/SqlLabPage.ts   |   37 +-
 .../tests/embedded/embedded-dashboard.spec.ts      |  362 ++
 superset-frontend/playwright/utils/constants.ts    |   13 +
 .../src/BigNumber/BigNumberViz.test.tsx            |   85 +
 .../src/BigNumber/BigNumberViz.tsx                 |    7 +-
 superset-frontend/spec/helpers/testing-library.tsx |   30 +
 .../src/components/Chart/chartAction.ts            |    7 +-
 .../components/ListView/CardSortSelect.test.tsx    |  102 +
 .../src/components/ListView/CardSortSelect.tsx     |   76 +-
 .../ListView/Filters/CompactFilterTrigger.test.tsx |  145 +
 .../ListView/Filters/CompactFilterTrigger.tsx      |  198 +
 .../ListView/Filters/CompactSelectPanel.test.tsx   |  339 ++
 .../ListView/Filters/CompactSelectPanel.tsx        |  318 ++
 .../src/components/ListView/Filters/DateRange.tsx  |  112 -
 .../ListView/Filters/FilterPopoverContent.test.tsx |   80 +
 .../ListView/Filters/FilterPopoverContent.tsx      |   74 +
 .../components/ListView/Filters/Select.test.tsx    |  267 -
 .../src/components/ListView/Filters/Select.tsx     |  154 -
 .../components/ListView/Filters/TimeRange.test.tsx |  251 +
 .../src/components/ListView/Filters/TimeRange.tsx  |  291 +
 .../src/components/ListView/Filters/index.test.tsx |  335 +-
 .../src/components/ListView/Filters/index.tsx      |  385 +-
 .../src/components/ListView/ListView.test.tsx      |   21 +-
 .../src/components/ListView/ListView.tsx           |   81 +-
 .../nativeFilters/FilterBar/Horizontal.tsx         |  137 +-
 .../FilterBar/HorizontalFilterBar.test.tsx         |    1 +
 .../UrlFilterTag.tsx}                              |   44 +-
 .../FilterBar/UrlFilters/Vertical.test.tsx         |  139 +
 .../FilterBar/UrlFilters/Vertical.tsx              |   96 +
 .../FilterBar/UrlFilters/VerticalCollapse.tsx      |  131 +
 .../FilterBar/UrlFilters/urlFilterUtils.ts         |   71 +
 .../nativeFilters/FilterBar/Vertical.tsx           |    2 +
 .../components/nativeFilters/FilterBar/index.tsx   |   17 +-
 .../src/dashboard/containers/DashboardPage.tsx     |   69 +
 .../src/dashboard/util/UrlFilters.scope.test.ts    |  110 +
 .../util/charts/getFormDataWithExtraFilters.ts     |    4 +-
 .../util/getFormDataWithExtraFilters.test.ts       |  105 +-
 .../src/dashboard/util/risonFilters.test.ts        |  411 ++
 .../src/dashboard/util/risonFilters.ts             |  569 ++
 .../AddDataset/DatasetPanel/DatasetPanel.test.tsx  |   23 +
 .../AddDataset/DatasetPanel/DatasetPanel.tsx       |    2 +-
 superset-frontend/src/hooks/useLocale.ts           |    2 +
 .../src/pages/ChartList/ChartList.test.tsx         |    9 +-
 .../DashboardList/DashboardList.cardview.test.tsx  |   16 +-
 .../src/pages/DashboardList/DashboardList.test.tsx |    8 +-
 .../DatasetList/DatasetList.integration.test.tsx   |    6 +-
 .../DatasetList/DatasetList.listview.test.tsx      |   23 +-
 .../src/pages/DatasetList/DatasetList.test.tsx     |    7 +-
 .../src/pages/GroupsList/GroupsList.test.tsx       |   16 +-
 .../src/pages/RolesList/RolesList.test.tsx         |    7 +-
 .../RowLevelSecurityList.test.tsx                  |    9 +-
 .../src/pages/UsersList/UsersList.test.tsx         |   20 +-
 superset/commands/chart/create.py                  |    8 +
 superset/commands/dataset/importers/v1/__init__.py |   15 +-
 superset/commands/dataset/importers/v1/utils.py    |   71 +-
 superset/commands/importers/v1/utils.py            |   47 +
 superset/commands/restore.py                       |   98 +
 superset/constants.py                              |    3 +
 superset/daos/base.py                              |   92 +-
 superset/daos/database.py                          |    8 +-
 superset/daos/report.py                            |   50 +-
 superset/daos/{security.py => role.py}             |   11 +-
 superset/initialization/__init__.py                |   24 +
 .../mcp_service/action_log}/__init__.py            |    0
 superset/mcp_service/action_log/schemas.py         |  302 +
 .../{database => action_log}/tool/__init__.py      |    8 +-
 .../action_log/tool/get_action_log_info.py         |   97 +
 .../action_log/tool/list_action_logs.py            |  152 +
 .../mcp_service/annotation_layer}/__init__.py      |    0
 superset/mcp_service/annotation_layer/schemas.py   |  367 ++
 .../{explore => annotation_layer}/tool/__init__.py |   17 +-
 .../tool/get_annotation_layer_info.py              |   97 +
 .../tool/get_layer_annotation_info.py              |  130 +
 .../tool/list_annotation_layers.py                 |  123 +
 .../tool/list_layer_annotations.py                 |  144 +
 superset/mcp_service/app.py                        |  157 +-
 superset/mcp_service/chart/schemas.py              |   17 +-
 superset/mcp_service/common/schema_discovery.py    |  174 +
 superset/mcp_service/constants.py                  |    4 +-
 .../mcp_service/css_template}/__init__.py          |    0
 superset/mcp_service/css_template/schemas.py       |  280 +
 .../{database => css_template}/tool/__init__.py    |    8 +-
 .../css_template/tool/get_css_template_info.py     |  108 +
 .../css_template/tool/list_css_templates.py        |  150 +
 superset/mcp_service/dashboard/schemas.py          |   13 +-
 .../dashboard/tool/generate_dashboard.py           |    6 +-
 superset/mcp_service/database/schemas.py           |   14 +-
 superset/mcp_service/dataset/schemas.py            |   13 +-
 superset/mcp_service/mcp_core.py                   |   62 +-
 .../mcp_service/plugin}/__init__.py                |    0
 .../{daos/css.py => mcp_service/plugin/dao.py}     |    5 +-
 superset/mcp_service/plugin/schemas.py             |  213 +
 .../plugin/tool}/__init__.py                       |    7 +-
 .../mcp_service/plugin/tool/get_plugin_info.py     |  101 +
 superset/mcp_service/plugin/tool/list_plugins.py   |  123 +
 superset/mcp_service/privacy.py                    |    7 +-
 .../mcp_service/query}/__init__.py                 |    0
 superset/mcp_service/query/schemas.py              |  293 +
 .../query/tool}/__init__.py                        |    7 +-
 superset/mcp_service/query/tool/get_query_info.py  |  122 +
 superset/mcp_service/query/tool/list_queries.py    |  156 +
 .../mcp_service/report}/__init__.py                |    0
 .../mcp_service/{database => report}/schemas.py    |  224 +-
 .../report/tool}/__init__.py                       |    7 +-
 .../mcp_service/report/tool/get_report_info.py     |  127 +
 superset/mcp_service/report/tool/list_reports.py   |  172 +
 .../mcp_service/rls}/__init__.py                   |    0
 superset/mcp_service/rls/schemas.py                |  255 +
 .../mcp_service/{database => rls}/tool/__init__.py |    8 +-
 .../mcp_service/rls/tool/get_rls_filter_info.py    |  101 +
 superset/mcp_service/rls/tool/list_rls_filters.py  |  147 +
 .../mcp_service/role}/__init__.py                  |    0
 superset/mcp_service/role/schemas.py               |  264 +
 .../role/tool}/__init__.py                         |    7 +-
 superset/mcp_service/role/tool/get_role_info.py    |   97 +
 superset/mcp_service/role/tool/list_roles.py       |  135 +
 .../mcp_service/saved_query}/__init__.py           |    0
 superset/mcp_service/saved_query/schemas.py        |  269 +
 .../{database => saved_query}/tool/__init__.py     |    8 +-
 .../saved_query/tool/get_saved_query_info.py       |  129 +
 .../saved_query/tool/list_saved_queries.py         |  158 +
 superset/mcp_service/system/tool/get_schema.py     |  128 +-
 .../mcp_service/tag}/__init__.py                   |    0
 superset/mcp_service/tag/schemas.py                |  251 +
 .../execution => mcp_service/tag/tool}/__init__.py |    8 +-
 superset/mcp_service/tag/tool/get_tag_info.py      |  108 +
 superset/mcp_service/tag/tool/list_tags.py         |  157 +
 .../mcp_service/task}/__init__.py                  |    0
 superset/mcp_service/task/schemas.py               |  259 +
 .../task/tool}/__init__.py                         |    7 +-
 superset/mcp_service/task/tool/get_task_info.py    |  107 +
 superset/mcp_service/task/tool/list_tasks.py       |  140 +
 .../mcp_service/theme}/__init__.py                 |    0
 superset/mcp_service/theme/schemas.py              |  305 +
 .../theme/tool}/__init__.py                        |    7 +-
 superset/mcp_service/theme/tool/get_theme_info.py  |  116 +
 superset/mcp_service/theme/tool/list_themes.py     |  147 +
 .../mcp_service/user}/__init__.py                  |    0
 superset/mcp_service/user/schemas.py               |  302 +
 .../user/tool}/__init__.py                         |    7 +-
 superset/mcp_service/user/tool/get_user_info.py    |  107 +
 superset/mcp_service/user/tool/list_users.py       |  151 +
 superset/mcp_service/utils/response_utils.py       |   11 +
 superset/mcp_service/utils/sanitization.py         |   12 +-
 superset/models/core.py                            |   71 +-
 superset/models/helpers.py                         |  266 +-
 superset/result_set.py                             |    4 +-
 superset/security/analytics_db_safety.py           |    4 +
 superset/security/manager.py                       |   61 +-
 superset/translations/ar/LC_MESSAGES/messages.po   | 1794 +++++-
 superset/translations/ca/LC_MESSAGES/messages.po   | 1761 +++++-
 superset/translations/cs/LC_MESSAGES/messages.po   | 2406 +++++---
 superset/translations/de/LC_MESSAGES/messages.po   | 1768 +++++-
 superset/translations/en/LC_MESSAGES/messages.po   | 1503 ++++-
 superset/translations/es/LC_MESSAGES/messages.po   | 5548 +++++++++++-------
 superset/translations/fa/LC_MESSAGES/messages.po   | 1748 +++++-
 superset/translations/fi/LC_MESSAGES/messages.po   | 5890 +++++++++++++-------
 superset/translations/fr/LC_MESSAGES/messages.po   | 1807 +++++-
 superset/translations/it/LC_MESSAGES/messages.po   | 1682 +++++-
 superset/translations/ja/LC_MESSAGES/messages.po   | 2469 +++++---
 superset/translations/ko/LC_MESSAGES/messages.po   | 1681 +++++-
 superset/translations/lv/LC_MESSAGES/messages.po   | 1729 +++++-
 superset/translations/messages.pot                 | 1459 ++++-
 superset/translations/mi/LC_MESSAGES/messages.po   | 1752 +++++-
 superset/translations/nl/LC_MESSAGES/messages.po   | 1762 +++++-
 superset/translations/pl/LC_MESSAGES/messages.po   | 1764 +++++-
 superset/translations/pt/LC_MESSAGES/messages.po   | 1708 +++++-
 .../translations/pt_BR/LC_MESSAGES/messages.po     | 5432 +++++++++++-------
 superset/translations/ru/LC_MESSAGES/messages.po   | 1812 +++++-
 superset/translations/sk/LC_MESSAGES/messages.po   | 5602 +++++++++++++++----
 superset/translations/sl/LC_MESSAGES/messages.po   | 1774 +++++-
 superset/translations/th/LC_MESSAGES/messages.po   | 5133 +++++++++++------
 superset/translations/tr/LC_MESSAGES/messages.po   | 1645 +++++-
 superset/translations/uk/LC_MESSAGES/messages.po   | 2151 +++++--
 superset/translations/zh/LC_MESSAGES/messages.po   | 1723 +++++-
 .../translations/zh_TW/LC_MESSAGES/messages.po     | 1723 +++++-
 superset/utils/rison_filters.py                    |  274 +
 superset/views/filters.py                          |  213 +-
 .../security/analytics_db_safety_tests.py          |   20 +
 tests/integration_tests/superset_test_config.py    |    1 +
 tests/unit_tests/commands/chart/update_test.py     |   93 +
 .../importers/v1/test_find_existing_for_import.py  |  180 +
 .../unit_tests/commands/importers/v1/utils_test.py |  119 +
 .../commands/test_base_restore_command.py          |  187 +
 tests/unit_tests/dao/base_dao_test.py              |    7 +
 tests/unit_tests/daos/test_base_dao_soft_delete.py |  100 +
 .../datasets/commands/importers/v1/import_test.py  |  231 +
 .../unit_tests/mcp_service/action_log}/__init__.py |    0
 .../mcp_service/action_log/tool}/__init__.py       |    0
 .../action_log/tool/test_action_log_tools.py       |  401 ++
 .../mcp_service/annotation_layer}/__init__.py      |    0
 .../mcp_service/annotation_layer/tool}/__init__.py |    0
 .../tool/test_annotation_layer_tools.py            |  562 ++
 .../mcp_service/css_template}/__init__.py          |    0
 .../mcp_service/css_template/tool}/__init__.py     |    0
 .../css_template/tool/test_css_template_tools.py   |  280 +
 .../unit_tests/mcp_service/plugin}/__init__.py     |    0
 .../mcp_service/plugin/tool}/__init__.py           |    0
 .../mcp_service/plugin/tool/test_plugin_tools.py   |  172 +
 .../unit_tests/mcp_service/query}/__init__.py      |    0
 .../unit_tests/mcp_service/query/tool}/__init__.py |    0
 .../mcp_service/query/tool/test_query_tools.py     |  328 ++
 .../unit_tests/mcp_service/report}/__init__.py     |    0
 .../mcp_service/report/tool}/__init__.py           |    0
 .../mcp_service/report/tool/test_report_tools.py   |  739 +++
 .../unit_tests/mcp_service/rls}/__init__.py        |    0
 .../unit_tests/mcp_service/rls/tool}/__init__.py   |    0
 .../mcp_service/rls/tool/test_rls_tools.py         |  245 +
 .../unit_tests/mcp_service/role}/__init__.py       |    0
 .../unit_tests/mcp_service/role/tool}/__init__.py  |    0
 .../mcp_service/role/tool/test_role_tools.py       |  336 ++
 .../mcp_service/saved_query}/__init__.py           |    0
 .../mcp_service/saved_query/tool}/__init__.py      |    0
 .../saved_query/tool/test_saved_query_tools.py     |  337 ++
 .../mcp_service/system/tool/test_get_schema.py     |  210 +
 .../mcp_service/system/tool/test_mcp_core.py       |   12 +-
 .../unit_tests/mcp_service/tag}/__init__.py        |    0
 .../unit_tests/mcp_service/tag/tool}/__init__.py   |    0
 .../mcp_service/tag/tool/test_tag_tools.py         |  268 +
 .../unit_tests/mcp_service/task}/__init__.py       |    0
 .../unit_tests/mcp_service/task/tool}/__init__.py  |    0
 .../mcp_service/task/tool/test_task_tools.py       |  284 +
 .../mcp_service/test_mcp_tool_registration.py      |  138 +-
 .../unit_tests/mcp_service/theme}/__init__.py      |    0
 .../unit_tests/mcp_service/theme/tool}/__init__.py |    0
 .../mcp_service/theme/tool/test_theme_tools.py     |  267 +
 .../unit_tests/mcp_service/user}/__init__.py       |    0
 .../unit_tests/mcp_service/user/tool}/__init__.py  |    0
 .../mcp_service/user/tool/test_user_tools.py       |  449 ++
 tests/unit_tests/models/core_test.py               |   94 +
 tests/unit_tests/models/test_soft_delete_mixin.py  |  566 ++
 tests/unit_tests/result_set_test.py                |   20 +
 .../scripts/translations/backfill_po_test.py       |   33 +
 tests/unit_tests/security/manager_test.py          |   72 +
 tests/unit_tests/utils/test_rison_filters.py       |  183 +
 tests/unit_tests/views/test_soft_delete_filter.py  |  356 ++
 308 files changed, 75698 insertions(+), 16814 deletions(-)
 delete mode 100644 .github/SECURITY.md
 delete mode 100644 .github/workflows/cancel_duplicates.yml
 delete mode 100644 .github/workflows/ephemeral-env-pr-close.yml
 delete mode 100644 .github/workflows/ephemeral-env.yml
 create mode 100644 SECURITY.md
 create mode 100644 superset-frontend/playwright/embedded-app/index.html
 create mode 100644 superset-frontend/playwright/helpers/api/embedded.ts
 create mode 100644 superset-frontend/playwright/helpers/navigation.ts
 create mode 100644 superset-frontend/playwright/pages/EmbeddedPage.ts
 create mode 100644 superset-frontend/playwright/tests/embedded/embedded-dashboard.spec.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/BigNumber/BigNumberViz.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/CardSortSelect.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactFilterTrigger.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactFilterTrigger.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactSelectPanel.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/CompactSelectPanel.tsx
 delete mode 100644 superset-frontend/src/components/ListView/Filters/DateRange.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/FilterPopoverContent.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/FilterPopoverContent.tsx
 delete mode 100644 superset-frontend/src/components/ListView/Filters/Select.test.tsx
 delete mode 100644 superset-frontend/src/components/ListView/Filters/Select.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/TimeRange.test.tsx
 create mode 100644 superset-frontend/src/components/ListView/Filters/TimeRange.tsx
 copy superset-frontend/src/dashboard/components/nativeFilters/FilterBar/{CrossFilters/CrossFilterTag.tsx => UrlFilters/UrlFilterTag.tsx} (63%)
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/Vertical.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/Vertical.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/VerticalCollapse.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/UrlFilters/urlFilterUtils.ts
 create mode 100644 superset-frontend/src/dashboard/util/UrlFilters.scope.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/risonFilters.test.ts
 create mode 100644 superset-frontend/src/dashboard/util/risonFilters.ts
 create mode 100644 superset/commands/restore.py
 copy superset/daos/{security.py => role.py} (78%)
 copy {superset-core/src/superset_core/common => superset/mcp_service/action_log}/__init__.py (100%)
 create mode 100644 superset/mcp_service/action_log/schemas.py
 copy superset/mcp_service/{database => action_log}/tool/__init__.py (84%)
 create mode 100644 superset/mcp_service/action_log/tool/get_action_log_info.py
 create mode 100644 superset/mcp_service/action_log/tool/list_action_logs.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/annotation_layer}/__init__.py (100%)
 create mode 100644 superset/mcp_service/annotation_layer/schemas.py
 copy superset/mcp_service/{explore => annotation_layer}/tool/__init__.py (68%)
 create mode 100644 superset/mcp_service/annotation_layer/tool/get_annotation_layer_info.py
 create mode 100644 superset/mcp_service/annotation_layer/tool/get_layer_annotation_info.py
 create mode 100644 superset/mcp_service/annotation_layer/tool/list_annotation_layers.py
 create mode 100644 superset/mcp_service/annotation_layer/tool/list_layer_annotations.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/css_template}/__init__.py (100%)
 create mode 100644 superset/mcp_service/css_template/schemas.py
 copy superset/mcp_service/{database => css_template}/tool/__init__.py (83%)
 create mode 100644 superset/mcp_service/css_template/tool/get_css_template_info.py
 create mode 100644 superset/mcp_service/css_template/tool/list_css_templates.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/plugin}/__init__.py (100%)
 copy superset/{daos/css.py => mcp_service/plugin/dao.py} (88%)
 create mode 100644 superset/mcp_service/plugin/schemas.py
 copy superset/{models/sql_types => mcp_service/plugin/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/plugin/tool/get_plugin_info.py
 create mode 100644 superset/mcp_service/plugin/tool/list_plugins.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/query}/__init__.py (100%)
 create mode 100644 superset/mcp_service/query/schemas.py
 copy superset/{models/sql_types => mcp_service/query/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/query/tool/get_query_info.py
 create mode 100644 superset/mcp_service/query/tool/list_queries.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/report}/__init__.py (100%)
 copy superset/mcp_service/{database => report}/schemas.py (53%)
 copy superset/{models/sql_types => mcp_service/report/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/report/tool/get_report_info.py
 create mode 100644 superset/mcp_service/report/tool/list_reports.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/rls}/__init__.py (100%)
 create mode 100644 superset/mcp_service/rls/schemas.py
 copy superset/mcp_service/{database => rls}/tool/__init__.py (84%)
 create mode 100644 superset/mcp_service/rls/tool/get_rls_filter_info.py
 create mode 100644 superset/mcp_service/rls/tool/list_rls_filters.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/role}/__init__.py (100%)
 create mode 100644 superset/mcp_service/role/schemas.py
 copy superset/{models/sql_types => mcp_service/role/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/role/tool/get_role_info.py
 create mode 100644 superset/mcp_service/role/tool/list_roles.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/saved_query}/__init__.py (100%)
 create mode 100644 superset/mcp_service/saved_query/schemas.py
 copy superset/mcp_service/{database => saved_query}/tool/__init__.py (83%)
 create mode 100644 superset/mcp_service/saved_query/tool/get_saved_query_info.py
 create mode 100644 superset/mcp_service/saved_query/tool/list_saved_queries.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/tag}/__init__.py (100%)
 create mode 100644 superset/mcp_service/tag/schemas.py
 copy superset/{sql/execution => mcp_service/tag/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/tag/tool/get_tag_info.py
 create mode 100644 superset/mcp_service/tag/tool/list_tags.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/task}/__init__.py (100%)
 create mode 100644 superset/mcp_service/task/schemas.py
 copy superset/{models/sql_types => mcp_service/task/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/task/tool/get_task_info.py
 create mode 100644 superset/mcp_service/task/tool/list_tasks.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/theme}/__init__.py (100%)
 create mode 100644 superset/mcp_service/theme/schemas.py
 copy superset/{models/sql_types => mcp_service/theme/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/theme/tool/get_theme_info.py
 create mode 100644 superset/mcp_service/theme/tool/list_themes.py
 copy {superset-core/src/superset_core/common => superset/mcp_service/user}/__init__.py (100%)
 create mode 100644 superset/mcp_service/user/schemas.py
 copy superset/{models/sql_types => mcp_service/user/tool}/__init__.py (86%)
 create mode 100644 superset/mcp_service/user/tool/get_user_info.py
 create mode 100644 superset/mcp_service/user/tool/list_users.py
 create mode 100644 superset/utils/rison_filters.py
 create mode 100644 tests/unit_tests/commands/chart/update_test.py
 create mode 100644 tests/unit_tests/commands/importers/v1/test_find_existing_for_import.py
 create mode 100644 tests/unit_tests/commands/importers/v1/utils_test.py
 create mode 100644 tests/unit_tests/commands/test_base_restore_command.py
 create mode 100644 tests/unit_tests/daos/test_base_dao_soft_delete.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/action_log}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/action_log/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/action_log/tool/test_action_log_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/annotation_layer}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/annotation_layer/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/annotation_layer/tool/test_annotation_layer_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/css_template}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/css_template/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/css_template/tool/test_css_template_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/plugin}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/plugin/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/plugin/tool/test_plugin_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/query}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/query/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/query/tool/test_query_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/report}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/report/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/report/tool/test_report_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/rls}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/rls/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/rls/tool/test_rls_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/role}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/role/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/role/tool/test_role_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/saved_query}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/saved_query/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/saved_query/tool/test_saved_query_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/tag}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/tag/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/tag/tool/test_tag_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/task}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/task/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/task/tool/test_task_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/theme}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/theme/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/theme/tool/test_theme_tools.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/user}/__init__.py (100%)
 copy {superset-core/src/superset_core/common => tests/unit_tests/mcp_service/user/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/user/tool/test_user_tools.py
 create mode 100644 tests/unit_tests/models/test_soft_delete_mixin.py
 create mode 100644 tests/unit_tests/utils/test_rison_filters.py
 create mode 100644 tests/unit_tests/views/test_soft_delete_filter.py