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

hainenber pushed a change to branch sec/resolve-gha-vulns
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 4073c48d401 Merge branch 'master' into sec/resolve-gha-vulns
     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 8591387316f Merge branch 'master' into sec/resolve-gha-vulns

No new revisions were added by this update.

Summary of changes:
 .github/actions/setup-backend/action.yml           |   2 +-
 .github/actions/setup-supersetbot/action.yml       |   1 +
 .github/dependabot.yml                             |  60 +--
 .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/embedded-sdk-release.yml         |   2 +
 .github/workflows/embedded-sdk-test.yml            |   2 +
 .github/workflows/github-action-validator.yml      |  17 +-
 .github/workflows/release.yml                      |   6 +
 .github/workflows/superset-docs-deploy.yml         |  11 +-
 .github/workflows/superset-docs-verify.yml         |   8 +-
 .github/workflows/superset-extensions-cli.yml      |   2 +-
 .github/workflows/superset-frontend.yml            |   5 +-
 .../workflows/superset-python-integrationtest.yml  |   6 +-
 .github/workflows/superset-python-presto-hive.yml  |   4 +-
 .github/workflows/superset-python-unittest.yml     |   2 +-
 .github/workflows/tag-release.yml                  |   7 +
 .github/workflows/tech-debt.yml                    |   2 +
 .github/workflows/welcome-new-users.yml            |   1 -
 .pre-commit-config.yaml                            |  11 +
 Dockerfile                                         |   2 +-
 docs/package.json                                  |   6 +-
 docs/yarn.lock                                     |  41 +-
 requirements/base.txt                              |   4 +-
 requirements/development.txt                       |  11 +-
 scripts/change_detector.py                         |   3 +-
 superset-frontend/package-lock.json                |   6 +-
 superset-frontend/src/hooks/useLocale.ts           |   2 +
 superset/commands/dataset/importers/v1/utils.py    |  39 +-
 superset/daos/base.py                              |   3 +
 superset/daos/{security.py => role.py}             |  11 +-
 .../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                        | 130 ++++-
 superset/mcp_service/chart/schemas.py              |  17 +-
 superset/mcp_service/common/schema_discovery.py    |  79 +++
 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                   |   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/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     |  92 +++-
 .../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/result_set.py                             |   4 +-
 .../unit_tests/commands/importers/v1/utils_test.py | 119 +++++
 tests/unit_tests/dao/base_dao_test.py              |   7 +
 .../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/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/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     | 157 ++++++
 .../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/result_set_test.py                |  20 +
 135 files changed, 10415 insertions(+), 201 deletions(-)
 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/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/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 tests/unit_tests/commands/importers/v1/utils_test.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/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/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

Reply via email to