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%)