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 2025/11/04 17:01:55 UTC

(superset) branch msyavuz/fix/calculated-column-order updated (108099cad4 -> 813ab0b9dd)

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

msyavuz pushed a change to branch msyavuz/fix/calculated-column-order
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 108099cad4 Trigger CI workflows
     add 98fba1eefe fix(security): Add active property to guest user (#35454)
     add d9dcbb68b7 chore(docs): use native docusauros admonition notation (#35791)
     add 7f0c0aea94 fix(ThemeController): replace fetch with SupersetClient for proper auth (#35794)
     add 1234533c67 fix: edit dataset modal visual fixes (#35799)
     add d09421230b test(dashboard): eliminate race condition in FiltersConfigModal test (#35717)
     add 79918a7939 fix(frontend): resolve race condition in DatasetUsageTab pagination s… (#35691)
     add 5e4a80e5d0 fix(ag-grid): fix conditional formatting theme colors and module extensibility (#35605)
     add 93cb60b24e docs(db_engine_specs): restructure feature table for GitHub rendering (#35809)
     add c3b8c96db6 fix(alerts): improve Slack API rate limiting for large workspaces (#35622)
     add 7c9720e22b fix(dashboard): handle invalid thumbnail BytesIO objects gracefully (#35808)
     add cc6a5dc29a feat(mcp): PR1 - Add MCP service scaffold for Apache Superset (#35163)
     add 3d2ed363aa fix(docs): Update Arc database connector documentation (#35805)
     add 51aad52e6c fix: unpin holidays and prophet (#35771)
     add 19473af401 fix(database-modal): fix issue where commas could not be typed into DB configuration. (#35289)
     add 0bf34d4d6f fix(native-filters): prevent circular dependencies and improve dependency handling (#35317)
     add 6e60a00d69 fix(SqlLab): South pane visual changes (#35601)
     add 6704c0aaec fix(sqllab): Fix CSV export button href in SQL Lab when application root is defined (#35118)
     add bf830b2dd5 fix(theme): add fontWeightStrong to allowedAntdTokens to fix bold markdown rendering (#35821)
     add 61758c07d2 fix: update Russian translations (#35750)
     add 7a759c903b chore(deps): bump swagger-ui-react from 5.29.5 to 5.30.0 in /docs (#35865)
     add e1455057e7 feat(mcp): PR2 - Add chart listing and info tools with core infrastructure (#35835)
     add 5218b4eea2 fix(echarts): fix time shift color matching functionality (#35826)
     add 61c68f7b8f fix(reports): Add celery task execution ID to email notification logs (#35807)
     add 7733265fa2 fix(mcp): remove hardcoded admin username fallbacks (#35875)
     add 5c57c9c0b2 fix: add utc=True to pd.to_datetime for timezone-aware datetimes (#35587)
     add 514d56d1ae feat: conditional formatting improvements add flag toAllRow and  toTextColor in tables (#34762)
     add 2db19008fb test(dashboard): strengthen fontWeightStrong assertion for markdown bold (#35872)
     add 99b61143f6 feat(Chart): Save Chart State globally (#35343)
     add 48ee0821d3 feat: show total in waterfall chart (#35876)
     add 2013963e0b chore(deps-dev): bump @types/node from 24.9.1 to 24.9.2 in /superset-websocket (#35879)
     add dd857a2c7a fix: displaying cell bars in table (#35885)
     add a5eb02d178 chore(deps): bump use-immer from 0.9.0 to 0.11.0 in /superset-frontend (#35789)
     add 8ccdf3b32b feat(frontend): Replace ESLint with OXC hybrid linting architecture (#35506)
     add 5fc934d859 chore: bump shillelagh to 1.4.3 (#35895)
     add 6f50ddf710 refactor(explore): extract session ID retrieval into overridable method (#35779)
     add f6f15f58ee fix: set pandas 2.1 as requirement (#35912)
     add 6e27bee2ca refactor(explore): improve focus management in adhoc filter editor (#35801)
     add 0a95f74f11 chore: Docs and config improvements for Docker setup (#35896)
     add 30d584afd1 fix(db2): update time grain expressions for DAY to use DATE function (#35848)
     add fee4e7d8e2 feat(mcp): MCP service implementation (PRs 3-9 consolidated) (#35877)
     add d1f9c77afd chore(deps): bump caniuse-lite from 1.0.30001751 to 1.0.30001752 in /docs (#35924)
     add be3690c22b fix(explore): formatting the SQL in "View Query" pop-up doesn't format (#35898)
     add 00a6772507 chore(deps): bump swagger-ui-react from 5.30.0 to 5.30.1 in /docs (#35955)
     add 3c43ce4e06 chore(deps): bump antd from 5.27.6 to 5.28.0 in /docs (#35956)
     add 17299e469a chore(deps-dev): bump @eslint/js from 9.38.0 to 9.39.0 in /docs (#35954)
     add 405ed2e736 chore(deps-dev): bump eslint from 9.38.0 to 9.39.0 in /superset-websocket (#35953)
     add ae1f0bb107 chore(deps-dev): bump @types/node from 24.9.2 to 24.10.0 in /superset-websocket (#35952)
     add bae2c90bae docs: correct spelling typos in project codebase (#35935)
     add 27011d0239 fix(sqllab): align refresh buttons with select input fields (#35917)
     add 5224347c39 test(useThemeMenuItems): fix race conditions by awaiting all userEvent calls (#35918)
     add 1c1d1ddbec chore(deps): bump caniuse-lite from 1.0.30001752 to 1.0.30001753 in /docs (#35957)
     add b92b725fe2 chore(deps-dev): bump eslint from 9.38.0 to 9.39.0 in /docs (#35951)
     add 51b4df7a1f chore(deps-dev): bump globals from 16.4.0 to 16.5.0 in /docs (#35949)
     add 7cd04c088c chore(deps-dev): bump globals from 16.4.0 to 16.5.0 in /superset-websocket (#35948)
     add 46db8b7803 fix(dataset): sync columns checkbox not responding to clicks in virtual dataset modal (#35650)
     add 53687ae659 fix(dashboard): fix dataset search in filter config modal (#35488)
     add 0d70373d95 feat(npm): New `npm run clear-npm` script to nuke `node_modules` faster.  (#35923)
     add 813ab0b9dd Merge branch 'master' into msyavuz/fix/calculated-column-order

No new revisions were added by this update.

Summary of changes:
 .devcontainer/README.md                            |   11 -
 .devcontainer/default/devcontainer.json            |   19 +
 .devcontainer/devcontainer-base.json               |   39 +
 .devcontainer/setup-dev.sh                         |   84 +-
 .devcontainer/start-superset.sh                    |   83 +-
 .devcontainer/with-mcp/devcontainer.json           |   29 +
 .github/workflows/superset-frontend.yml            |    6 +-
 .gitignore                                         |    3 +
 .pre-commit-config.yaml                            |   29 +-
 Dockerfile                                         |    2 +
 LINTING_ARCHITECTURE.md                            |  121 ++
 UPDATING.md                                        |    2 +-
 docker-compose.yml                                 |    6 +-
 docker/README.md                                   |   18 +-
 docker/docker-bootstrap.sh                         |    4 +
 .../{config.json => config.example.json}           |    0
 docs/docs/configuration/alerts-reports.mdx         |   16 +
 docs/docs/configuration/databases.mdx              |   25 +-
 docs/docs/configuration/sql-templating.mdx         |   12 +-
 docs/docs/contributing/howtos.mdx                  |    4 +-
 docs/package.json                                  |   12 +-
 .../version-6.0.0/contributing/howtos.mdx          |    4 +-
 docs/yarn.lock                                     |  719 +++----
 pyproject.toml                                     |   15 +-
 requirements/base.txt                              |    7 +-
 requirements/development.in                        |    2 +-
 requirements/development.txt                       |   80 +-
 scripts/{eslint.sh => check-custom-rules.sh}       |   20 +-
 scripts/eslint.sh                                  |    2 +-
 scripts/{eslint.sh => oxlint.sh}                   |   23 +-
 superset-embedded-sdk/src/index.ts                 |    5 +-
 superset-frontend/.eslintrc.js                     |  403 ++--
 superset-frontend/.eslintrc.minimal.js             |  121 ++
 superset-frontend/LINTING.md                       |  165 ++
 .../e2e/dashboard/horizontalFilterBar.test.ts      |   69 +-
 .../cypress/e2e/dashboard/nativeFilters.test.ts    |   51 +
 superset-frontend/js_build.sh                      |    2 +-
 superset-frontend/oxlint.json                      |  284 +++
 superset-frontend/package-lock.json                |  221 +-
 superset-frontend/package.json                     |   18 +-
 .../superset-ui-chart-controls/src/types.ts        |    6 +-
 .../src/utils/getColorFormatters.ts                |   15 +-
 .../test/operators/renameOperator.test.ts          |   89 +-
 .../test/operators/sortOperator.test.ts            |   36 +-
 .../test/utils/getTemporalColumns.test.ts          |   14 +-
 .../superset-ui-core/src/chart/types/Base.ts       |   38 +
 .../components/ActionButton/ActionButton.test.tsx  |  108 +
 .../src/components/ActionButton/index.tsx          |   75 +
 .../src/components/AsyncAceEditor/index.tsx        |    4 +-
 .../superset-ui-core/src/components/Modal/types.ts |    4 +-
 .../src/components/Select/styles.tsx               |    1 +
 .../superset-ui-core/src/components/Tabs/Tabs.tsx  |    7 +-
 .../ThemedAgGridReact/ThemedAgGridReact.test.tsx   |   26 +
 .../src/components/ThemedAgGridReact/index.tsx     |    5 +-
 .../ThemedAgGridReact/setupAGGridModules.test.ts   |  128 ++
 .../ThemedAgGridReact/setupAGGridModules.ts        |   47 +-
 .../superset-ui-core/src/components/index.ts       |    2 +
 .../useTruncation/useChildElementTruncation.ts     |    2 +-
 .../packages/superset-ui-core/src/theme/Theme.tsx  |    2 +-
 .../packages/superset-ui-core/src/theme/types.ts   |    1 +
 .../src/time-comparison/customTimeRangeDecode.ts   |   12 +-
 .../packages/superset-ui-core/src/types/AgGrid.ts  |   82 +
 .../packages/superset-ui-core/src/types/index.ts   |    1 +
 .../packages/superset-ui-core/src/utils/dates.ts   |    2 -
 .../src/validator/validateMaxValue.ts              |    2 +-
 .../{themeDecorator.js => themeDecorator.jsx}      |    4 +-
 .../stories/plugins/plugin-chart-table/testData.ts |    9 +-
 .../stories/superset-ui-theme/Theme.stories.tsx    |  103 +-
 superset-frontend/playwright/README.md             |   23 +-
 .../src/layers/spatialUtils.ts                     |    2 +-
 .../src/utilities/tooltipUtils.tsx                 |    2 +-
 .../src/utils/crossFiltersDataMask.ts              |   18 +-
 .../src/AgGridTable/index.tsx                      |  124 +-
 .../src/AgGridTableChart.tsx                       |   17 +-
 .../plugin-chart-ag-grid-table/src/buildQuery.ts   |  203 +-
 .../src/images/thumbnail-dark.png                  |  Bin 16447 -> 52566 bytes
 .../src/images/thumbnail.png                       |  Bin 52566 -> 16447 bytes
 .../plugin-chart-ag-grid-table/src/index.ts        |    6 +
 .../src/renderers/NumericCellRenderer.tsx          |    8 +-
 .../src/stateConversion.ts                         |  234 +++
 .../src/transformProps.ts                          |   99 +-
 .../plugin-chart-ag-grid-table/src/types.ts        |    3 +
 .../src/utils/getCrossFilterDataMask.ts            |    2 +-
 .../test/buildQuery.test.ts                        |  478 +++++
 .../src/BigNumber/BigNumberTotal/transformProps.ts |    3 +-
 .../src/Gantt/controlPanel.tsx                     |   14 +-
 .../src/MixedTimeseries/EchartsMixedTimeseries.tsx |   26 +-
 .../src/Timeseries/transformProps.ts               |   20 +-
 .../plugin-chart-echarts/src/Treemap/constants.ts  |    1 -
 .../src/Waterfall/controlPanel.tsx                 |   12 +
 .../src/Waterfall/transformProps.ts                |   26 +-
 .../plugin-chart-echarts/src/Waterfall/types.ts    |    1 +
 .../plugin-chart-echarts/src/components/Echart.tsx |   11 +-
 .../test/Waterfall/transformProps.test.ts          |  208 +-
 .../plugins/plugin-chart-handlebars/README.md      |    3 -
 .../src/PivotTableChart.tsx                        |    2 +-
 .../src/plugin/transformProps.ts                   |    7 +-
 .../plugins/plugin-chart-table/src/TableChart.tsx  |   48 +-
 .../plugins/plugin-chart-table/src/buildQuery.ts   |    2 +-
 .../plugin-chart-table/src/controlPanel.tsx        |   25 +
 .../plugin-chart-table/src/transformProps.ts       |    3 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |  106 +
 superset-frontend/scripts/check-custom-rules.js    |  328 +++
 .../scripts/oxlint-metrics-uploader.js             |  245 +++
 superset-frontend/src/.eslintrc.json               |    2 +-
 .../src/SqlLab/components/QueryHistory/index.tsx   |   10 +-
 .../SqlLab/components/ResultSet/ResultSet.test.tsx |   55 +-
 .../src/SqlLab/components/ResultSet/index.tsx      |   11 +-
 .../SqlLab/components/SaveDatasetModal/index.tsx   |    2 +-
 .../src/SqlLab/components/SqlEditor/index.tsx      |    1 +
 .../components/TableElement/TableElement.test.tsx  |    2 +-
 .../components/TablePreview/TablePreview.test.tsx  |   14 +-
 .../src/SqlLab/components/TablePreview/index.tsx   |  106 +-
 superset-frontend/src/SqlLab/fixtures.ts           |    2 +-
 .../middlewares/persistSqlLabStateEnhancer.js      |    2 +-
 superset-frontend/src/components/Chart/Chart.tsx   |    2 +
 .../Chart/ChartContextMenu/ChartContextMenu.tsx    |    3 +-
 .../src/components/Chart/ChartRenderer.jsx         |    2 +
 .../Chart/DrillDetail/DrillDetailTableControls.tsx |    2 +-
 .../src/components/Chart/chartAction.js            |    1 -
 .../src/components/CrudThemeProvider.tsx           |    1 +
 .../src/components/DatabaseSelector/index.tsx      |   78 +-
 .../{ImportModal => DatabaseSelector}/styles.ts    |   14 +-
 .../DatasourceModal/DatasourceModal.test.jsx       |  169 +-
 .../Datasource/DatasourceModal/index.tsx           |   32 +-
 .../DatasetUsageTab/DatasetUsageTab.test.tsx       |  260 +++
 .../components/DatasetUsageTab/index.tsx           |   27 +-
 .../src/components/FacePile/FacePile.stories.tsx   |    2 +-
 .../src/components/FacePile/FacePile.test.tsx      |    2 +-
 .../src/components/FacePile/utils.tsx              |    2 +-
 .../src/components/GridTable/Header.test.tsx       |    2 +-
 .../src/components/ListView/ActionsBar.tsx         |   48 +-
 .../src/components/ListView/CardCollection.tsx     |    6 +-
 .../src/components/TableSelector/index.tsx         |   22 +-
 .../src/dashboard/actions/dashboardState.js        |   25 +-
 superset-frontend/src/dashboard/actions/hydrate.js |    3 +-
 .../src/dashboard/components/Header/types.ts       |    2 +-
 .../components/SliceHeaderControls/index.tsx       |   12 +-
 .../components/URLShortLinkButton/index.tsx        |   13 +-
 .../components/gridComponents/Chart/Chart.jsx      |   58 +-
 .../gridComponents/ChartHolder/ChartHolder.tsx     |    2 +-
 .../gridComponents/Markdown/Markdown.jsx           |    4 +
 .../gridComponents/Markdown/Markdown.test.jsx      |  416 ----
 .../gridComponents/Markdown/Markdown.test.tsx      |  436 ++++
 .../components/menu/ShareMenuItems/index.tsx       |   13 +-
 .../dashboard/components/menu/WithPopoverMenu.tsx  |   18 +-
 .../ChartCustomization/ChartCustomizationForm.tsx  |    6 +-
 .../FilterBar/FilterBarSettings/index.tsx          |    1 -
 .../FilterBar/FilterControls/FilterControls.tsx    |    6 -
 .../FiltersConfigForm/DatasetSelect.test.tsx       |  203 ++
 .../FiltersConfigForm/DatasetSelect.tsx            |    4 +
 .../FiltersConfigForm/DependencyList.tsx           |   24 +-
 .../FiltersConfigForm/FiltersConfigForm.tsx        |    8 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |   18 +-
 .../FiltersConfigModal/FiltersConfigModal.tsx      |   41 +-
 .../src/dashboard/containers/DashboardPage.tsx     |    7 +-
 .../src/dashboard/reducers/dashboardInfo.js        |   36 +-
 .../src/dashboard/reducers/dashboardState.js       |   34 +
 .../src/dashboard/reducers/dashboardState.test.ts  |   10 +-
 superset-frontend/src/dashboard/types.ts           |    2 +
 .../dashboard/types/chartState.ts}                 |   32 +-
 .../src/dashboard/util/chartStateConverter.ts      |  165 ++
 .../src/dashboard/util/permissionUtils.test.ts     |    2 +-
 superset-frontend/src/embedded/api.tsx             |   18 +-
 superset-frontend/src/embedded/index.tsx           |    1 +
 .../explore/components/ControlPanelsContainer.tsx  |   14 +-
 .../explore/components/PropertiesModal/index.tsx   |    2 +-
 .../AnnotationLayerControl/AnnotationLayer.jsx     |    6 +-
 .../ColumnConfigControl/ColumnConfigItem.tsx       |    2 +-
 .../components/controls/ComparisonRangeLabel.tsx   |    3 +-
 .../ConditionalFormattingControl.tsx               |    2 +
 .../FormattingPopover.tsx                          |    2 +
 .../FormattingPopoverContent.test.tsx              |   41 +
 .../FormattingPopoverContent.tsx                   |   93 +-
 .../controls/ConditionalFormattingControl/types.ts |    9 +
 .../controls/ContourControl/ContourOption.tsx      |    2 +-
 .../controls/DatasourceControl/index.jsx           |    2 +-
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |  752 +++----
 .../index.tsx                                      |   59 +-
 .../useAdvancedDataTypes.ts                        |   33 +-
 .../AdhocFilterEditPopoverSqlTabContent/index.tsx  |    4 +-
 .../LayerConfigsPopoverContent.tsx                 |   12 +-
 .../controls/SelectAsyncControl/index.tsx          |    2 +-
 .../components/controls/TextAreaControl.jsx        |    5 +-
 .../explore/components/controls/ViewQuery.test.tsx |   26 +
 .../src/explore/components/controls/ViewQuery.tsx  |    3 +-
 .../components/controls/ZoomConfigControl/types.ts |    4 +
 .../controls/ZoomConfigControl/zoomUtil.ts         |   14 +-
 .../src/explore/reducers/exploreReducer.js         |    2 +-
 superset-frontend/src/features/alerts/types.ts     |    2 +-
 .../src/features/cssTemplates/CssTemplateModal.tsx |    2 +-
 .../databases/DatabaseModal/ExtraOptions.tsx       |   24 +-
 .../databases/DatabaseModal/index.test.tsx         |   50 +
 .../src/features/databases/DatabaseModal/index.tsx |   43 +-
 .../src/features/home/ActivityTable.tsx            |    4 +-
 .../src/features/home/ChartTable.test.tsx          |    2 +-
 superset-frontend/src/features/home/Menu.test.tsx  |    2 +-
 .../src/features/home/RightMenu.test.tsx           |   44 +-
 superset-frontend/src/features/home/RightMenu.tsx  |    1 -
 .../src/features/themes/ThemeModal.tsx             |    2 +-
 superset-frontend/src/features/users/utils.ts      |    2 +-
 .../components/Select/SelectFilterPlugin.tsx       |    6 +-
 .../src/hooks/useThemeMenuItems.test.tsx           |   40 +-
 .../pages/AlertReportList/AlertReportList.test.jsx |    2 +-
 .../AnnotationLayerList.test.jsx                   |    2 +-
 .../src/pages/ChartCreation/index.tsx              |    5 +-
 .../pages/CssTemplateList/CssTemplateList.test.jsx |    2 +-
 .../src/pages/DashboardList/DashboardList.test.jsx |    2 +-
 superset-frontend/src/pages/DatabaseList/index.tsx |    2 +-
 .../src/pages/DatasetCreation/index.tsx            |    2 +-
 .../ExecutionLogList/ExecutionLogList.test.tsx     |    2 +-
 superset-frontend/src/pages/Home/Home.test.tsx     |   10 +-
 superset-frontend/src/pages/Home/index.tsx         |    2 +-
 .../src/pages/RolesList/RolesList.test.tsx         |    6 +-
 .../pages/SavedQueryList/SavedQueryList.test.tsx   |    2 +-
 .../UserRegistrations/UserRegistrations.test.tsx   |    2 +-
 .../src/pages/UsersList/UsersList.test.tsx         |    4 +-
 superset-frontend/src/preamble.ts                  |    1 -
 superset-frontend/src/setup/setupPlugins.ts        |    5 +
 superset-frontend/src/theme/ThemeController.ts     |   30 +-
 .../{downloadAsImage.ts => downloadAsImage.tsx}    |   23 +-
 superset-frontend/src/utils/urlUtils.ts            |   22 +-
 superset-frontend/src/views/types.ts               |    2 +-
 .../src/visualizations/TimeTable/constants.ts      |   15 +-
 superset-frontend/tsconfig.json                    |   10 +-
 superset-frontend/webpack.config.js                |    4 +-
 superset-websocket/package-lock.json               |  114 +-
 superset-websocket/package.json                    |    6 +-
 superset/charts/schemas.py                         |   11 +
 superset/{utils/pdf.py => cli/mcp.py}              |   46 +-
 superset/commands/database/test_connection.py      |    2 +-
 superset/commands/explore/form_data/create.py      |    6 +-
 superset/commands/report/execute.py                |    1 +
 superset/config.py                                 |    5 +
 superset/connectors/sqla/models.py                 |   10 +
 superset/dashboards/api.py                         |   22 +
 superset/dashboards/permalink/schemas.py           |   10 +
 superset/dashboards/permalink/types.py             |    3 +-
 superset/db_engine_specs/README.md                 |  566 +++++-
 superset/db_engine_specs/db2.py                    |    6 +-
 superset/db_engine_specs/lib.py                    |  374 +++-
 superset/mcp_service/CLAUDE.md                     |  523 +++++
 superset/mcp_service/README.md                     |  236 +++
 .../__init__.py}                                   |   31 +-
 superset/mcp_service/__main__.py                   |  132 ++
 superset/mcp_service/app.py                        |  347 ++++
 superset/mcp_service/auth.py                       |  179 ++
 superset/mcp_service/bin/superset-mcp.js           |  282 +++
 superset/mcp_service/chart/chart_utils.py          |  484 +++++
 superset/mcp_service/chart/preview_utils.py        |  561 +++++
 .../mcp_service/chart/prompts/__init__.py          |    7 +-
 .../chart/prompts/create_chart_guided.py           |  195 ++
 .../mcp_service/chart/resources/__init__.py        |    7 +-
 .../mcp_service/chart/resources/chart_configs.py   |  362 ++++
 superset/mcp_service/chart/schemas.py              | 1162 +++++++++++
 .../{views => mcp_service/chart/tool}/__init__.py  |   40 +-
 superset/mcp_service/chart/tool/generate_chart.py  |  462 +++++
 .../chart/tool/get_chart_available_filters.py}     |   45 +-
 superset/mcp_service/chart/tool/get_chart_data.py  |  656 ++++++
 superset/mcp_service/chart/tool/get_chart_info.py  |   81 +
 .../mcp_service/chart/tool/get_chart_preview.py    | 2082 +++++++++++++++++++
 superset/mcp_service/chart/tool/list_charts.py     |  135 ++
 superset/mcp_service/chart/tool/update_chart.py    |  224 ++
 .../mcp_service/chart/tool/update_chart_preview.py |  168 ++
 .../chart/validation/__init__.py}                  |    9 +-
 .../chart/validation/dataset_validator.py          |  329 +++
 superset/mcp_service/chart/validation/pipeline.py  |  325 +++
 .../chart/validation/runtime/__init__.py           |  185 ++
 .../validation/runtime/cardinality_validator.py    |  195 ++
 .../validation/runtime/chart_type_suggester.py     |  437 ++++
 .../chart/validation/runtime/format_validator.py   |  225 ++
 .../chart/validation/schema_validator.py           |  307 +++
 .../mcp_service/commands}/__init__.py              |    0
 .../commands/create_form_data.py}                  |   23 +-
 .../security.py => mcp_service/common/__init__.py} |   11 +-
 superset/mcp_service/common/cache_schemas.py       |  143 ++
 superset/mcp_service/common/error_schemas.py       |  103 +
 .../mcp_service/dashboard/prompts/__init__.py      |    7 +-
 .../mcp_service/dashboard/resources/__init__.py    |    7 +-
 superset/mcp_service/dashboard/schemas.py          |  470 +++++
 .../dashboard/tool}/__init__.py                    |   34 +-
 .../tool/add_chart_to_existing_dashboard.py        |  282 +++
 .../dashboard/tool/generate_dashboard.py           |  241 +++
 .../tool/get_dashboard_available_filters.py}       |   39 +-
 .../dashboard/tool/get_dashboard_info.py           |  101 +
 .../mcp_service/dashboard/tool/list_dashboards.py  |   99 +
 .../mcp_service/dataset/prompts/__init__.py        |    7 +-
 .../mcp_service/dataset/resources/__init__.py      |    7 +-
 superset/mcp_service/dataset/schemas.py            |  349 ++++
 .../dataset/tool}/__init__.py                      |   13 +-
 .../dataset/tool/get_dataset_available_filters.py} |   39 +-
 .../mcp_service/dataset/tool/get_dataset_info.py   |  111 +
 superset/mcp_service/dataset/tool/list_datasets.py |  149 ++
 .../mcp_service/explore/__init__.py                |    3 +-
 .../explore/tool/__init__.py}                      |   14 +-
 .../explore/tool/generate_explore_link.py          |  111 +
 superset/mcp_service/flask_singleton.py            |   66 +
 superset/mcp_service/index.js                      |   56 +
 superset/mcp_service/mcp_config.py                 |  202 ++
 superset/mcp_service/mcp_core.py                   |  504 +++++
 superset/mcp_service/middleware.py                 |  757 +++++++
 superset/mcp_service/package.json                  |   35 +
 .../tsc.sh => superset/mcp_service/run_proxy.sh    |   28 +-
 .../{views => mcp_service/screenshot}/__init__.py  |   37 +-
 .../mcp_service/screenshot/pooled_screenshot.py    |  483 +++++
 .../mcp_service/screenshot/webdriver_config.py     |  139 ++
 superset/mcp_service/screenshot/webdriver_pool.py  |  433 ++++
 superset/mcp_service/server.py                     |  103 +
 superset/mcp_service/simple_proxy.py               |   84 +
 .../mcp_service/sql_lab}/__init__.py               |    0
 superset/mcp_service/sql_lab/execute_sql_core.py   |  221 ++
 superset/mcp_service/sql_lab/schemas.py            |  109 +
 superset/mcp_service/sql_lab/sql_lab_utils.py      |  243 +++
 .../sql_lab/tool/__init__.py}                      |   25 +-
 superset/mcp_service/sql_lab/tool/execute_sql.py   |   94 +
 .../sql_lab/tool/open_sql_lab_with_context.py      |  118 ++
 .../mcp_service/system/prompts/__init__.py         |    7 +-
 superset/mcp_service/system/prompts/quickstart.py  |   94 +
 .../mcp_service/system/resources/__init__.py       |    7 +-
 .../system/resources/instance_metadata.py          |  107 +
 superset/mcp_service/system/schemas.py             |  158 ++
 .../system/tool/__init__.py}                       |   11 +-
 .../system/tool/get_superset_instance_info.py      |  268 +++
 superset/mcp_service/system/tool/health_check.py   |   66 +
 .../utils.py => mcp_service/utils/__init__.py}     |   14 +-
 superset/mcp_service/utils/cache_utils.py          |  143 ++
 superset/mcp_service/utils/error_builder.py        |  369 ++++
 superset/mcp_service/utils/permissions_utils.py    |  313 +++
 superset/mcp_service/utils/retry_utils.py          |  341 ++++
 superset/mcp_service/utils/url_utils.py            |  128 ++
 superset/models/helpers.py                         |   51 +-
 superset/reports/notifications/email.py            |   10 +-
 superset/result_set.py                             |    2 +-
 superset/security/guest_token.py                   |    1 +
 superset/tasks/slack.py                            |   21 +-
 superset/translations/ru/LC_MESSAGES/messages.po   | 2150 ++++++++++++--------
 superset/utils/core.py                             |    1 +
 superset/utils/log.py                              |    2 +-
 superset/utils/slack.py                            |   63 +-
 superset/views/core.py                             |    2 +-
 tests/integration_tests/charts/commands_tests.py   |    3 +
 .../commands/execute_dashboard_report_tests.py     |    2 +-
 tests/integration_tests/sqla_models_tests.py       |  130 ++
 .../unit_tests/commands/explore}/__init__.py       |    0
 .../commands/explore/form_data}/__init__.py        |    0
 .../commands/explore/form_data/test_create.py      |   85 +
 tests/unit_tests/commands/report/execute_test.py   |    6 +
 tests/unit_tests/db_engine_specs/test_db2.py       |   70 +
 .../unit_tests/mcp_service/chart}/__init__.py      |    0
 .../mcp_service/chart/test_chart_schemas.py        |  160 ++
 .../mcp_service/chart/test_chart_utils.py          |  465 +++++
 .../unit_tests/mcp_service/chart/tool}/__init__.py |    0
 .../mcp_service/chart/tool/test_generate_chart.py  |  268 +++
 .../chart/tool/test_get_chart_preview.py           |  290 +++
 .../mcp_service/chart/tool/test_list_charts.py     |  172 ++
 .../mcp_service/chart/tool/test_update_chart.py    |  385 ++++
 .../chart/tool/test_update_chart_preview.py        |  474 +++++
 .../unit_tests/mcp_service/common}/__init__.py     |    0
 .../unit_tests/mcp_service/conftest.py             |    9 +-
 .../unit_tests/mcp_service/dashboard}/__init__.py  |    0
 .../mcp_service/dashboard/tool}/__init__.py        |    0
 .../dashboard/tool/test_dashboard_generation.py    |  450 ++++
 .../dashboard/tool/test_dashboard_tools.py         |  573 ++++++
 .../unit_tests/mcp_service/dataset}/__init__.py    |    0
 .../mcp_service/dataset/tool}/__init__.py          |    0
 .../mcp_service/dataset/tool/test_dataset_tools.py | 1231 +++++++++++
 .../unit_tests/mcp_service/explore}/__init__.py    |    0
 .../mcp_service/explore/tool}/__init__.py          |    0
 .../explore/tool/test_generate_explore_link.py     |  580 ++++++
 .../unit_tests/mcp_service/sql_lab}/__init__.py    |    0
 .../mcp_service/sql_lab/test_execute_sql_helper.py |   64 +
 .../mcp_service/sql_lab/tool}/__init__.py          |    0
 .../mcp_service/sql_lab/tool/test_execute_sql.py   |  497 +++++
 .../mcp_service/system/tool}/__init__.py           |    0
 .../mcp_service/system/tool/test_mcp_core.py       |  204 ++
 .../unit_tests/mcp_service/utils}/__init__.py      |    0
 .../reports/notifications/email_tests.py           |    2 +
 .../reports/notifications/slack_tests.py           |    1 +
 tests/unit_tests/utils/date_parser_tests.py        |   21 +-
 tests/unit_tests/utils/screenshot_test.py          |    2 +-
 380 files changed, 34125 insertions(+), 3891 deletions(-)
 create mode 100644 .devcontainer/default/devcontainer.json
 create mode 100644 .devcontainer/devcontainer-base.json
 create mode 100644 .devcontainer/with-mcp/devcontainer.json
 create mode 100644 LINTING_ARCHITECTURE.md
 copy docker/superset-websocket/{config.json => config.example.json} (100%)
 copy scripts/{eslint.sh => check-custom-rules.sh} (66%)
 copy scripts/{eslint.sh => oxlint.sh} (61%)
 create mode 100644 superset-frontend/.eslintrc.minimal.js
 create mode 100644 superset-frontend/LINTING.md
 create mode 100644 superset-frontend/oxlint.json
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ActionButton/ActionButton.test.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ActionButton/index.tsx
 create mode 100644 superset-frontend/packages/superset-ui-core/src/components/ThemedAgGridReact/setupAGGridModules.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/types/AgGrid.ts
 rename superset-frontend/packages/superset-ui-demo/.storybook/{themeDecorator.js => themeDecorator.jsx} (68%)
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/src/stateConversion.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-ag-grid-table/test/buildQuery.test.ts
 create mode 100755 superset-frontend/scripts/check-custom-rules.js
 create mode 100644 superset-frontend/scripts/oxlint-metrics-uploader.js
 copy superset-frontend/src/components/{ImportModal => DatabaseSelector}/styles.ts (74%)
 delete mode 100644 superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.jsx
 create mode 100644 superset-frontend/src/dashboard/components/gridComponents/Markdown/Markdown.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/DatasetSelect.test.tsx
 copy superset-frontend/{plugins/plugin-chart-table/test/testHelpers.tsx => src/dashboard/types/chartState.ts} (67%)
 create mode 100644 superset-frontend/src/dashboard/util/chartStateConverter.ts
 rename superset-frontend/src/utils/{downloadAsImage.ts => downloadAsImage.tsx} (94%)
 copy superset/{utils/pdf.py => cli/mcp.py} (50%)
 create mode 100644 superset/mcp_service/CLAUDE.md
 create mode 100644 superset/mcp_service/README.md
 copy superset/{migrations/versions/2024-01-18_12-12_15a2c68a2e6b_merging_two_heads.py => mcp_service/__init__.py} (60%)
 create mode 100644 superset/mcp_service/__main__.py
 create mode 100644 superset/mcp_service/app.py
 create mode 100644 superset/mcp_service/auth.py
 create mode 100755 superset/mcp_service/bin/superset-mcp.js
 create mode 100644 superset/mcp_service/chart/chart_utils.py
 create mode 100644 superset/mcp_service/chart/preview_utils.py
 copy docs/static/.asf.yaml => superset/mcp_service/chart/prompts/__init__.py (84%)
 create mode 100644 superset/mcp_service/chart/prompts/create_chart_guided.py
 copy docs/static/.asf.yaml => superset/mcp_service/chart/resources/__init__.py (84%)
 create mode 100644 superset/mcp_service/chart/resources/chart_configs.py
 create mode 100644 superset/mcp_service/chart/schemas.py
 copy superset/{views => mcp_service/chart/tool}/__init__.py (58%)
 create mode 100644 superset/mcp_service/chart/tool/generate_chart.py
 copy superset/{commands/temporary_cache/delete.py => mcp_service/chart/tool/get_chart_available_filters.py} (51%)
 create mode 100644 superset/mcp_service/chart/tool/get_chart_data.py
 create mode 100644 superset/mcp_service/chart/tool/get_chart_info.py
 create mode 100644 superset/mcp_service/chart/tool/get_chart_preview.py
 create mode 100644 superset/mcp_service/chart/tool/list_charts.py
 create mode 100644 superset/mcp_service/chart/tool/update_chart.py
 create mode 100644 superset/mcp_service/chart/tool/update_chart_preview.py
 copy superset/{daos/security.py => mcp_service/chart/validation/__init__.py} (76%)
 create mode 100644 superset/mcp_service/chart/validation/dataset_validator.py
 create mode 100644 superset/mcp_service/chart/validation/pipeline.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/__init__.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/cardinality_validator.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/chart_type_suggester.py
 create mode 100644 superset/mcp_service/chart/validation/runtime/format_validator.py
 create mode 100644 superset/mcp_service/chart/validation/schema_validator.py
 copy {superset-core/src/superset_core => superset/mcp_service/commands}/__init__.py (100%)
 copy superset/{databases/types.py => mcp_service/commands/create_form_data.py} (62%)
 copy superset/{daos/security.py => mcp_service/common/__init__.py} (82%)
 create mode 100644 superset/mcp_service/common/cache_schemas.py
 create mode 100644 superset/mcp_service/common/error_schemas.py
 copy docs/static/.asf.yaml => superset/mcp_service/dashboard/prompts/__init__.py (84%)
 copy docs/static/.asf.yaml => superset/mcp_service/dashboard/resources/__init__.py (84%)
 create mode 100644 superset/mcp_service/dashboard/schemas.py
 copy superset/{views => mcp_service/dashboard/tool}/__init__.py (63%)
 create mode 100644 superset/mcp_service/dashboard/tool/add_chart_to_existing_dashboard.py
 create mode 100644 superset/mcp_service/dashboard/tool/generate_dashboard.py
 copy superset/{commands/chart/data/create_async_job_command.py => mcp_service/dashboard/tool/get_dashboard_available_filters.py} (50%)
 create mode 100644 superset/mcp_service/dashboard/tool/get_dashboard_info.py
 create mode 100644 superset/mcp_service/dashboard/tool/list_dashboards.py
 copy docs/static/.asf.yaml => superset/mcp_service/dataset/prompts/__init__.py (85%)
 copy docs/static/.asf.yaml => superset/mcp_service/dataset/resources/__init__.py (84%)
 create mode 100644 superset/mcp_service/dataset/schemas.py
 copy superset/{migrations => mcp_service/dataset/tool}/__init__.py (75%)
 copy superset/{commands/chart/data/create_async_job_command.py => mcp_service/dataset/tool/get_dataset_available_filters.py} (51%)
 create mode 100644 superset/mcp_service/dataset/tool/get_dataset_info.py
 create mode 100644 superset/mcp_service/dataset/tool/list_datasets.py
 copy superset-extensions-cli/src/superset_extensions_cli/constants.py => superset/mcp_service/explore/__init__.py (95%)
 copy superset/{temporary_cache/utils.py => mcp_service/explore/tool/__init__.py} (76%)
 create mode 100644 superset/mcp_service/explore/tool/generate_explore_link.py
 create mode 100644 superset/mcp_service/flask_singleton.py
 create mode 100644 superset/mcp_service/index.js
 create mode 100644 superset/mcp_service/mcp_config.py
 create mode 100644 superset/mcp_service/mcp_core.py
 create mode 100644 superset/mcp_service/middleware.py
 create mode 100644 superset/mcp_service/package.json
 copy superset-frontend/scripts/tsc.sh => superset/mcp_service/run_proxy.sh (51%)
 mode change 100755 => 100644
 copy superset/{views => mcp_service/screenshot}/__init__.py (64%)
 create mode 100644 superset/mcp_service/screenshot/pooled_screenshot.py
 create mode 100644 superset/mcp_service/screenshot/webdriver_config.py
 create mode 100644 superset/mcp_service/screenshot/webdriver_pool.py
 create mode 100644 superset/mcp_service/server.py
 create mode 100644 superset/mcp_service/simple_proxy.py
 copy {superset-core/src/superset_core => superset/mcp_service/sql_lab}/__init__.py (100%)
 create mode 100644 superset/mcp_service/sql_lab/execute_sql_core.py
 create mode 100644 superset/mcp_service/sql_lab/schemas.py
 create mode 100644 superset/mcp_service/sql_lab/sql_lab_utils.py
 copy superset/{migrations/versions/2022-04-14_17-21_cecc6bf46990_rm_time_range_endpoints_2.py => mcp_service/sql_lab/tool/__init__.py} (74%)
 create mode 100644 superset/mcp_service/sql_lab/tool/execute_sql.py
 create mode 100644 superset/mcp_service/sql_lab/tool/open_sql_lab_with_context.py
 copy docs/static/.asf.yaml => superset/mcp_service/system/prompts/__init__.py (85%)
 create mode 100644 superset/mcp_service/system/prompts/quickstart.py
 copy docs/static/.asf.yaml => superset/mcp_service/system/resources/__init__.py (84%)
 create mode 100644 superset/mcp_service/system/resources/instance_metadata.py
 create mode 100644 superset/mcp_service/system/schemas.py
 copy superset/{daos/security.py => mcp_service/system/tool/__init__.py} (78%)
 create mode 100644 superset/mcp_service/system/tool/get_superset_instance_info.py
 create mode 100644 superset/mcp_service/system/tool/health_check.py
 copy superset/{temporary_cache/utils.py => mcp_service/utils/__init__.py} (77%)
 create mode 100644 superset/mcp_service/utils/cache_utils.py
 create mode 100644 superset/mcp_service/utils/error_builder.py
 create mode 100644 superset/mcp_service/utils/permissions_utils.py
 create mode 100644 superset/mcp_service/utils/retry_utils.py
 create mode 100644 superset/mcp_service/utils/url_utils.py
 copy {superset-core/src/superset_core => tests/unit_tests/commands/explore}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/commands/explore/form_data}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/explore/form_data/test_create.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/chart}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_schemas.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_utils.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/chart/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_generate_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_get_chart_preview.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_list_charts.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_update_chart.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_update_chart_preview.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/common}/__init__.py (100%)
 copy docs/static/.asf.yaml => tests/unit_tests/mcp_service/conftest.py (85%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dashboard}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dashboard/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_dashboard_generation.py
 create mode 100644 tests/unit_tests/mcp_service/dashboard/tool/test_dashboard_tools.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dataset}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/dataset/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_dataset_tools.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/explore}/__init__.py (100%)
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/explore/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/explore/tool/test_generate_explore_link.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/sql_lab}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/sql_lab/test_execute_sql_helper.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/sql_lab/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/sql_lab/tool/test_execute_sql.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/system/tool}/__init__.py (100%)
 create mode 100644 tests/unit_tests/mcp_service/system/tool/test_mcp_core.py
 copy {superset-core/src/superset_core => tests/unit_tests/mcp_service/utils}/__init__.py (100%)