You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by el...@apache.org on 2026/05/30 02:25:33 UTC
(superset) branch amin/mcp-css-templates-themes updated (440adee6866 -> b8e32e75e0f)
This is an automated email from the ASF dual-hosted git repository.
eschutho pushed a change to branch amin/mcp-css-templates-themes
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 440adee6866 fix(mcp): fix get_schema per-model-type RBAC and sanitize error fields
omit 4c5614f8dc6 fix(mcp): use excluded_field_names=frozenset() for theme json_data sanitization
omit a7fddc1fa65 fix(mcp): apply cross-PR sanitization and columns_available feedback to css_template and theme tools
omit ba86fdd5e2e fix(mcp): address schema review comments on css_template and theme tools
omit 180c85afc37 fix(mcp): address reviewer feedback on CSS template and theme tools
omit 81875831ef8 fix(mcp): use correct result.content[0].text for not_found assertions in tests
omit 408e251acc9 fix(docker): replace pip install uv with COPY from official uv image
omit d441fe6735c refactor(mcp): add is_system fields to ThemeInfo and get_schema tests for new model types
omit 08bb3c21cd7 refactor(mcp): update get_schema instructions to include css_template and theme
omit eacfecdd548 refactor(mcp): fix DRY violations and add get_schema/uuid support for CSS templates and themes
omit e9de7b19b86 feat(mcp): add list and get tools for CSS templates and themes
add e25d7081979 fix(mcp): hide write tools from users without write permissions (#40098)
add ac035083d75 feat(path): support metric-based color scales & line width by metric (#39165)
add 5966bb1c1ef feat(mcp): add series_limit to generate_chart XY config (#40307)
add 558ff4452b8 fix(preview): fix chart preview bugs (#40063)
add 55491006016 feat(i18n): add missing Slovak translations (#40219)
add a94edfe4187 fix(i18n): add Slovenian translation for 'Range type' in DateFilter (#40287)
add f7f6c29adf0 chore(deps-dev): bump webpack from 5.106.2 to 5.107.1 in /superset-frontend (#40370)
add 8e98ca65691 docs: expand out-of-scope vulnerability definitions (#40332)
add 31087177ab3 chore(deps-dev): bump webpack from 5.107.0 to 5.107.1 in /docs (#40364)
add f4af6a2caf0 fix(docker): add missing `service-worker.js` into built container image (#39596)
add 64f0e88de79 chore(backend/build): upgrade Gunicorn from v22 to v25 (#38788)
add df8222ffcd2 chore(deps-dev): bump ts-jest from 29.4.10 to 29.4.11 in /superset-frontend (#40369)
add b0d26196fc5 chore(deps-dev): bump @swc/plugin-emotion from 14.9.0 to 14.10.0 in /superset-frontend (#40368)
add 8ab4695ba34 fix(mcp): use `name` URL param so AI-generated SQL Lab titles render (#40288)
add 21059b54f06 feat(semantic layers): form for SL with a single SV (#40280)
add c945ef67639 chore(oxlint): enable import/newline-after-import + react/no-unstable-nested-components (#40319)
add 42149f6a78f fix(chart): fix label and description translation on UI and enhance french translations (#40229)
add 91d96419fe0 feat(sec): delays version-bumping PR to avoid prematurely usage of compromised packages (#39783)
add 3b4892c48cd fix(select): replace cached options with search results in AsyncSelect (#40039)
add 869ab37f590 chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40366)
add d97b5d6509c chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40372)
add 3599c78a034 chore(deps): bump react-arborist from 3.6.1 to 3.7.0 in /superset-frontend (#40371)
add 5af8fe77fab chore(deps): bump zod from 4.4.1 to 4.4.3 in /superset-frontend (#40367)
add 6e23e4541d3 chore(deps): bump yeoman-generator from 8.1.2 to 8.2.2 in /superset-frontend (#40365)
add 2a0ebd7055a chore(deps-dev): bump ts-jest from 29.4.10 to 29.4.11 in /superset-websocket (#40363)
add 0febe32dc9c chore(deps): bump geostyler from 18.5.1 to 18.6.0 in /superset-frontend (#40323)
add c728b4a11f5 chore(deps): bump sqlglot from 28.10.0 to 30.8.0 (#40186)
add e40648dfcbd chore(deps-dev): bump typescript from 5.9.3 to 6.0.3 in /superset-websocket (#39425)
add 5cdd542ae50 fix(i18n): translate DateFilter tooltip for time range values (#40286)
add f8e13770fcf fix(dashboard): add top padding to "Create new chart" button in builder pane (#40033)
add af6ac4d09cb feat(i18n): AI-assisted translation backfill tooling + Spanish translations (#39448)
add e57387098b4 fix(bigquery): limit result set size to prevent browser memory crashes (#38588)
add 8d985d223bc ci(e2e): run backend under gunicorn instead of flask dev server (#40234)
add 42668cf6341 ci(docker): pin QEMU binfmt image to stabilize arm64 builds (#40235)
add 838ac8f553c fix(ci): stop cancelling Hold Label Check runs (#40380)
add 168b49bf34f chore(cypress): remove dead _skip spec files and skipped inline tests (#40384)
add 2fa3bbd91cf chore(ci): limit /app/prefix matrix variant to master merges (#40385)
add 55203bbc748 chore(deps): bump qs from 6.14.2 to 6.15.2 in /docs (#40383)
add 841871f1e78 chore(deps): bump qs from 6.14.2 to 6.15.2 in /superset-websocket/utils/client-ws-app (#40382)
add 816794b1985 fix(frontend): handle null/undefined path in ensureAppRoot (#39940)
add 5003ee1499a docs: remove out-of-place phrase (#40226)
add b21450681dc feat(i18n): add Thai (th) translations (AI-generated, needs review) (#40391)
add 965ec472965 fix(explore): hide value input for unary filter operators (#39924)
add 2fef4e41f20 feat(i18n): add Finnish (fi) translations (AI-generated, needs review) (#40390)
add 9c90a6854c5 ci(translations): hard-block translation regressions in CI (#39443)
add 8caa74354f6 chore(deps): bump markdown from 3.8.1 to 3.10.2 (#40389)
add fe484f6bb28 fix(UserListModal): Success notification mentions user and not group (#40284)
add b64561f3a37 chore(mcp): Simplify chart preview response (#40020)
add 33585b0480c feat(mcp): make form_data_key optional in update_chart_preview (#39680)
add 09572cd5efb chore(deps): bump tabulate from 0.9.0 to 0.10.0 (#40315)
add c381677dfdf chore(deps): bump click from 8.2.1 to 8.4.0 (#40312)
add bbe2f207d2d chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in /superset-frontend (#40418)
add 03d25277ba7 chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#40417)
add 9cc2deb9036 chore(deps): update zod requirement from ^4.4.1 to ^4.4.3 in /superset-frontend/plugins/plugin-chart-echarts (#40416)
add e9d46d843fa chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40415)
add 709ef9b6155 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#40321)
add 8b551d3f742 chore(deps-dev): bump duckdb from 1.4.2 to 1.5.2 (#40381)
add 952a6f3a239 fix(mcp): prevent encoding error on tools/list when middleware raises (#40446)
add b6f545e61e1 feat(mcp): resolve call_tool proxy name and capture error_type in logging (#38915)
add 7e088792b95 test(model): roll back uncommitted ds_col mutations in timestamp-expression tests (#40451)
add 09a94fa26b4 feat(mcp): return browser-friendly hello page for GET /mcp from browsers (#40309)
add 207a7bf7f9b fix: preserve dashboard certification when saving layout changes (#40193)
add fb606623538 chore(mcp): revert browser-friendly hello page for GET /mcp from browsers (#40467)
add d744f5715c4 fix(dashboard-export): include and re-attach roles in import/export (#21000) (#40136)
add e041f253856 fix(mcp): return error when target_tab not found in add_chart_to_existing_dashboard (#40124)
add ef4514f5abd fix(treemap): remove gaps between chart nodes (#40181)
add 6bd1b462164 chore(deps): bump github/codeql-action from 4.35.5 to 4.36.0 (#40458)
add 894058fe3d4 chore(deps): bump fs-extra from 11.3.2 to 11.3.5 in /superset-frontend (#40438)
add 08164e33bb4 chore(deps): bump d3-cloud from 1.2.8 to 1.2.9 in /superset-frontend (#40437)
add 9441240e5c4 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40436)
add c73106b7a28 fix(chart-echarts): drop white textBorder from Funnel segment labels (#40468)
add 0dc58d10420 feat(mcp): browser hello page with working middleware and config-driven content (#40471)
add e68251fa704 feat(mcp): support custom SQL metrics in generate_chart and update_chart (#40448)
add f037449b753 fix(roles): resolve HTTP 429 and 414 errors on role management page (#39465)
add 8a0026b1736 fix(groups): display user full name in role edit user dropdown (#39942)
add f663f47628a fix(embedding): require non-default JWT secret when embedded dashboards are enabled (#39999)
add ec09cec6bdf fix(ci): correct first-interaction inputs in welcome workflow (#40508)
add f7e1f968946 fix(i18n): Wrapped default Chat Error message in t() to support translation (#40504)
add 96b96ad7d47 chore(deps): bump ws from 8.20.1 to 8.21.0 in /superset-websocket (#40483)
add b0da0cf202b chore(ci): update GHA actions to Node.js 24-compatible versions (#40477)
add 8853ab5c753 feat(mcp): add get_dashboard_layout companion tool (#40328)
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 e2156f1115c feat(mcp): add list and get tools for CSS templates and themes
add 8f11c0c026d refactor(mcp): fix DRY violations and add get_schema/uuid support for CSS templates and themes
add 8b30e133e4e refactor(mcp): update get_schema instructions to include css_template and theme
add 409d724124c refactor(mcp): add is_system fields to ThemeInfo and get_schema tests for new model types
add c43e20a676a fix(docker): replace pip install uv with COPY from official uv image
add 22d31ff872c fix(mcp): use correct result.content[0].text for not_found assertions in tests
add 5a344fa448f fix(mcp): address reviewer feedback on CSS template and theme tools
add d90b86d7c2a fix(mcp): address schema review comments on css_template and theme tools
add a0e1ee141d2 fix(mcp): apply cross-PR sanitization and columns_available feedback to css_template and theme tools
add 13df455dff6 fix(mcp): use excluded_field_names=frozenset() for theme json_data sanitization
add 73c0e911c47 fix(mcp): fix get_schema per-model-type RBAC and sanitize error fields
add b8e32e75e0f fix(mcp): fix get_schema per-model-type RBAC and sanitize error fields
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 (440adee6866)
\
N -- N -- N refs/heads/amin/mcp-css-templates-themes (b8e32e75e0f)
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/SECURITY.md | 16 +-
.github/actions/setup-docker/action.yml | 15 +-
.github/actions/setup-supersetbot/action.yml | 4 +-
.github/dependabot.yml | 61 +-
.github/workflows/bashlib.sh | 125 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/docker.yml | 6 +-
.github/workflows/no-hold-label.yml | 7 +-
.github/workflows/superset-e2e.yml | 4 +-
.../workflows/superset-translations-comment.yml | 87 +
.github/workflows/superset-translations.yml | 90 +-
.github/workflows/welcome-new-users.yml | 11 +-
.gitignore | 2 +
.pre-commit-config.yaml | 2 +-
.pylintrc | 2 +-
Dockerfile | 2 +
.../contributing/development-setup.md | 1 -
docs/developer_docs/contributing/howtos.md | 86 +
docs/package.json | 6 +-
docs/yarn.lock | 177 +-
pyproject.toml | 13 +-
requirements/base.txt | 10 +-
requirements/development.txt | 14 +-
scripts/change_detector.py | 1 +
scripts/translations/backfill_po.py | 653 +
scripts/translations/build_translation_index.py | 153 +
.../translations/check_translation_regression.py | 250 +
superset-core/pyproject.toml | 2 +-
.../cypress/e2e/dashboard/_skip.controls.test.ts | 100 -
.../dashboard/_skip.horizontalFilterBar.test.ts | 292 -
.../cypress/e2e/dashboard/_skip.key_value.test.ts | 53 -
.../cypress/e2e/dashboard/_skip.load.test.ts | 51 -
.../_skip.nativeFilters.noInitState.test.ts | 385 -
.../e2e/dashboard/_skip.nativeFilters.test.ts | 431 -
.../cypress/e2e/dashboard/_skip.tabs.test.ts | 194 -
.../cypress/e2e/dashboard/_skip.url_params.test.ts | 45 -
.../cypress/e2e/dashboard/editmode.test.ts | 1110 +-
.../cypress/e2e/explore/_skip.AdhocFilters.test.ts | 109 -
.../cypress/e2e/explore/_skip.AdhocMetrics.test.ts | 123 -
.../e2e/explore/_skip.advanced_analytics.test.ts | 65 -
.../cypress/e2e/explore/_skip.annotations.test.ts | 48 -
.../cypress/e2e/explore/_skip.link.test.ts | 192 -
.../visualizations/_skip.big_number.test.js | 80 -
.../visualizations/_skip.big_number_total.test.js | 79 -
.../explore/visualizations/_skip.box_plot.test.js | 65 -
.../explore/visualizations/_skip.bubble.test.js | 108 -
.../explore/visualizations/_skip.compare.test.js | 100 -
.../visualizations/_skip.download_chart.test.js | 54 -
.../e2e/explore/visualizations/_skip.gauge.test.js | 75 -
.../e2e/explore/visualizations/_skip.graph.test.ts | 91 -
.../e2e/explore/visualizations/_skip.pie.test.js | 82 -
.../visualizations/_skip.pivot_table.test.js | 106 -
.../explore/visualizations/_skip.sunburst.test.js | 97 -
.../e2e/explore/visualizations/_skip.table.test.ts | 474 -
.../e2e/explore/visualizations/_skip.time_table.js | 130 -
.../explore/visualizations/_skip.world_map.test.js | 95 -
superset-frontend/cypress-base/package-lock.json | 12 +-
superset-frontend/oxlint.json | 13 +-
superset-frontend/package-lock.json | 336 +-
superset-frontend/package.json | 20 +-
.../packages/superset-ui-core/package.json | 2 +-
.../src/chart/components/SuperChart.tsx | 1 +
.../src/components/Select/AsyncSelect.test.tsx | 470 +
.../src/components/Select/AsyncSelect.tsx | 117 +-
.../src/components/Select/utils.tsx | 4 +
.../src/query/types/QueryResponse.ts | 1 +
.../src/Funnel/transformProps.ts | 2 -
.../plugin-chart-echarts/src/Treemap/constants.ts | 4 +-
.../src/Treemap/transformProps.ts | 3 +-
.../test/Funnel/transformProps.test.ts | 9 +
.../test/Treemap/transformProps.test.ts | 41 +
.../src/layers/Path/Path.test.tsx | 525 +-
.../preset-chart-deckgl/src/layers/Path/Path.tsx | 108 +-
.../src/layers/Path/buildQuery.test.ts | 355 +
.../src/layers/Path/buildQuery.ts | 66 +-
.../src/layers/Path/controlPanel.test.ts | 242 +
.../src/layers/Path/controlPanel.ts | 73 +-
.../src/layers/Path/transformProps.test.ts | 364 +
.../src/layers/Path/transformProps.ts | 65 +-
.../src/utilities/Shared_DeckGL.tsx | 35 +
.../components/DynamicGroupBy/controlPanel.test.ts | 53 +
.../components/DynamicGroupBy/controlPanel.ts | 13 +-
.../components/TimeColumn/controlPanel.test.ts | 53 +
.../components/TimeColumn/controlPanel.ts | 7 +-
.../components/TimeGrain/controlPanel.test.ts | 53 +
.../components/TimeGrain/controlPanel.ts | 7 +-
.../src/components/Chart/ChartErrorMessage.tsx | 3 +-
.../src/components/Chart/chartAction.ts | 10 +-
.../src/components/Chart/chartActions.test.ts | 51 +
.../src/dashboard/actions/dashboardLayout.ts | 1 +
.../src/dashboard/actions/dashboardState.ts | 9 +-
.../src/dashboard/components/SliceAdder.tsx | 2 +-
.../components/ControlPanelsContainer.test.tsx | 20 +
.../explore/components/ControlPanelsContainer.tsx | 11 +-
.../controls/DateFilterControl/DateFilterLabel.tsx | 6 +-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 64 +
.../index.tsx | 91 +-
.../src/features/groups/GroupListModal.tsx | 3 +-
superset-frontend/src/features/groups/utils.ts | 3 +-
.../src/features/roles/RoleListEditModal.test.tsx | 113 +-
.../src/features/roles/RoleListEditModal.tsx | 59 +-
.../semanticLayers/MultiEnumControl.test.tsx | 96 +
.../semanticLayers/jsonFormsHelpers.test.ts | 45 +-
.../features/semanticLayers/jsonFormsHelpers.tsx | 91 +-
.../semanticViews/AddSemanticViewModal.tsx | 38 +-
.../src/features/users/UserListModal.tsx | 2 +-
superset-frontend/src/features/users/utils.ts | 9 +
.../filters/components/Range/controlPanel.test.ts | 53 +
.../src/filters/components/Range/controlPanel.ts | 11 +-
.../filters/components/Select/controlPanel.test.ts | 34 +-
.../src/filters/components/Select/controlPanel.ts | 56 +-
.../src/filters/components/Time/controlPanel.ts | 7 +-
.../filters/components/TimeColumn/controlPanel.ts | 7 +-
.../filters/components/TimeGrain/controlPanel.ts | 7 +-
superset-frontend/src/utils/fetchOptions.ts | 21 +-
superset-frontend/src/utils/pathUtils.test.ts | 14 +
superset-frontend/src/utils/pathUtils.ts | 11 +-
superset-frontend/webpack.proxy-config.js | 1 +
superset-websocket/package-lock.json | 42 +-
superset-websocket/package.json | 6 +-
superset-websocket/src/index.ts | 6 +-
superset-websocket/tsconfig.json | 1 +
.../utils/client-ws-app/package-lock.json | 12 +-
superset/charts/schemas.py | 4 +
superset/commands/dashboard/export.py | 10 +
superset/commands/dashboard/importers/v1/utils.py | 26 +
superset/commands/dataset/importers/v1/utils.py | 39 +-
superset/commands/importers/v1/utils.py | 47 +
superset/commands/restore.py | 98 +
superset/common/query_context_processor.py | 13 +
superset/common/utils/query_cache_manager.py | 21 +-
superset/config.py | 7 +-
superset/constants.py | 2 +
superset/daos/base.py | 88 +-
superset/daos/database.py | 7 +
superset/dashboards/schemas.py | 1 +
superset/db_engine_specs/base.py | 12 +-
superset/db_engine_specs/bigquery.py | 109 +-
superset/initialization/__init__.py | 75 +-
superset/mcp_service/__main__.py | 34 +-
.../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 | 70 +-
superset/mcp_service/auth.py | 173 +-
superset/mcp_service/chart/chart_utils.py | 89 +-
superset/mcp_service/chart/schemas.py | 271 +-
superset/mcp_service/chart/tool/generate_chart.py | 25 +-
.../mcp_service/chart/tool/get_chart_preview.py | 111 +-
superset/mcp_service/chart/tool/update_chart.py | 33 +-
.../mcp_service/chart/tool/update_chart_preview.py | 47 +-
.../chart/validation/dataset_validator.py | 45 +-
.../chart/validation/runtime/__init__.py | 4 +-
.../validation/runtime/chart_type_suggester.py | 23 +-
.../chart/validation/schema_validator.py | 35 +-
superset/mcp_service/dashboard/schemas.py | 292 +-
superset/mcp_service/dashboard/tool/__init__.py | 2 +
.../tool/add_chart_to_existing_dashboard.py | 91 +-
.../dashboard/tool/generate_dashboard.py | 6 +-
.../dashboard/tool/get_dashboard_layout.py | 119 +
superset/mcp_service/database/schemas.py | 14 +-
superset/mcp_service/dataset/schemas.py | 13 +-
superset/mcp_service/jwt_verifier.py | 275 +-
superset/mcp_service/mcp_config.py | 6 +-
superset/mcp_service/middleware.py | 172 +-
.../mcp_service/query}/__init__.py | 0
.../mcp_service/{css_template => query}/schemas.py | 201 +-
.../mcp_service/{theme => query}/tool/__init__.py | 8 +-
.../tool/get_query_info.py} | 84 +-
superset/mcp_service/query/tool/list_queries.py | 156 +
.../mcp_service/saved_query}/__init__.py | 0
.../{css_template => saved_query}/schemas.py | 165 +-
.../{database => saved_query}/tool/__init__.py | 8 +-
.../tool/get_saved_query_info.py} | 77 +-
.../saved_query/tool/list_saved_queries.py | 158 +
superset/mcp_service/server.py | 120 +-
superset/mcp_service/sql_lab/schemas.py | 21 +-
.../sql_lab/tool/open_sql_lab_with_context.py | 7 +-
superset/mcp_service/system/tool/get_schema.py | 6 +
.../mcp_service/tag}/__init__.py | 0
superset/mcp_service/tag/schemas.py | 251 +
.../mcp_service/{theme => tag}/tool/__init__.py | 8 +-
.../get_theme_info.py => tag/tool/get_tag_info.py} | 74 +-
.../tool/list_themes.py => tag/tool/list_tags.py} | 116 +-
superset/mcp_service/theme/schemas.py | 1 -
superset/mcp_service/utils/response_utils.py | 11 +
superset/mcp_service/utils/sanitization.py | 127 +-
superset/models/helpers.py | 260 +-
superset/result_set.py | 4 +-
superset/security/manager.py | 50 +-
superset/sql/dialects/db2.py | 6 +
superset/sql/dialects/dremio.py | 6 +-
superset/sql/dialects/firebolt.py | 11 +-
superset/sql/parse.py | 37 +-
superset/translations/es/LC_MESSAGES/messages.po | 4264 +--
superset/translations/fi/LC_MESSAGES/messages.po | 30258 +++++++++++++++++++
superset/translations/fr/LC_MESSAGES/messages.po | 1774 +-
superset/translations/requirements.txt | 1 +
superset/translations/sk/LC_MESSAGES/messages.po | 11768 ++++----
superset/translations/sl/LC_MESSAGES/messages.po | 6 +-
superset/translations/th/LC_MESSAGES/messages.po | 29937 ++++++++++++++++++
superset/views/filters.py | 213 +-
tests/integration_tests/model_tests.py | 89 +-
tests/unit_tests/charts/test_client_processing.py | 34 +-
tests/unit_tests/commands/dashboard/export_test.py | 68 +
.../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 +
.../common/test_query_context_processor.py | 120 +
tests/unit_tests/dao/base_dao_test.py | 7 +
tests/unit_tests/daos/test_base_dao_soft_delete.py | 100 +
tests/unit_tests/db_engine_specs/test_bigquery.py | 132 +-
.../mcp_service/annotation_layer}/__init__.py | 0
.../mcp_service/annotation_layer/tool}/__init__.py | 0
.../tool/test_annotation_layer_tools.py | 562 +
.../mcp_service/chart/test_big_number_chart.py | 41 +-
.../mcp_service/chart/test_chart_schemas.py | 295 +
.../mcp_service/chart/test_chart_utils.py | 239 +
.../mcp_service/chart/tool/test_generate_chart.py | 90 +
.../chart/tool/test_get_chart_preview.py | 115 +-
.../mcp_service/chart/tool/test_update_chart.py | 58 +
.../chart/tool/test_update_chart_preview.py | 72 +-
.../chart/validation/test_runtime_validator.py | 25 +
.../tool/test_add_chart_to_existing_dashboard.py | 52 +
.../dashboard/tool/test_dashboard_generation.py | 174 +-
.../dashboard/tool/test_get_dashboard_layout.py | 285 +
.../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 +
.../mcp_service/saved_query}/__init__.py | 0
.../mcp_service/saved_query/tool}/__init__.py | 0
.../saved_query/tool/test_saved_query_tools.py | 337 +
.../sql_lab/tool/test_open_sql_lab_with_context.py | 43 +-
.../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 +
tests/unit_tests/mcp_service/test_auth_rbac.py | 120 +
tests/unit_tests/mcp_service/test_jwt_verifier.py | 6 +-
.../mcp_service/test_jwt_verifier_browser_hello.py | 126 +
tests/unit_tests/mcp_service/test_middleware.py | 206 +-
.../mcp_service/test_middleware_logging.py | 181 +-
.../mcp_service/test_tool_search_transform.py | 30 +-
.../mcp_service/utils/test_sanitization.py | 200 +
tests/unit_tests/models/test_soft_delete_mixin.py | 566 +
tests/unit_tests/result_set_test.py | 20 +
.../unit_tests/scripts/translations}/__init__.py | 0
.../scripts/translations/backfill_po_test.py | 312 +
.../translations/build_translation_index_test.py | 256 +
tests/unit_tests/views/test_soft_delete_filter.py | 356 +
253 files changed, 84806 insertions(+), 15882 deletions(-)
create mode 100644 .github/workflows/superset-translations-comment.yml
create mode 100644 scripts/translations/backfill_po.py
create mode 100644 scripts/translations/build_translation_index.py
create mode 100755 scripts/translations/check_translation_regression.py
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.controls.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.horizontalFilterBar.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.key_value.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.load.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.nativeFilters.noInitState.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.nativeFilters.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.tabs.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/_skip.url_params.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/_skip.AdhocFilters.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/_skip.AdhocMetrics.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/_skip.advanced_analytics.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/_skip.annotations.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/_skip.link.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.big_number.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.big_number_total.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.box_plot.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.bubble.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.compare.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.download_chart.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.gauge.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.graph.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.pie.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.pivot_table.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.sunburst.test.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.table.test.ts
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.time_table.js
delete mode 100644 superset-frontend/cypress-base/cypress/e2e/explore/visualizations/_skip.world_map.test.js
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/buildQuery.test.ts
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/controlPanel.test.ts
create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Path/transformProps.test.ts
create mode 100644 superset-frontend/src/chartCustomizations/components/DynamicGroupBy/controlPanel.test.ts
create mode 100644 superset-frontend/src/chartCustomizations/components/TimeColumn/controlPanel.test.ts
create mode 100644 superset-frontend/src/chartCustomizations/components/TimeGrain/controlPanel.test.ts
create mode 100644 superset-frontend/src/features/semanticLayers/MultiEnumControl.test.tsx
create mode 100644 superset-frontend/src/filters/components/Range/controlPanel.test.ts
create mode 100644 superset/commands/restore.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
create mode 100644 superset/mcp_service/dashboard/tool/get_dashboard_layout.py
copy {superset-core/src/superset_core/common => superset/mcp_service/query}/__init__.py (100%)
copy superset/mcp_service/{css_template => query}/schemas.py (55%)
copy superset/mcp_service/{theme => query}/tool/__init__.py (86%)
copy superset/mcp_service/{theme/tool/get_theme_info.py => query/tool/get_query_info.py} (52%)
create mode 100644 superset/mcp_service/query/tool/list_queries.py
copy {superset-core/src/superset_core/common => superset/mcp_service/saved_query}/__init__.py (100%)
copy superset/mcp_service/{css_template => saved_query}/schemas.py (59%)
copy superset/mcp_service/{database => saved_query}/tool/__init__.py (83%)
copy superset/mcp_service/{theme/tool/get_theme_info.py => saved_query/tool/get_saved_query_info.py} (50%)
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/mcp_service/{theme => tag}/tool/__init__.py (86%)
copy superset/mcp_service/{theme/tool/get_theme_info.py => tag/tool/get_tag_info.py} (53%)
copy superset/mcp_service/{theme/tool/list_themes.py => tag/tool/list_tags.py} (51%)
create mode 100644 superset/translations/fi/LC_MESSAGES/messages.po
create mode 100644 superset/translations/th/LC_MESSAGES/messages.po
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/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
create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_layout.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/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
create mode 100644 tests/unit_tests/mcp_service/test_jwt_verifier_browser_hello.py
create mode 100644 tests/unit_tests/models/test_soft_delete_mixin.py
copy {superset-core/src/superset_core/common => tests/unit_tests/scripts/translations}/__init__.py (100%)
create mode 100644 tests/unit_tests/scripts/translations/backfill_po_test.py
create mode 100644 tests/unit_tests/scripts/translations/build_translation_index_test.py
create mode 100644 tests/unit_tests/views/test_soft_delete_filter.py