This is an automated email from the ASF dual-hosted git repository.
enzomartellucci pushed a change to branch
enxdev/feat/enhance-database-modal-validation
in repository https://gitbox.apache.org/repos/asf/superset.git
from a44b8a6cf0 feat(database): add SSH tunnel validation to database
parameters endpoint
add c31224c891 fix(TableChart): render cell bars for columns with NULL
values (#36819)
add 12aa425049 fix(logout): clicking logout displays an error
notification "invalid username or password" (#36490)
add e5489bd30f fix(SavedQueries): unify query card actions styling across
all home page cards (#36671)
add 1b1be96274 chore(deps-dev): bump globals from 16.5.0 to 17.0.0 in
/docs (#36886)
add dd2eb6293d chore(deps-dev): bump globals from 16.5.0 to 17.0.0 in
/superset-websocket (#36885)
add 4451e8db05 chore(deps): bump qs from 6.14.0 to 6.14.1 in /docs (#36884)
add aed95453b3 chore(deps): bump qs from 6.14.0 to 6.14.1 in
/superset-websocket/utils/client-ws-app (#36883)
add d07a452e9b fix(RightMenu): fix inconsistent icon alignment in
RightMenu items (#36532)
add 52af489d8f docs: Add Rogow to INTHEWILD.yaml (#36879)
add 1334040fd6 chore(docs): Include VLMedia logo to intothewild (#36868)
add fdef8fa50a chore(deps-dev): bump @typescript-eslint/parser from 8.50.1
to 8.51.0 in /docs (#36866)
add 53fa65fe67 chore(deps): bump caniuse-lite from 1.0.30001761 to
1.0.30001762 in /docs (#36865)
add ac27c0aa3c chore(deps-dev): bump @typescript-eslint/parser from 8.50.1
to 8.51.0 in /superset-websocket (#36861)
add 2080633e57 other: resolve frontend dep vulns (#36820)
add 740ddc03e2 fix(plugin-chart-table): remove column misalignment when no
scrollbars are present (#36891)
add c76ddcbbec fix(deck.gl): Fix Scatterplot chart error when using fixed
point size (#36890)
add 61986100bd chore(deps): bump hot-shots from 12.0.0 to 12.1.0 in
/superset-websocket (#36899)
add dcc556a9a7 chore(CHANGELOG): add link to 6.0.0 CHANGELOG (#36832)
add 5909e90081 feat(security): add built-in Public role for anonymous
dashboard access (#36548)
add 12a266fd2f fix(trino): update query progress using cursor stats
(#36872)
add cedc35e39f fix(SQLLab): remove error icon displayed when writing Jinja
SQL even when the script is correct (#36422)
add f9fde87e85 feat(native filters): add filter type icons in config modal
(#36905)
add 1949d1bb96 feat(dev): add make ports and make open commands (#36906)
add aaa174f820 docs: add Netlify configuration for PR deploy previews
(#36908)
add 9aff89c1b4 chore(frontend): migrate SqlLab and explore JS/JSX files to
TypeScript (#36760)
add 9968393e4c feat(ci): add container security scan for image built for
commits merged to mainline (#36604)
add d7d94ba640 fix(ag-grid): Ag Grid Date Filter timezone correction
(#36270)
add 861e5cd013 fix(security): enforce datasource access control in
get_samples() (#36550)
add 5edaed2e5b fix(alerts): wrong alert trigger with custom query (#35871)
add 7a5441bc7a refactor: Remove unimplemented APIs from
@apache-superset/core (#36952)
add 0c1edd4568 chore: Bump @apache-superset/core (0.0.1-rc9) (#36953)
add dfdf8e75d8 fix: handle undefined template variables safely in query
rendering. (#35009)
add f9be2b816a feat(docs): add resources admonition with external links
(#36761)
add 64ee48f147 fix(mcp): use chart.query_context for get_chart_data like
the API does (#36937)
add 6f67b05375 chore: Update INTHEWILD.yaml for PlaidCloud (#36741)
add 03caa7b337 docs(INTHEWILD): add Cirrus Assessment (#36871)
add 84279acd2f feat(mcp): add unified get_schema tool for schema discovery
(#36458)
add a6d85dccf8 fix: streaming export losing g context (#36950)
add 16e046b5d9 docs(INTHEWILD): add HOLLYLAND猛玛 (#36968)
add 70b2e520b2 chore(frontend): Update $schema path in oxlint.json (#36859)
add 337eb3baf5 fix(dashboard): prevent PublishedLabel overlap in
non-English languages (#36877)
add 047360641a feat(mcp): change save_chart default to False for
preview-first workflow (#36935)
add 4249b8ee6a chore(deps-dev): bump
eslint-plugin-react-you-might-not-need-an-effect from 0.5.1 to 0.8.3 in
/superset-frontend (#36972)
add 3ac76e116d chore: Update INTHEWILD.yaml (#36733)
add e9b91f6ec9 chore(deps): bump ioredis from 5.8.2 to 5.9.0 in
/superset-websocket (#36920)
add 77ebc5ac10 chore(deps-dev): bump @typescript-eslint/parser from 8.51.0
to 8.52.0 in /docs (#36918)
add dd7f0c4224 chore(deps-dev): bump typescript-eslint from 8.50.1 to
8.52.0 in /superset-websocket (#36916)
add af185ad8c9 chore(deps-dev): bump jsdom from 27.0.0 to 27.4.0 in
/superset-frontend (#36922)
add 4fc8157d6f chore(deps-dev): bump source-map from 0.7.4 to 0.7.6 in
/superset-frontend (#36653)
add 85cf46dc1c fix(mcp): remove unused ctx parameter from health_check
tool (#36992)
add 734d64081f chore(deps): bump caniuse-lite from 1.0.30001762 to
1.0.30001763 in /docs (#36970)
add ffbf81e952 chore(deps): bump ws from 8.18.3 to 8.19.0 in
/superset-websocket (#36919)
add 07aa7622f7 chore(deps): bump react-resizable from 3.0.5 to 3.1.3 in
/superset-frontend (#36911)
add 57f8f50292 chore(deps-dev): bump @typescript-eslint/eslint-plugin from
8.50.1 to 8.51.0 in /docs (#36898)
add 413dfc98ff chore(deps): bump @storybook/addon-docs from 8.6.14 to
8.6.15 in /docs (#36824)
add f48322c17d chore: bump flask-cors to 6.0.2 (#36640)
add ea90d1f141 refactor(db-engine-specs): use standard OAuth 2.0 params in
base class (#37010)
add f895250cf9 fix(mypy): add overrides for superset-core local dev
consistency (#36907)
add 14c0cad0ba chore: remove deprecated function (#37021)
add 1e8d648f47 feat: Chart query last run timestamp (#36934)
add 53dddf4db2 feat(embedded-sdk): Add resolvePermalinkUrl callback for
custom permalink URLs (#36924)
add ecefba5bf7 fix(mcp): resolve startup failures from circular DAO
imports (#37023)
add 1cface15e6 docs: Update INTHEWILD.yaml (#36888)
add 0294c30c9e fix(Tabs): prevent infinite rerenders with nested tabs
(#37018)
add e9b6791ffb refactor: move translations and logging to new core (#36929)
add 4f5789abfe fix(reports): Use authenticated user as recipient for
chart/dashboard reports (#36981)
add d914b35cc0 fix(translations): post merge fix for new translations
addded (#37041)
add 459b4cb23d perf(date_parser): bound regex quantifiers for
deterministic parsing performance (#36983)
add 4f444ae1d2 feat(ag-grid): Server Side Filtering for Column Level
Filters (#35683)
add 62c7b48b5c fix(extensions-cli): fix dev mode error (#37024)
add 169d27c9e9 fix(extensions): gracefully handle dist directory
rebuilding (#37025)
add 911d72c957 fix(models): prevent SQLAlchemy and_() deprecation warning
(#37020)
add d8f7ae83ee fix(sqlglot): use Athena dialect for awsathena parsing
(#36747)
add dcdcf88969 chore(chart): rollback legend top alignment to the right
(#36994)
add f4772a9383 chore(deps-dev): bump webpack-bundle-analyzer from 5.1.0 to
5.1.1 in /superset-frontend (#37006)
add 2a38ce001e fix(deckgl): remove visibility condition in deckgl stroke
color (#37029)
add 005b2af985 chore(deps-dev): bump @types/lodash from 4.17.21 to 4.17.23
in /superset-websocket (#37045)
add 4fe2085596 chore(deps): bump caniuse-lite from 1.0.30001763 to
1.0.30001764 in /docs (#37049)
add fac5d2bcb6 feat(db): add dynamic schema support for athena (#36003)
add 22cfc4536b fix(export): URL prefix handling for subdirectory
deployments (#36771)
add 72c69e2ca6 chore(deps): bump fs-extra from 11.3.0 to 11.3.3 in
/superset-frontend (#37001)
add d56bc5826f chore(deps-dev): bump @applitools/eyes-storybook from
3.60.0 to 3.63.4 in /superset-frontend (#37003)
add adb575be2f chore(deps-dev): bump typescript-eslint from 8.50.1 to
8.52.0 in /docs (#36913)
add fa3d4a75ca chore(deps): bump actions/download-artifact from 6 to 7
(#36699)
add 7503ee4e09 feat(sqllab): primary/secondary action extensions (#36644)
add 462fffc23c fix(docs): Update references from LLMS.md to AGENTS.md
(#37060)
add 481bfa0f68 feat(starrocks): add catalog support for StarRocks database
connections (#37026)
add 5f58241795 fix(explore): dispatch NumberControl value on blur to allow
field clearing (#37007)
add ad3812edd7 fix(table): keep d3-format semantics when applying currency
formatting (#37039)
add 936e37bd02 chore(deps-dev): bump @babel/node from 7.28.0 to 7.28.6 in
/superset-frontend (#37089)
add e17bfae6bd chore(deps-dev): bump webpack from 5.103.0 to 5.104.1 in
/superset-frontend (#37083)
add fc67569cd4 fix(datasets): ui bug fixes (#37058)
add 2df224370e Merge branch 'master' into
enxdev/feat/enhance-database-modal-validation
No new revisions were added by this update.
Summary of changes:
.github/workflows/docker.yml | 17 +
.github/workflows/superset-frontend.yml | 2 +-
CHANGELOG.md | 1 +
Dockerfile | 2 +-
Makefile | 8 +-
RESOURCES/INTHEWILD.yaml | 36 +-
RESOURCES/STANDARD_ROLES.md | 379 ++++----
.../contributing/development-setup.md | 2 +
docs/developer_portal/extensions/architecture.md | 2 -
docs/developer_portal/extensions/development.md | 4 -
docs/docs/api.mdx | 5 +
docs/docs/configuration/alerts-reports.mdx | 5 +
docs/docs/configuration/async-queries-celery.mdx | 4 +
docs/docs/configuration/cache.mdx | 5 +
docs/docs/configuration/configuring-superset.mdx | 4 +
docs/docs/configuration/databases.mdx | 128 ++-
docs/docs/configuration/networking-settings.mdx | 16 +-
docs/docs/configuration/sql-templating.mdx | 4 +
docs/docs/configuration/theming.mdx | 8 +
docs/docs/contributing/contributing.mdx | 4 +
docs/docs/contributing/development.mdx | 13 +-
docs/docs/installation/kubernetes.mdx | 5 +
docs/docs/quickstart.mdx | 6 +
docs/docs/security/securing_superset.mdx | 5 +
docs/docs/security/security.mdx | 100 ++-
.../creating-your-first-dashboard.mdx | 23 +-
docs/docs/using-superset/exploring-data.mdx | 9 +
docs/docusaurus.config.ts | 12 +
docs/netlify.toml | 56 ++
docs/package.json | 12 +-
docs/src/styles/custom.css | 39 +
docs/src/theme/Admonition/Types.js | 63 ++
docs/static/img/logos/cirrus.svg | Bin 0 -> 1809 bytes
.../logos/hollyland\347\214\233\347\216\233.svg" | Bin 0 -> 77086 bytes
docs/static/img/logos/plaidcloud.svg | Bin 0 -> 81228 bytes
docs/static/img/logos/vlmedia.svg | Bin 0 -> 10468 bytes
docs/yarn.lock | 308 +++----
pyproject.toml | 23 +-
requirements/base.txt | 2 +-
requirements/development.txt | 2 +-
scripts/docker-compose-up.sh | 77 +-
superset-embedded-sdk/README.md | 61 +-
superset-embedded-sdk/src/index.ts | 38 +-
.../src/superset_extensions_cli/cli.py | 5 -
superset-extensions-cli/tests/test_cli_dev.py | 24 +-
superset-frontend/cypress-base/package-lock.json | 354 +++++++-
superset-frontend/cypress-base/package.json | 5 +
.../netlify.toml | 22 +-
superset-frontend/oxlint.json | 2 +-
superset-frontend/package-lock.json | 822 ++++++++++--------
superset-frontend/package.json | 22 +-
.../packages/generator-superset/package.json | 2 +-
.../packages/superset-core/package.json | 10 +-
.../packages/superset-core/src/api/environment.ts | 153 ----
.../packages/superset-core/src/api/index.ts | 2 -
.../packages/superset-core/src/api/sqlLab.ts | 109 ---
.../packages/superset-core/src/index.ts | 1 +
.../superset-core/src/spec/utils/logging.test.ts | 69 ++
.../packages/superset-core/src/ui/index.ts | 1 +
.../src/ui}/translation/README.md | 0
.../src/ui}/translation/Translator.ts | 2 +-
.../src/ui}/translation/TranslatorSingleton.ts | 0
.../src/ui}/translation/index.ts | 1 +
.../src/ui}/translation/types/index.ts | 0
.../src/ui}/translation/types/jed.ts | 0
.../src/utils}/index.ts | 2 +-
.../src/utils/logging.ts | 2 +-
.../types/external.d.ts | 0
.../src/components/CertifiedIconWithTooltip.tsx | 2 +-
.../components/ColumnTypeLabel/ColumnTypeLabel.tsx | 2 +-
.../src/components/ControlHeader.tsx | 2 +-
.../src/components/SQLPopover.tsx | 2 +-
.../src/components/labelUtils.tsx | 2 +-
.../superset-ui-chart-controls/src/constants.ts | 3 +-
.../src/sections/advancedAnalytics.tsx | 3 +-
.../src/sections/annotationsAndLayers.tsx | 2 +-
.../src/sections/chartTitle.tsx | 2 +-
.../src/sections/echartsTimeSeriesQuery.tsx | 2 +-
.../src/sections/forecastInterval.tsx | 7 +-
.../src/sections/matrixify.tsx | 2 +-
.../src/sections/sections.tsx | 2 +-
.../src/sections/timeComparison.tsx | 3 +-
.../components/RadioButtonControl.tsx | 3 +-
.../src/shared-controls/customControls.tsx | 2 +-
.../src/shared-controls/dndControls.tsx | 3 +-
.../src/shared-controls/matrixifyControls.tsx | 3 +-
.../src/shared-controls/mixins.tsx | 2 +-
.../src/shared-controls/sharedControls.tsx | 2 +-
.../src/utils/D3Formatting.ts | 2 +-
.../test/utils/getColorFormatters.test.ts | 2 +-
.../src/chart/components/FallbackComponent.tsx | 2 +-
.../src/chart/components/NoResultsComponent.tsx | 3 +-
.../src/chart/components/SuperChartCore.tsx | 2 +-
.../src/components/AsyncAceEditor/index.tsx | 2 -
.../src/components/CachedLabel/TooltipContent.tsx | 2 +-
.../src/components/CachedLabel/index.tsx | 2 +-
.../CertifiedBadge/CertifiedBadge.stories.tsx | 2 +-
.../src/components/CertifiedBadge/index.tsx | 2 +-
.../src/components/ConfirmModal/index.tsx | 2 +-
.../src/components/CronPicker/index.tsx | 2 +-
.../src/components/DeleteModal/index.tsx | 2 +-
.../DropdownContainer/DropdownContainer.tsx | 3 +-
.../src/components/DynamicEditableTitle/index.tsx | 2 +-
.../src/components/EditableTitle/index.tsx | 2 +-
.../src/components/EmptyState/index.tsx | 89 +-
.../src/components/EmptyState/types.ts | 3 +
.../src/components/FaveStar/index.tsx | 2 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 2 +-
.../src/components/Icons/AntdEnhanced.tsx | 2 +
.../src/components/InfoTooltip/index.tsx | 2 +-
.../components/Label/reusable/DatasetTypeLabel.tsx | 2 +-
.../components/Label/reusable/PublishedLabel.tsx | 2 +-
.../src/components/LastUpdated/index.tsx | 2 +-
.../src/components/ListViewCard/ImageLoader.tsx | 2 +-
.../src/components/ListViewCard/index.tsx | 4 +-
.../src/components/MetadataBar/ContentConfig.tsx | 3 +-
.../src/components/Modal/FormModal.tsx | 2 +-
.../src/components/Modal/Modal.tsx | 2 +-
.../src/components/PageHeaderWithActions/index.tsx | 2 +-
.../src/components/Select/AsyncSelect.tsx | 2 +-
.../src/components/Select/Select.tsx | 3 +-
.../src/components/Select/constants.ts | 2 +-
.../src/components/Select/utils.tsx | 3 +-
.../Table/cell-renderers/NumericCell/index.tsx | 2 +-
.../src/components/Table/index.tsx | 3 +-
.../ThemedAgGridReact/ThemedAgGridReact.test.tsx | 10 +-
.../src/components/TimezoneSelector/index.tsx | 2 +-
.../src/components/TruncatedList/index.tsx | 3 +-
.../src/components/UnsavedChangesModal/index.tsx | 2 +-
.../superset-ui-core/src/components/constants.ts | 2 +-
.../src/currency-format/CurrencyFormatter.ts | 11 +-
.../packages/superset-ui-core/src/index.ts | 1 -
.../src/query/extractQueryFields.ts | 2 +-
.../src/query/getClientErrorObject.ts | 2 +-
.../src/query/types/QueryResponse.ts | 6 +-
.../superset-ui-core/src/utils/featureFlags.ts | 2 +-
.../packages/superset-ui-core/src/utils/index.ts | 1 -
.../packages/superset-ui-core/src/utils/tooltip.ts | 2 +-
.../src/validator/legacyValidateInteger.ts | 2 +-
.../src/validator/legacyValidateNumber.ts | 2 +-
.../src/validator/validateInteger.ts | 2 +-
.../src/validator/validateMapboxStylesUrl.ts | 2 +-
.../src/validator/validateMaxValue.ts | 2 +-
.../src/validator/validateNonEmpty.ts | 2 +-
.../src/validator/validateNumber.ts | 2 +-
.../src/validator/validateServerPagination.ts | 2 +-
.../validator/validateTimeComparisonRangeValues.ts | 2 +-
.../test/chart/clients/ChartClient.test.ts | 2 +-
.../test/currency-format/CurrencyFormatter.test.ts | 6 +-
.../test/query/extractQueryFields.test.ts | 3 +-
.../test/translation/Translator.test.ts | 201 -----
.../test/translation/TranslatorSingleton.test.ts | 86 --
.../test/translation/index.test.ts | 35 -
.../test/translation/languagePacks/en.ts | 37 -
.../test/translation/languagePacks/zh.ts | 37 -
.../test/utils/featureFlag.test.ts | 19 +-
.../superset-ui-core/test/utils/logging.test.ts | 78 --
.../superset-ui-core/test/validator/setup.ts | 2 +-
.../packages/superset-ui-demo/package.json | 2 +-
.../storybook/shared/components/VerifyCORS.tsx | 2 +-
.../playwright/tests/experimental/README.md | 7 +
.../legacy-plugin-chart-calendar/src/Calendar.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-calendar/src/index.js | 3 +-
.../src/vendor/cal-heatmap.js | 3 +-
.../legacy-plugin-chart-chord/src/controlPanel.ts | 3 +-
.../plugins/legacy-plugin-chart-chord/src/index.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-country-map/src/index.js | 3 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-horizon/src/index.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-map-box/src/index.js | 3 +-
.../src/controlPanel.ts | 3 +-
.../legacy-plugin-chart-paired-t-test/src/index.js | 3 +-
.../src/controlPanel.ts | 2 +-
.../src/index.js | 3 +-
.../src/controlPanel.tsx | 3 +-
.../legacy-plugin-chart-partition/src/index.js | 3 +-
.../legacy-plugin-chart-rose/src/controlPanel.tsx | 2 +-
.../plugins/legacy-plugin-chart-rose/src/index.js | 3 +-
.../src/controlPanel.ts | 2 +-
.../legacy-plugin-chart-world-map/src/index.js | 3 +-
.../src/Multi/controlPanel.ts | 3 +-
.../legacy-preset-chart-deckgl/src/Multi/index.ts | 3 +-
.../src/layers/Arc/controlPanel.ts | 3 +-
.../src/layers/Arc/index.ts | 3 +-
.../src/layers/Contour/Contour.tsx | 2 +-
.../src/layers/Contour/controlPanel.ts | 3 +-
.../src/layers/Contour/index.ts | 3 +-
.../src/layers/Geojson/controlPanel.ts | 2 +-
.../src/layers/Geojson/index.ts | 3 +-
.../src/layers/Grid/controlPanel.ts | 3 +-
.../src/layers/Grid/index.ts | 3 +-
.../src/layers/Heatmap/Heatmap.tsx | 2 +-
.../src/layers/Heatmap/controlPanel.ts | 2 +-
.../src/layers/Heatmap/index.ts | 3 +-
.../src/layers/Hex/controlPanel.ts | 2 +-
.../src/layers/Hex/index.ts | 3 +-
.../src/layers/Path/controlPanel.ts | 2 +-
.../src/layers/Path/index.ts | 3 +-
.../src/layers/Polygon/Polygon.tsx | 2 +-
.../src/layers/Polygon/controlPanel.ts | 4 +-
.../src/layers/Polygon/index.ts | 3 +-
.../src/layers/Scatter/Scatter.tsx | 21 +-
.../src/layers/Scatter/buildQuery.test.ts | 312 +++++++
.../src/layers/Scatter/buildQuery.ts | 26 +-
.../src/layers/Scatter/controlPanel.ts | 3 +-
.../src/layers/Scatter/index.ts | 3 +-
.../src/layers/Scatter/transformProps.test.ts | 303 +++++++
.../src/layers/Scatter/transformProps.ts | 19 +-
.../src/layers/Screengrid/Screengrid.tsx | 2 +-
.../src/layers/Screengrid/controlPanel.ts | 3 +-
.../src/layers/Screengrid/index.ts | 3 +-
.../src/layers/transformUtils.test.ts | 184 ++++
.../src/layers/transformUtils.ts | 12 +-
.../src/layers/utils/metricUtils.test.ts | 121 +++
.../src/layers/utils/metricUtils.ts | 120 +++
.../src/utilities/HandlebarsRenderer.tsx | 3 +-
.../src/utilities/Shared_DeckGL.tsx | 4 +-
.../src/utilities/TooltipTemplateControl.tsx | 2 +-
.../src/utilities/sharedDndControls.tsx | 2 +-
.../src/utilities/tooltipUtils.tsx | 3 +-
.../src/Bubble/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Bubble/index.js | 3 +-
.../src/Bullet/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Bullet/index.js | 3 +-
.../src/Compare/controlPanel.ts | 2 +-
.../legacy-preset-chart-nvd3/src/Compare/index.js | 3 +-
.../legacy-preset-chart-nvd3/src/NVD3Controls.tsx | 2 +-
.../legacy-preset-chart-nvd3/src/NVD3Vis.js | 2 +-
.../src/TimePivot/controlPanel.ts | 2 +-
.../src/TimePivot/index.js | 3 +-
.../src/vendor/superset/AnnotationTypes.js | 2 +-
.../src/AgGridTable/components/CustomHeader.tsx | 82 +-
.../src/AgGridTable/components/Pagination.tsx | 2 +-
.../components/TimeComparisonVisibility.tsx | 2 +-
.../src/AgGridTable/index.tsx | 94 +-
.../src/AgGridTableChart.tsx | 93 +-
.../plugin-chart-ag-grid-table/src/buildQuery.ts | 158 +++-
.../plugin-chart-ag-grid-table/src/consts.ts | 15 +
.../src/controlPanel.tsx | 2 +-
.../plugin-chart-ag-grid-table/src/index.ts | 3 +-
.../src/renderers/NumericCellRenderer.tsx | 14 +-
.../src/renderers/TextCellRenderer.tsx | 3 +-
.../src/stateConversion.ts | 185 +++-
.../src/transformProps.ts | 2 +-
.../plugin-chart-ag-grid-table/src/types.ts | 23 +-
.../src/utils/agGridFilterConverter.ts | 726 ++++++++++++++++
.../src/utils/dateFilterComparator.ts | 58 +-
.../src/utils/filterStateManager.ts | 164 ++++
.../src/utils/getInitialFilterModel.ts} | 37 +-
.../src/utils/useColDefs.ts | 110 ++-
.../test/buildQuery.test.ts | 591 +++++++++++++
.../test/utils/agGridFilterConverter.test.ts | 863 ++++++++++++++++++
.../test/utils/dateFilterComparator.test.ts | 124 +++
.../test/utils/filterStateManager.test.ts | 658 ++++++++++++++
.../test/utils/getInitialFilterModel.test.ts | 412 +++++++++
.../src/plugin/controlPanel.ts | 3 +-
.../plugin-chart-cartodiagram/src/plugin/index.ts | 3 +-
.../src/util/controlPanelUtil.tsx | 2 +-
.../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx | 2 +-
.../BigNumberPeriodOverPeriod/controlPanel.ts | 2 +-
.../BigNumber/BigNumberPeriodOverPeriod/index.ts | 3 +-
.../src/BigNumber/BigNumberTotal/controlPanel.ts | 3 +-
.../src/BigNumber/BigNumberTotal/index.ts | 3 +-
.../src/BigNumber/BigNumberViz.tsx | 2 +-
.../BigNumberWithTrendline/controlPanel.tsx | 3 +-
.../src/BigNumber/BigNumberWithTrendline/index.ts | 3 +-
.../BigNumberWithTrendline/transformProps.ts | 2 +-
.../src/BigNumber/sharedControls.ts | 2 +-
.../src/BoxPlot/controlPanel.ts | 2 +-
.../plugin-chart-echarts/src/BoxPlot/index.ts | 3 +-
.../src/Bubble/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Bubble/index.ts | 3 +-
.../src/Funnel/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Funnel/index.ts | 3 +-
.../src/Gantt/EchartsGantt.tsx | 2 +-
.../src/Gantt/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Gantt/index.ts | 3 +-
.../src/Gantt/transformProps.ts | 2 +-
.../src/Gauge/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Gauge/index.ts | 3 +-
.../src/Graph/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Graph/index.ts | 3 +-
.../src/Heatmap/controlPanel.tsx | 3 +-
.../plugin-chart-echarts/src/Heatmap/index.ts | 3 +-
.../src/Heatmap/transformProps.ts | 2 +-
.../src/Histogram/controlPanel.tsx | 3 +-
.../plugin-chart-echarts/src/Histogram/index.ts | 3 +-
.../src/MixedTimeseries/controlPanel.tsx | 3 +-
.../src/MixedTimeseries/index.ts | 3 +-
.../plugin-chart-echarts/src/Pie/controlPanel.tsx | 3 +-
.../plugins/plugin-chart-echarts/src/Pie/index.ts | 3 +-
.../plugin-chart-echarts/src/Pie/transformProps.ts | 2 +-
.../src/Radar/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Radar/index.ts | 3 +-
.../src/Sankey/controlPanel.tsx | 3 +-
.../plugin-chart-echarts/src/Sankey/index.ts | 3 +-
.../src/Sunburst/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Sunburst/index.ts | 3 +-
.../src/Sunburst/transformProps.ts | 2 +-
.../src/Timeseries/Area/controlPanel.tsx | 2 +-
.../src/Timeseries/Area/index.ts | 3 +-
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 3 +-
.../src/Timeseries/Regular/Bar/index.ts | 3 +-
.../src/Timeseries/Regular/Line/controlPanel.tsx | 2 +-
.../src/Timeseries/Regular/Line/index.ts | 3 +-
.../Timeseries/Regular/Scatter/controlPanel.tsx | 2 +-
.../src/Timeseries/Regular/Scatter/index.ts | 3 +-
.../Timeseries/Regular/SmoothLine/controlPanel.tsx | 2 +-
.../src/Timeseries/Regular/SmoothLine/index.ts | 3 +-
.../src/Timeseries/Step/controlPanel.tsx | 2 +-
.../src/Timeseries/Step/index.ts | 3 +-
.../src/Timeseries/constants.ts | 2 +-
.../plugin-chart-echarts/src/Timeseries/index.ts | 3 +-
.../src/Timeseries/transformProps.ts | 2 +-
.../plugin-chart-echarts/src/Tree/controlPanel.tsx | 2 +-
.../plugins/plugin-chart-echarts/src/Tree/index.ts | 2 +-
.../src/Treemap/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Treemap/index.ts | 3 +-
.../src/Waterfall/constants.ts | 2 +-
.../src/Waterfall/controlPanel.tsx | 2 +-
.../plugin-chart-echarts/src/Waterfall/index.ts | 3 +-
.../plugins/plugin-chart-echarts/src/constants.ts | 3 +-
.../plugins/plugin-chart-echarts/src/controls.tsx | 3 +-
.../plugin-chart-echarts/src/utils/series.ts | 3 -
.../src/components/Handlebars/HandlebarsViewer.tsx | 2 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../src/plugin/controls/columns.tsx | 3 +-
.../src/plugin/controls/handlebarTemplate.tsx | 3 +-
.../src/plugin/controls/includeTime.ts | 2 +-
.../src/plugin/controls/metrics.tsx | 2 +-
.../src/plugin/controls/orderBy.tsx | 2 +-
.../src/plugin/controls/queryMode.tsx | 3 +-
.../src/plugin/controls/shared.ts | 8 +-
.../src/plugin/controls/style.tsx | 2 +-
.../plugin-chart-handlebars/src/plugin/index.ts | 3 +-
.../src/PivotTableChart.tsx | 2 +-
.../src/plugin/controlPanel.tsx | 2 +-
.../plugin-chart-pivot-table/src/plugin/index.ts | 2 +-
.../src/react-pivottable/TableRenderers.jsx | 3 +-
.../src/react-pivottable/utilities.js | 2 +-
.../src/DataTable/components/SelectPageSize.tsx | 2 +-
.../src/DataTable/hooks/useSticky.tsx | 2 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 14 +-
.../plugins/plugin-chart-table/src/consts.ts | 2 +-
.../plugin-chart-table/src/controlPanel.tsx | 2 +-
.../plugins/plugin-chart-table/src/index.ts | 3 +-
.../plugin-chart-table/src/transformProps.ts | 2 +-
.../plugin-chart-table/test/TableChart.test.tsx | 72 ++
.../plugins/plugin-chart-table/test/testData.ts | 1 +
.../src/plugin/controlPanel.tsx | 3 +-
.../plugin/controls/ColorSchemeControl/index.tsx | 2 +-
.../src/plugin/controls/RotationControl.tsx | 2 +-
.../plugin-chart-word-cloud/src/plugin/index.ts | 3 +-
superset-frontend/spec/helpers/shim.tsx | 8 +-
.../src/SqlLab/actions/{sqlLab.js => sqlLab.ts} | 796 ++++++++++++-----
.../SqlLab/components/AceEditorWrapper/index.tsx | 26 +-
.../components/AceEditorWrapper/useAnnotations.ts | 3 +-
.../AceEditorWrapper/useKeywords.test.ts | 6 +-
.../components/AceEditorWrapper/useKeywords.ts | 9 +-
.../src/SqlLab/components/App/index.tsx | 2 +-
.../src/SqlLab/components/AppLayout/index.tsx | 22 +-
.../src/SqlLab/components/ColumnElement/index.tsx | 2 +-
.../EditorAutoSync/EditorAutoSync.test.tsx | 6 +-
.../src/SqlLab/components/EditorAutoSync/index.tsx | 2 +-
.../EstimateQueryCostButton.test.tsx | 28 +-
.../components/EstimateQueryCostButton/index.tsx | 11 +-
.../components/ExploreCtasResultsButton/index.tsx | 3 +-
.../components/ExploreResultsButton/index.tsx | 2 +-
.../src/SqlLab/components/HighlightedSql/index.tsx | 2 +-
.../components/KeyboardShortcutButton/index.tsx | 2 +-
.../SqlLab/components/QueryAutoRefresh/index.tsx | 2 +-
.../src/SqlLab/components/QueryHistory/index.tsx | 3 +-
.../QueryLimitSelect/QueryLimitSelect.test.tsx | 3 +-
.../SqlLab/components/QueryLimitSelect/index.tsx | 30 +-
.../src/SqlLab/components/QueryTable/index.tsx | 3 +-
.../SqlLab/components/ResultSet/ResultSet.test.tsx | 141 +++
.../src/SqlLab/components/ResultSet/index.tsx | 6 +-
.../RunQueryActionButton.test.tsx | 1 -
.../components/RunQueryActionButton/index.tsx | 40 +-
.../SaveDatasetActionButton.test.tsx | 39 +-
.../components/SaveDatasetActionButton/index.tsx | 49 +-
.../SqlLab/components/SaveDatasetModal/index.tsx | 8 +-
.../SqlLab/components/SaveQuery/SaveQuery.test.tsx | 23 +-
.../src/SqlLab/components/SaveQuery/index.tsx | 24 +-
.../components/ScheduleQueryButton/index.tsx | 2 +-
.../SqlLab/components/ShareSqlLabQuery/index.tsx | 13 +-
.../src/SqlLab/components/SouthPane/Results.tsx | 3 +-
.../src/SqlLab/components/SouthPane/index.tsx | 29 +-
.../SqlLab/components/SqlEditor/SqlEditor.test.tsx | 6 +-
.../src/SqlLab/components/SqlEditor/index.tsx | 260 +++---
.../SqlLab/components/SqlEditorLeftBar/index.tsx | 91 +-
.../SqlLab/components/SqlEditorTabHeader/index.tsx | 3 +-
.../SqlEditorTopBar/SqlEditorTopBar.test.tsx | 130 +++
.../SqlLab/components/SqlEditorTopBar/index.tsx | 62 ++
.../SqlEditorTopBar/useDatabaseSelector.test.ts | 320 +++++++
.../SqlEditorTopBar/useDatabaseSelector.ts | 126 +++
.../components/StatusBar/StatusBar.test.tsx} | 28 +-
.../src/SqlLab/components/StatusBar/index.tsx | 57 ++
.../SqlLab/components/TabbedSqlEditors/index.tsx | 43 +-
.../src/SqlLab/components/TableElement/index.tsx | 4 +-
.../src/SqlLab/components/TablePreview/index.tsx | 3 +-
.../components/TemplateParamsEditor/index.tsx | 2 +-
superset-frontend/src/SqlLab/constants.ts | 5 +-
superset-frontend/src/SqlLab/contributions.ts | 4 +-
.../middlewares/persistSqlLabStateEnhancer.js | 136 ---
.../middlewares/persistSqlLabStateEnhancer.ts | 185 ++++
.../src/SqlLab/reducers/getInitialState.ts | 2 +-
.../src/SqlLab/reducers/{sqlLab.js => sqlLab.ts} | 336 ++++----
.../src/SqlLab/utils/newQueryTabName.ts | 2 +-
.../src/components/AlteredSliceTag/index.tsx | 2 +-
.../src/components/AuditInfo/index.tsx | 2 +-
superset-frontend/src/components/Chart/Chart.tsx | 3 +-
.../Chart/ChartContextMenu/ChartContextMenu.tsx | 2 +-
.../src/components/Chart/ChartRenderer.jsx | 16 +-
.../src/components/Chart/DrillBy/DrillByModal.tsx | 2 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 2 +-
.../Chart/DrillBy/useDisplayModeToggle.tsx | 2 +-
.../Chart/DrillBy/useResultsTableView.tsx | 3 +-
.../Chart/DrillDetail/DrillDetailModal.tsx | 2 +-
.../Chart/DrillDetail/DrillDetailPane.tsx | 2 +-
.../Chart/DrillDetail/DrillDetailTableControls.tsx | 2 +-
.../src/components/Chart/chartAction.js | 2 +-
.../src/components/Chart/chartReducer.ts | 2 +-
.../Chart/useDrillDetailMenuItems/index.tsx | 2 +-
.../src/components/CopyToClipboard/index.tsx | 2 +-
.../src/components/DatabaseSelector/index.tsx | 3 +-
.../Datasource/ChangeDatasourceModal/index.tsx | 3 +-
.../Datasource/DatasourceModal/index.tsx | 2 +-
.../components/CollectionTable/index.tsx | 2 +-
.../DatasourceEditor/DatasourceEditor.jsx | 2 +-
.../components/DatasetUsageTab/index.tsx | 2 +-
.../src/components/Datasource/utils/index.js | 3 +-
.../src/components/Datasource/utils/utils.test.tsx | 2 +-
.../src/components/DynamicPlugins/index.tsx | 2 +-
.../src/components/ErrorBoundary/index.tsx | 2 +-
.../ErrorMessage/DatabaseErrorMessage.tsx | 3 +-
.../ErrorMessage/DatasetNotFoundErrorMessage.tsx | 2 +-
.../src/components/ErrorMessage/ErrorAlert.tsx | 2 +-
.../ErrorMessage/ErrorMessageWithStackTrace.tsx | 3 +-
.../ErrorMessage/FrontendNetworkErrorMessage.tsx | 2 +-
.../ErrorMessage/InvalidSQLErrorMessage.tsx | 2 +-
.../ErrorMessage/MarshmallowErrorMessage.tsx | 2 +-
.../ErrorMessage/OAuth2RedirectMessage.tsx | 3 +-
.../ErrorMessage/ParameterErrorMessage.tsx | 3 +-
.../ErrorMessage/TimeoutErrorMessage.tsx | 3 +-
.../src/components/FilterableTable/utils.tsx | 3 +-
.../src/components/GridTable/Header.tsx | 2 +-
.../src/components/GridTable/HeaderMenu.tsx | 2 +-
.../src/components/ImportModal/ErrorAlert.tsx | 2 +-
.../components/ImportModal/ImportErrorAlert.tsx | 2 +-
.../src/components/ImportModal/index.tsx | 2 +-
.../components/LastQueriedLabel/index.tsx} | 63 +-
.../src/components/ListView/CardSortSelect.tsx | 2 +-
.../src/components/ListView/CrossLinksTooltip.tsx | 2 +-
.../src/components/ListView/Filters/DateRange.tsx | 2 +-
.../components/ListView/Filters/NumericalRange.tsx | 2 +-
.../src/components/ListView/Filters/Search.tsx | 2 +-
.../src/components/ListView/Filters/Select.tsx | 2 +-
.../src/components/ListView/ListView.tsx | 2 +-
.../MenuListExtension/MenuListExtension.test.tsx | 374 ++++++++
.../src/components/MenuListExtension/index.tsx | 157 ++++
.../src/components/Modal/StandardModal.tsx | 2 +-
.../src/components/Modal/useModalValidation.tsx | 2 +-
.../src/components/RowCountLabel/index.tsx | 3 +-
.../components/SQLEditorWithValidation/index.tsx | 3 +-
.../StreamingExportModal/StreamingExportModal.tsx | 2 +-
.../useStreamingExport.test.ts | 959 +++++++++++++++++++++
.../StreamingExportModal/useStreamingExport.ts | 57 +-
.../src/components/TableSelector/index.tsx | 7 +-
superset-frontend/src/components/Tag/utils.tsx | 2 +-
.../ViewListExtension/ViewListExtension.test.tsx | 198 +++++
.../ViewListExtension/index.tsx} | 32 +-
superset-frontend/src/core/authentication/index.ts | 6 +-
superset-frontend/src/core/commands/index.ts | 12 +-
superset-frontend/src/core/environment/index.ts | 57 --
superset-frontend/src/core/extensions/index.ts | 11 +-
superset-frontend/src/core/index.ts | 1 -
superset-frontend/src/core/sqlLab/index.ts | 129 ++-
.../dashboard/actions/chartCustomizationActions.ts | 3 +-
.../src/dashboard/actions/dashboardInfo.ts | 3 +-
.../src/dashboard/actions/dashboardLayout.js | 2 +-
.../src/dashboard/actions/dashboardState.js | 16 +-
.../src/dashboard/actions/sliceEntities.ts | 2 +-
.../components/AddSliceCard/AddSliceCard.tsx | 3 +-
.../src/dashboard/components/AnchorLink/index.tsx | 2 +-
.../components/BuilderComponentPane/index.tsx | 2 +-
.../components/ColorSchemeControlWrapper.tsx | 3 +-
.../src/dashboard/components/ColorSchemeSelect.tsx | 2 +-
.../src/dashboard/components/Dashboard.jsx | 2 +-
.../DashboardBuilder/DashboardBuilder.tsx | 3 +-
.../src/dashboard/components/DashboardGrid.jsx | 4 +-
.../dashboard/components/EmbeddedModal/index.tsx | 2 +-
.../components/FiltersBadge/DetailsPanel/index.tsx | 2 +-
.../dashboard/components/FiltersBadge/index.tsx | 2 +-
.../dashboard/components/GroupByBadge/index.tsx | 2 +-
.../src/dashboard/components/Header/index.jsx | 3 +-
.../components/Header/useDashboardMetadataBar.tsx | 2 +-
.../Header/useHeaderActionsDropdownMenu.tsx | 2 +-
.../src/dashboard/components/MissingChart.tsx | 2 +-
.../OverwriteConfirm/OverwriteConfirmModal.tsx | 2 +-
.../PropertiesModal/PropertiesModal.test.tsx | 16 +-
.../dashboard/components/PropertiesModal/index.tsx | 17 +-
.../PropertiesModal/sections/AccessSection.tsx | 3 +-
.../PropertiesModal/sections/AdvancedSection.tsx | 2 +-
.../PropertiesModal/sections/BasicInfoSection.tsx | 2 +-
.../sections/CertificationSection.tsx | 2 +-
.../PropertiesModal/sections/RefreshSection.tsx | 2 +-
.../sections/StylingSection.test.tsx | 45 +
.../PropertiesModal/sections/StylingSection.tsx | 51 +-
.../dashboard/components/PublishedStatus/index.tsx | 2 +-
.../RefreshFrequency/RefreshFrequencySelect.tsx | 2 +-
.../dashboard/components/RefreshIntervalModal.tsx | 2 +-
.../src/dashboard/components/SaveModal.tsx | 2 +-
.../src/dashboard/components/SliceAdder.tsx | 2 +-
.../src/dashboard/components/SliceHeader/index.tsx | 6 +-
.../ViewResultsModalTrigger.tsx | 2 +-
.../components/SliceHeaderControls/index.tsx | 25 +-
.../components/SliceHeaderControls/types.ts | 1 +
.../components/URLShortLinkButton/index.tsx | 9 +-
.../components/filterscope/FilterScopeSelector.jsx | 3 +-
.../dashboard/components/filterscope/treeIcons.tsx | 2 +-
.../components/gridComponents/Chart/Chart.jsx | 34 +-
.../components/gridComponents/Column/Column.jsx | 3 +-
.../DynamicComponent/DynamicComponent.tsx | 3 +-
.../gridComponents/Markdown/Markdown.jsx | 3 +-
.../components/gridComponents/Row/Row.tsx | 8 +-
.../components/gridComponents/Tab/Tab.jsx | 25 +-
.../components/gridComponents/Tab/Tab.test.tsx | 103 +++
.../components/gridComponents/Tabs/Tabs.jsx | 4 +-
.../components/gridComponents/new/NewColumn.tsx | 2 +-
.../components/gridComponents/new/NewDivider.tsx | 2 +-
.../components/gridComponents/new/NewHeader.tsx | 2 +-
.../components/gridComponents/new/NewMarkdown.tsx | 2 +-
.../components/gridComponents/new/NewRow.tsx | 2 +-
.../components/gridComponents/new/NewTabs.tsx | 2 +-
.../components/menu/BackgroundStyleDropdown.tsx | 2 +-
.../components/menu/DownloadMenuItems/index.tsx | 4 +-
.../components/menu/MarkdownModeDropdown.tsx | 2 +-
.../components/menu/ShareMenuItems/index.tsx | 9 +-
.../ChartCustomization/ChartCustomizationForm.tsx | 2 +-
.../ChartCustomization/ChartCustomizationModal.tsx | 2 +-
.../ChartCustomizationTitleContainer.tsx | 2 +-
.../ChartCustomizationTitlePane.tsx | 2 +-
.../ChartCustomization/GroupByFilterCard.tsx | 3 +-
.../nativeFilters/ChartCustomization/utils.ts | 2 +-
.../nativeFilters/ConfigModal/ModalFooter.tsx | 2 +-
.../FilterBar/ActionButtons/index.tsx | 2 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 3 +-
.../ScopingModal/ChartsScopingListPanel.tsx | 2 +-
.../CrossFilters/ScopingModal/ScopingModal.tsx | 3 +-
.../CrossFilters/ScopingModal/ScopingTreePanel.tsx | 3 +-
.../FilterBar/CrossFilters/VerticalCollapse.tsx | 2 +-
.../FilterBar/FilterBarSettings/index.tsx | 2 +-
.../FilterBar/FilterControls/FilterControls.tsx | 2 +-
.../FilterBar/FilterControls/FilterValue.tsx | 2 +-
.../FiltersOutOfScopeCollapsible/index.tsx | 3 +-
.../nativeFilters/FilterBar/Header/index.tsx | 2 +-
.../nativeFilters/FilterBar/Horizontal.tsx | 3 +-
.../nativeFilters/FilterBar/Vertical.tsx | 2 +-
.../nativeFilters/FilterBar/keyValue.tsx | 3 +-
.../nativeFilters/FilterCard/DependenciesRow.tsx | 3 +-
.../nativeFilters/FilterCard/ScopeRow.tsx | 3 +-
.../nativeFilters/FilterCard/TypeRow.tsx | 3 +-
.../nativeFilters/FilterCard/useFilterScope.ts | 3 +-
.../FiltersConfigModal/DividerConfigForm.tsx | 3 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 19 +-
.../FiltersConfigModal/FilterTitlePane.tsx | 3 +-
.../FiltersConfigForm/ColumnSelect.tsx | 2 +-
.../FiltersConfigForm/DatasetSelect.tsx | 2 +-
.../FiltersConfigForm/DefaultValue.tsx | 2 +-
.../FiltersConfigForm/DependencyList.tsx | 2 +-
.../FiltersConfigForm/FilterScope/state.ts | 2 +-
.../FiltersConfigForm/FilterScope/utils.ts | 4 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 6 +-
.../FiltersConfigForm/RemovedFilter.tsx | 2 +-
.../FiltersConfigForm/getControlItemsMap.tsx | 3 +-
.../FiltersConfigModal/FiltersConfigForm/state.ts | 3 +-
.../FiltersConfigModal/FiltersConfigModal.tsx | 3 +-
.../Footer/CancelConfirmationAlert.tsx | 2 +-
.../FiltersConfigModal/Footer/Footer.tsx | 2 +-
.../nativeFilters/FiltersConfigModal/utils.ts | 2 +-
.../dashboard/components/nativeFilters/utils.ts | 2 +-
.../src/dashboard/containers/DashboardPage.tsx | 19 +-
.../src/dashboard/hooks/useDownloadScreenshot.ts | 9 +-
.../src/dashboard/reducers/sliceEntities.ts | 2 +-
.../src/dashboard/util/backgroundStyleOptions.ts | 2 +-
.../src/dashboard/util/getFilterFieldNodesTree.ts | 2 +-
.../src/dashboard/util/getFilterScopeNodesTree.js | 2 +-
.../src/dashboard/util/getSliceHeaderTooltip.tsx | 2 +-
.../src/dashboard/util/headerStyleOptions.ts | 2 +-
.../src/dashboard/util/newComponentFactory.js | 2 +-
.../dashboard/util/updateComponentParentsList.ts | 2 +-
superset-frontend/src/embedded/api.tsx | 4 +-
superset-frontend/src/embedded/index.tsx | 4 +-
superset-frontend/src/embedded/utils.ts | 3 +-
.../src/explore/actions/exploreActions.ts | 3 +-
.../src/explore/actions/saveModalActions.ts | 2 +-
.../src/explore/components/ControlHeader.tsx | 2 +-
.../components/ControlPanelsContainer.test.tsx | 2 +-
.../explore/components/ControlPanelsContainer.tsx | 2 +-
.../explore/components/DataTableControl/index.tsx | 8 +-
.../components/DataTablesPane/DataTablesPane.tsx | 3 +-
.../components/ResultsPaneOnDashboard.tsx | 2 +-
.../DataTablesPane/components/SamplesPane.tsx | 3 +-
.../components/SingleQueryResultPane.tsx | 2 +-
.../DataTablesPane/components/useResultsPane.tsx | 2 +-
.../DatasourcePanel/DatasourcePanelItem.tsx | 3 +-
.../explore/components/DatasourcePanel/index.tsx | 3 +-
.../DatasourcePanel/transformDatasourceFolders.ts | 3 +-
.../src/explore/components/EmbedCodeContent.jsx | 11 +-
.../components/ExploreChartHeader/index.jsx | 5 +-
.../ExploreChartHeader/useExploreMetadataBar.tsx | 3 +-
.../explore/components/ExploreChartPanel/index.tsx | 17 +-
.../components/ExploreViewContainer/index.jsx | 5 +-
.../components/ExportToCSVDropdown/index.tsx | 2 +-
.../explore/components/PropertiesModal/index.tsx | 2 +-
.../explore/components/RunQueryButton/index.tsx | 2 +-
.../src/explore/components/SaveModal.tsx | 9 +-
.../AnnotationLayer.test.tsx | 39 +-
.../{AnnotationLayer.jsx => AnnotationLayer.tsx} | 419 +++++----
.../{AnnotationTypes.js => AnnotationTypes.ts} | 42 +-
.../controls/AnnotationLayerControl/index.tsx | 2 +-
...undsControl.test.jsx => BoundsControl.test.tsx} | 0
.../explore/components/controls/BoundsControl.tsx | 2 +-
.../{CheckboxControl.jsx => CheckboxControl.tsx} | 52 +-
.../CollectionControl/{index.jsx => index.tsx} | 92 +-
.../ColorBreakpointPopoverControl.tsx | 3 +-
.../controls/ColorBreakpointsControl/index.tsx | 2 +-
.../controls/ColorSchemeControl/index.tsx | 2 +-
.../ColumnConfigControl/ColumnConfigControl.tsx | 2 +-
.../controls/ColumnConfigControl/constants.tsx | 3 +-
.../components/controls/ComparisonRangeLabel.tsx | 2 +-
.../ConditionalFormattingControl.tsx | 2 +-
.../FormattingPopoverContent.tsx | 2 +-
.../controls/ContourControl/ContourOption.tsx | 2 +-
.../ContourControl/ContourPopoverControl.tsx | 3 +-
.../components/controls/ContourControl/index.tsx | 2 +-
.../controls/CurrencyControl/CurrencyControl.tsx | 8 +-
.../DatasourceControl/DatasourceControl.test.tsx | 110 ++-
.../DatasourceControl/{index.jsx => index.tsx} | 153 +++-
.../controls/DateFilterControl/DateFilterLabel.tsx | 2 +-
.../DateFilterControl/components/AdvancedFrame.tsx | 3 +-
.../DateFilterControl/components/CalendarFrame.tsx | 2 +-
.../DateFilterControl/components/CommonFrame.tsx | 2 +-
.../components/CurrentCalendarFrame.tsx | 2 +-
.../DateFilterControl/components/CustomFrame.tsx | 3 +-
.../components/DateFunctionTooltip.tsx | 2 +-
.../DateFilterControl/components/DateLabel.tsx | 2 +-
.../controls/DateFilterControl/utils/constants.ts | 2 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 2 +-
.../ColumnSelectPopoverTrigger.tsx | 2 +-
.../DndAdhocFilterOption.tsx | 2 +-
.../DndColumnMetricSelect.tsx | 19 +-
.../DndColumnSelectControl/DndColumnSelect.tsx | 10 +-
...erTitle.jsx => DndColumnSelectPopoverTitle.tsx} | 13 +-
.../DndFilterSelect.test.tsx | 14 +-
.../DndColumnSelectControl/DndFilterSelect.tsx | 3 +-
.../DndColumnSelectControl/DndMetricSelect.tsx | 27 +-
.../DndColumnSelectControl/DndSelectLabel.tsx | 2 +-
.../controls/DndColumnSelectControl/Option.tsx | 2 +-
.../DndColumnSelectControl/utils/optionSelector.ts | 2 +-
.../{AdhocFilter.test.js => AdhocFilter.test.ts} | 0
.../AdhocFilter/{index.js => index.ts} | 110 ++-
.../AdhocFilterControl/AdhocFilterControl.test.tsx | 49 +-
.../AdhocFilterControl/{index.jsx => index.tsx} | 164 +++-
...er.test.jsx => AdhocFilterEditPopover.test.tsx} | 24 +-
.../{index.jsx => index.tsx} | 162 +++-
...AdhocFilterEditPopoverSimpleTabContent.test.tsx | 133 ++-
.../index.tsx | 90 +-
.../useAdvancedDataTypes.ts | 3 +-
.../AdhocFilterEditPopoverSqlTabContent/index.tsx | 2 +-
.../FilterControl/AdhocFilterOption/index.tsx | 25 +-
.../AdhocFilterPopoverTrigger/index.tsx | 2 +-
.../utils/useDatePickerInAdhocFilter.tsx | 9 +-
.../FilterControl/utils/useGetTimeRangeLabel.tsx | 31 +-
.../FixedOrMetricControl/{index.jsx => index.tsx} | 90 +-
.../controls/LayerConfigsControl/FlatLayerTree.tsx | 2 +-
.../LayerConfigsControl/LayerConfigsControl.tsx | 2 +-
.../LayerConfigsPopoverContent.tsx | 3 +-
.../controls/MapViewControl/ExtentTag.tsx | 2 +-
.../controls/MapViewControl/MapViewControl.tsx | 2 +-
.../MapViewControl/MapViewPopoverContent.tsx | 2 +-
.../controls/MatrixifyDimensionControl.tsx | 3 +-
.../{AdhocMetric.test.js => AdhocMetric.test.ts} | 4 +-
.../{AdhocMetric.js => AdhocMetric.ts} | 102 ++-
.../{index.jsx => index.tsx} | 165 +++-
.../MetricControl/AdhocMetricEditPopoverTitle.tsx | 2 +-
...cOption.test.jsx => AdhocMetricOption.test.tsx} | 27 +-
...AdhocMetricOption.jsx => AdhocMetricOption.tsx} | 46 +-
.../MetricControl/AdhocMetricPopoverTrigger.tsx | 23 +-
...on.test.jsx => FilterDefinitionOption.test.tsx} | 6 +-
...nitionOption.jsx => FilterDefinitionOption.tsx} | 21 +-
...lue.test.jsx => MetricDefinitionValue.test.tsx} | 26 +-
...finitionValue.jsx => MetricDefinitionValue.tsx} | 31 +-
...icsControl.test.jsx => MetricsControl.test.tsx} | 17 +-
.../{MetricsControl.jsx => MetricsControl.tsx} | 96 ++-
.../{adhocMetricType.js => adhocMetricType.ts} | 0
.../components/controls/MetricControl/types.ts | 2 +
.../controls/NumberControl/NumberControl.test.tsx | 50 +-
.../components/controls/NumberControl/index.tsx | 14 +-
.../components/controls/OptionControls/index.tsx | 6 +-
.../controls/SelectAsyncControl/index.tsx | 3 +-
...lectControl.test.jsx => SelectControl.test.tsx} | 34 +-
.../{SelectControl.jsx => SelectControl.tsx} | 155 +++-
.../{SpatialControl.jsx => SpatialControl.tsx} | 125 +--
...eaControl.test.jsx => TextAreaControl.test.tsx} | 0
.../{TextAreaControl.jsx => TextAreaControl.tsx} | 106 ++-
.../components/controls/TextControl/index.tsx | 4 +
.../{index.jsx => index.tsx} | 111 ++-
.../src/explore/components/controls/ViewQuery.tsx | 3 +-
.../explore/components/controls/ViewQueryModal.tsx | 2 +-
.../components/controls/ViewQueryModalFooter.tsx | 3 +-
...rtControl.test.jsx => ViewportControl.test.tsx} | 0
.../{ViewportControl.jsx => ViewportControl.tsx} | 84 +-
.../components/controls/VizTypeControl/VizTile.tsx | 2 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 2 +-
.../components/controls/VizTypeControl/index.tsx | 3 +-
.../components/controls/XAxisSortControl.tsx | 16 +-
.../ZoomConfigControl/ZoomConfigControl.tsx | 2 +-
.../ZoomConfigControl/ZoomConfigsChart.tsx | 2 +-
.../components/controls/withAsyncVerification.tsx | 3 +-
.../DashboardsSubMenu.tsx | 2 +-
.../useExploreAdditionalActionsMenu/index.jsx | 30 +-
superset-frontend/src/explore/constants.ts | 2 +-
.../src/explore/controlPanels/Separator.ts | 3 +-
.../src/explore/controlPanels/sections.tsx | 2 +-
.../src/explore/controlUtils/controlUtils.test.tsx | 2 +-
.../src/explore/controlUtils/getColumnKeywords.tsx | 2 +-
.../explore/controlUtils/standardizedFormData.ts | 24 +-
.../src/explore/{controls.jsx => controls.tsx} | 81 +-
.../src/explore/exploreUtils/exportChart.test.ts | 173 ++++
superset-frontend/src/explore/fixtures.tsx | 3 +-
.../src/explore/{store.test.jsx => store.test.tsx} | 5 +-
.../src/explore/{store.js => store.ts} | 62 +-
.../src/extensions/ExtensionPlaceholder.tsx | 2 +-
.../src/extensions/ExtensionsList.tsx | 2 +-
.../src/extensions/ExtensionsManager.ts | 3 +-
.../src/extensions/ExtensionsStartup.test.tsx | 4 +-
.../src/extensions/ExtensionsStartup.tsx | 17 +-
.../src/features/alerts/AlertReportModal.tsx | 2 +-
.../alerts/components/AlertReportCronScheduler.tsx | 2 +-
.../features/alerts/components/AlertStatusIcon.tsx | 2 +-
.../alerts/components/NotificationMethod.tsx | 2 +-
.../src/features/allEntities/AllEntitiesTable.tsx | 2 +-
.../annotationLayers/AnnotationLayerModal.tsx | 2 +-
.../src/features/annotations/AnnotationModal.tsx | 2 +-
.../src/features/charts/ChartCard.tsx | 3 +-
.../src/features/cssTemplates/CssTemplateModal.tsx | 2 +-
.../src/features/dashboards/DashboardCard.tsx | 2 +-
.../DatabaseConnectionForm/CommonParameters.tsx | 2 +-
.../DatabaseConnectionForm/EncryptedField.tsx | 2 +-
.../DatabaseConnectionForm/TableCatalog.tsx | 2 +-
.../DatabaseConnectionForm/ValidatedInputField.tsx | 2 +-
.../databases/DatabaseModal/ExtraOptions.test.tsx | 2 +-
.../databases/DatabaseModal/ExtraOptions.tsx | 2 +-
.../databases/DatabaseModal/ModalHeader.tsx | 2 +-
.../databases/DatabaseModal/SSHTunnelForm.tsx | 3 +-
.../databases/DatabaseModal/SSHTunnelSwitch.tsx | 3 +-
.../databases/DatabaseModal/SqlAlchemyForm.tsx | 2 +-
.../src/features/databases/DatabaseModal/index.tsx | 3 +-
.../databases/UploadDataModel/ColumnsPreview.tsx | 2 +-
.../features/databases/UploadDataModel/index.tsx | 3 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 27 +-
.../AddDataset/DatasetPanel/MessageContent.tsx | 5 +-
.../datasets/AddDataset/DatasetPanel/index.tsx | 4 +-
.../datasets/AddDataset/EditDataset/index.tsx | 2 +-
.../features/datasets/AddDataset/Footer/index.tsx | 2 +-
.../features/datasets/AddDataset/Header/index.tsx | 2 +-
.../datasets/AddDataset/LeftPanel/index.tsx | 2 +-
.../features/datasets/DatasetSelectLabel/index.tsx | 2 +-
.../features/datasets/DuplicateDatasetModal.tsx | 2 +-
.../src/features/datasets/constants.ts | 2 +-
.../src/features/datasets/hooks/useDatasetLists.ts | 4 +-
.../datasets/hooks/useGetDatasetRelatedCounts.ts | 4 +-
.../datasets/metadataBar/useDatasetMetadataBar.tsx | 2 +-
.../src/features/groups/GroupListModal.tsx | 2 +-
superset-frontend/src/features/groups/utils.ts | 3 +-
.../src/features/home/ActivityTable.tsx | 2 +-
superset-frontend/src/features/home/ChartTable.tsx | 2 +-
.../src/features/home/DashboardTable.tsx | 3 +-
superset-frontend/src/features/home/EmptyState.tsx | 2 +-
.../src/features/home/LanguagePicker.tsx | 2 +-
.../src/features/home/RightMenu.test.tsx | 7 +-
superset-frontend/src/features/home/RightMenu.tsx | 24 +-
.../src/features/home/SavedQueries.tsx | 46 +-
superset-frontend/src/features/home/SubMenu.tsx | 2 +-
.../src/features/home/commonMenuData.ts | 2 +-
.../src/features/queries/QueryPreviewModal.tsx | 2 +-
.../features/queries/SavedQueryPreviewModal.tsx | 2 +-
.../src/features/queries/SyntaxHighlighterCopy.tsx | 2 +-
.../ReportModal/HeaderReportDropdown/index.tsx | 2 +-
.../src/features/reports/ReportModal/actions.js | 3 +-
.../src/features/reports/ReportModal/index.tsx | 3 +-
.../src/features/rls/RowLevelSecurityModal.tsx | 3 +-
superset-frontend/src/features/rls/constants.ts | 2 +-
.../src/features/roles/RoleFormItems.tsx | 2 +-
.../src/features/roles/RoleListAddModal.tsx | 2 +-
.../src/features/roles/RoleListDuplicateModal.tsx | 2 +-
.../src/features/roles/RoleListEditModal.tsx | 2 +-
.../src/features/tags/BulkTagModal.tsx | 3 +-
superset-frontend/src/features/tags/TagCard.tsx | 3 +-
superset-frontend/src/features/tags/TagModal.tsx | 3 +-
.../src/features/themes/ThemeModal.tsx | 2 +-
.../src/features/userInfo/UserInfoModal.tsx | 3 +-
.../src/features/users/UserListModal.tsx | 2 +-
superset-frontend/src/features/users/utils.ts | 3 +-
.../filters/components/Range/RangeFilterPlugin.tsx | 2 +-
.../src/filters/components/Range/controlPanel.ts | 2 +-
.../src/filters/components/Range/index.ts | 3 +-
.../components/Select/SelectFilterPlugin.tsx | 4 +-
.../src/filters/components/Select/controlPanel.ts | 3 +-
.../src/filters/components/Select/index.ts | 3 +-
.../src/filters/components/Time/controlPanel.ts | 2 +-
.../src/filters/components/Time/index.ts | 3 +-
.../TimeColumn/TimeColumnFilterPlugin.tsx | 3 +-
.../filters/components/TimeColumn/controlPanel.ts | 2 +-
.../src/filters/components/TimeColumn/index.ts | 3 +-
.../components/TimeGrain/TimeGrainFilterPlugin.tsx | 4 +-
.../filters/components/TimeGrain/controlPanel.ts | 2 +-
.../src/filters/components/TimeGrain/index.ts | 3 +-
.../src/hooks/apiResources/datasets.ts | 2 +-
superset-frontend/src/hooks/useThemeMenuItems.tsx | 2 +-
.../src/hooks/useUnsavedChangesPrompt/index.ts | 3 +-
superset-frontend/src/middleware/asyncEvent.ts | 2 +-
superset-frontend/src/pages/ActionLog/index.tsx | 2 +-
.../src/pages/AlertReportList/index.tsx | 2 +-
superset-frontend/src/pages/AllEntities/index.tsx | 2 +-
.../src/pages/AnnotationLayerList/index.tsx | 3 +-
.../src/pages/AnnotationList/index.tsx | 3 +-
superset-frontend/src/pages/Chart/index.tsx | 2 +-
.../src/pages/ChartCreation/index.tsx | 3 +-
superset-frontend/src/pages/ChartList/index.tsx | 2 +-
.../src/pages/CssTemplateList/index.tsx | 3 +-
.../src/pages/DashboardList/index.tsx | 2 +-
superset-frontend/src/pages/DatabaseList/index.tsx | 3 +-
superset-frontend/src/pages/DatasetList/index.tsx | 3 +-
.../src/pages/ExecutionLogList/index.tsx | 2 +-
superset-frontend/src/pages/GroupsList/index.tsx | 2 +-
superset-frontend/src/pages/Home/index.tsx | 2 +-
superset-frontend/src/pages/Login/index.tsx | 3 +-
.../src/pages/QueryHistoryList/index.tsx | 3 +-
superset-frontend/src/pages/Register/index.tsx | 3 +-
superset-frontend/src/pages/RolesList/index.tsx | 3 +-
.../src/pages/RowLevelSecurityList/index.tsx | 3 +-
.../src/pages/SavedQueryList/index.tsx | 2 +-
superset-frontend/src/pages/Tags/index.tsx | 3 +-
superset-frontend/src/pages/ThemeList/index.tsx | 3 +-
superset-frontend/src/pages/UserInfo/index.tsx | 3 +-
.../src/pages/UserRegistrations/index.tsx | 3 +-
superset-frontend/src/pages/UsersList/index.tsx | 2 +-
superset-frontend/src/preamble.ts | 10 +-
superset-frontend/src/setup/setupClient.ts | 3 +-
superset-frontend/src/types/bootstrapTypes.ts | 4 +-
superset-frontend/src/utils/downloadAsImage.tsx | 2 +-
superset-frontend/src/utils/downloadAsPdf.ts | 3 +-
superset-frontend/src/utils/export.test.ts | 57 +-
superset-frontend/src/utils/export.ts | 8 +-
superset-frontend/src/utils/fetchOptions.ts | 3 +-
.../utils/getChartRequiredFieldsMissingMessage.ts | 2 +-
superset-frontend/src/utils/urlUtils.ts | 67 +-
superset-frontend/src/views/CRUD/hooks.ts | 2 +-
superset-frontend/src/views/CRUD/utils.tsx | 3 +-
.../src/visualizations/TimeTable/TimeTable.tsx | 2 +-
.../TimeTable/config/controlPanel/controlPanel.ts | 3 +-
.../src/visualizations/TimeTable/index.ts | 3 +-
.../ExampleComponent/ExampleComponent.tsx | 3 +-
superset-websocket/package-lock.json | 447 +++++-----
superset-websocket/package.json | 14 +-
.../utils/client-ws-app/package-lock.json | 12 +-
superset/charts/schemas.py | 7 +
superset/commands/database/validate_sql.py | 44 +
superset/commands/report/alert.py | 66 +-
superset/commands/report/create.py | 35 +
superset/commands/report/exceptions.py | 15 +
superset/commands/report/execute.py | 18 +-
superset/commands/streaming_export/base.py | 55 +-
superset/common/query_context_processor.py | 1 +
superset/common/utils/query_cache_manager.py | 11 +
superset/dashboards/schemas.py | 2 +
superset/db_engine_specs/athena.py | 40 +
superset/db_engine_specs/base.py | 6 +-
superset/db_engine_specs/gsheets.py | 33 +
superset/db_engine_specs/starrocks.py | 155 +++-
superset/db_engine_specs/trino.py | 61 +-
superset/extensions/local_extensions_watcher.py | 33 +-
superset/jinja_context.py | 19 +-
superset/mcp_service/CLAUDE.md | 6 +-
superset/mcp_service/__main__.py | 2 +-
superset/mcp_service/app.py | 24 +-
superset/mcp_service/chart/schemas.py | 76 +-
superset/mcp_service/chart/tool/__init__.py | 2 -
superset/mcp_service/chart/tool/generate_chart.py | 6 +-
.../chart/tool/get_chart_available_filters.py | 50 --
superset/mcp_service/chart/tool/get_chart_data.py | 95 +-
superset/mcp_service/chart/tool/list_charts.py | 42 +-
superset/mcp_service/common/schema_discovery.py | 422 +++++++++
superset/mcp_service/dashboard/schemas.py | 56 +-
superset/mcp_service/dashboard/tool/__init__.py | 2 -
.../tool/get_dashboard_available_filters.py | 49 --
.../mcp_service/dashboard/tool/list_dashboards.py | 68 +-
superset/mcp_service/dataset/schemas.py | 61 +-
superset/mcp_service/dataset/tool/__init__.py | 2 -
.../dataset/tool/get_dataset_available_filters.py | 49 --
superset/mcp_service/dataset/tool/list_datasets.py | 43 +-
.../mcp_service/docs/tool-search-optimization.md | 2 +-
superset/mcp_service/mcp_core.py | 120 ++-
superset/mcp_service/server.py | 4 +-
superset/mcp_service/system/resources/__init__.py | 5 +-
.../system/resources/schema_discovery.py | 196 +++++
superset/mcp_service/system/tool/__init__.py | 2 +
superset/mcp_service/system/tool/get_schema.py | 167 ++++
superset/mcp_service/system/tool/health_check.py | 3 +-
superset/models/helpers.py | 20 +-
superset/reports/schemas.py | 2 +-
superset/security/manager.py | 97 ++-
superset/sql/parse.py | 2 +-
superset/sqllab/query_render.py | 23 +-
superset/utils/core.py | 1 +
superset/utils/date_parser.py | 10 +-
superset/utils/excel.py | 2 +-
superset/views/datasource/utils.py | 6 +
superset/views/utils.py | 2 +-
tests/integration_tests/databases/api_tests.py | 109 +++
tests/integration_tests/fixtures/__init__.py | 1 +
tests/integration_tests/fixtures/public_role.py | 18 +
tests/integration_tests/reports/alert_tests.py | 8 +-
tests/integration_tests/security_tests.py | 99 +++
.../commands/databases/validate_sql_test.py | 279 ++++++
tests/unit_tests/commands/report/alert_test.py | 496 +++++++++++
.../commands/report/test_create_recipients.py | 179 ++++
tests/unit_tests/db_engine_specs/test_athena.py | 70 ++
tests/unit_tests/db_engine_specs/test_base.py | 49 ++
tests/unit_tests/db_engine_specs/test_gsheets.py | 5 +
tests/unit_tests/db_engine_specs/test_starrocks.py | 116 ++-
tests/unit_tests/db_engine_specs/test_trino.py | 309 ++++++-
tests/unit_tests/jinja_context_test.py | 54 ++
.../mcp_service/chart/tool/test_generate_chart.py | 21 +-
.../mcp_service/chart/tool/test_get_chart_data.py | 99 +++
.../mcp_service/chart/tool/test_list_charts.py | 48 +-
.../dashboard/tool/test_dashboard_tools.py | 135 ++-
.../mcp_service/dataset/tool/test_dataset_tools.py | 133 ++-
.../mcp_service/system/tool/test_get_schema.py | 368 ++++++++
.../mcp_service/system/tool/test_mcp_core.py | 152 +++-
.../mcp_service/test_mcp_tool_registration.py | 42 +-
tests/unit_tests/sql/parse_tests.py | 14 +
tests/unit_tests/sql_lab_test.py | 2 +-
tests/unit_tests/utils/date_parser_tests.py | 47 +
.../unit_tests/views/datasource}/__init__.py | 0
tests/unit_tests/views/datasource/utils_test.py | 217 +++++
952 files changed, 20560 insertions(+), 5585 deletions(-)
create mode 100644 docs/netlify.toml
create mode 100644 docs/src/theme/Admonition/Types.js
create mode 100644 docs/static/img/logos/cirrus.svg
create mode 100644
"docs/static/img/logos/hollyland\347\214\233\347\216\233.svg"
create mode 100644 docs/static/img/logos/plaidcloud.svg
create mode 100644 docs/static/img/logos/vlmedia.svg
copy superset/charts/data/query_context_cache_loader.py =>
superset-frontend/netlify.toml (61%)
delete mode 100644
superset-frontend/packages/superset-core/src/api/environment.ts
create mode 100644
superset-frontend/packages/superset-core/src/spec/utils/logging.test.ts
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/README.md (100%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/Translator.ts (98%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/TranslatorSingleton.ts (100%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/index.ts (94%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/types/index.ts (100%)
rename superset-frontend/packages/{superset-ui-core/src =>
superset-core/src/ui}/translation/types/jed.ts (100%)
copy superset-frontend/packages/{superset-ui-core/src/dynamic-plugins =>
superset-core/src/utils}/index.ts (94%)
rename superset-frontend/packages/{superset-ui-core =>
superset-core}/src/utils/logging.ts (95%)
rename superset-frontend/packages/{superset-ui-core =>
superset-core}/types/external.d.ts (100%)
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/Translator.test.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/TranslatorSingleton.test.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/index.test.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/languagePacks/en.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/translation/languagePacks/zh.ts
delete mode 100644
superset-frontend/packages/superset-ui-core/test/utils/logging.test.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/buildQuery.test.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/Scatter/transformProps.test.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/transformUtils.test.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/utils/metricUtils.test.ts
create mode 100644
superset-frontend/plugins/legacy-preset-chart-deckgl/src/layers/utils/metricUtils.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/agGridFilterConverter.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/src/utils/filterStateManager.ts
copy superset-frontend/{src/dashboard/types/chartState.ts =>
plugins/plugin-chart-ag-grid-table/src/utils/getInitialFilterModel.ts} (53%)
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/agGridFilterConverter.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/dateFilterComparator.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/filterStateManager.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-ag-grid-table/test/utils/getInitialFilterModel.test.ts
rename superset-frontend/src/SqlLab/actions/{sqlLab.js => sqlLab.ts} (60%)
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/SqlEditorTopBar.test.tsx
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/index.tsx
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/useDatabaseSelector.test.ts
create mode 100644
superset-frontend/src/SqlLab/components/SqlEditorTopBar/useDatabaseSelector.ts
copy
superset-frontend/src/{explore/components/controls/MetricControl/AggregateOption.test.tsx
=> SqlLab/components/StatusBar/StatusBar.test.tsx} (57%)
create mode 100644 superset-frontend/src/SqlLab/components/StatusBar/index.tsx
delete mode 100644
superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.js
create mode 100644
superset-frontend/src/SqlLab/middlewares/persistSqlLabStateEnhancer.ts
rename superset-frontend/src/SqlLab/reducers/{sqlLab.js => sqlLab.ts} (67%)
copy
superset-frontend/{packages/superset-ui-core/src/components/IconTooltip/IconTooltip.stories.tsx
=> src/components/LastQueriedLabel/index.tsx} (54%)
create mode 100644
superset-frontend/src/components/MenuListExtension/MenuListExtension.test.tsx
create mode 100644 superset-frontend/src/components/MenuListExtension/index.tsx
create mode 100644
superset-frontend/src/components/ViewListExtension/ViewListExtension.test.tsx
copy superset-frontend/src/{core/extensions/index.ts =>
components/ViewListExtension/index.tsx} (55%)
delete mode 100644 superset-frontend/src/core/environment/index.ts
rename
superset-frontend/src/explore/components/controls/AnnotationLayerControl/{AnnotationLayer.jsx
=> AnnotationLayer.tsx} (74%)
rename
superset-frontend/src/explore/components/controls/AnnotationLayerControl/{AnnotationTypes.js
=> AnnotationTypes.ts} (67%)
rename
superset-frontend/src/explore/components/controls/{BoundsControl.test.jsx =>
BoundsControl.test.tsx} (100%)
rename superset-frontend/src/explore/components/controls/{CheckboxControl.jsx
=> CheckboxControl.tsx} (68%)
rename
superset-frontend/src/explore/components/controls/CollectionControl/{index.jsx
=> index.tsx} (66%)
rename
superset-frontend/src/explore/components/controls/DatasourceControl/{index.jsx
=> index.tsx} (80%)
rename
superset-frontend/src/explore/components/controls/DndColumnSelectControl/{DndColumnSelectPopoverTitle.jsx
=> DndColumnSelectPopoverTitle.tsx} (89%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilter/{AdhocFilter.test.js
=> AdhocFilter.test.ts} (100%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilter/{index.js
=> index.ts} (56%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterControl/{index.jsx
=> index.tsx} (70%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/{AdhocFilterEditPopover.test.jsx
=> AdhocFilterEditPopover.test.tsx} (89%)
rename
superset-frontend/src/explore/components/controls/FilterControl/AdhocFilterEditPopover/{index.jsx
=> index.tsx} (73%)
rename
superset-frontend/src/explore/components/controls/FixedOrMetricControl/{index.jsx
=> index.tsx} (69%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetric.test.js
=> AdhocMetric.test.ts} (98%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetric.js
=> AdhocMetric.ts} (62%)
rename
superset-frontend/src/explore/components/controls/MetricControl/AdhocMetricEditPopover/{index.jsx
=> index.tsx} (79%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetricOption.test.jsx
=> AdhocMetricOption.test.tsx} (90%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{AdhocMetricOption.jsx
=> AdhocMetricOption.tsx} (63%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{FilterDefinitionOption.test.jsx
=> FilterDefinitionOption.test.tsx} (94%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{FilterDefinitionOption.jsx
=> FilterDefinitionOption.tsx} (81%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricDefinitionValue.test.jsx
=> MetricDefinitionValue.test.tsx} (83%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricDefinitionValue.jsx
=> MetricDefinitionValue.tsx} (67%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricsControl.test.jsx
=> MetricsControl.test.tsx} (92%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{MetricsControl.jsx
=> MetricsControl.tsx} (75%)
rename
superset-frontend/src/explore/components/controls/MetricControl/{adhocMetricType.js
=> adhocMetricType.ts} (100%)
rename
superset-frontend/src/explore/components/controls/{SelectControl.test.jsx =>
SelectControl.test.tsx} (94%)
rename superset-frontend/src/explore/components/controls/{SelectControl.jsx =>
SelectControl.tsx} (64%)
rename superset-frontend/src/explore/components/controls/{SpatialControl.jsx
=> SpatialControl.tsx} (71%)
rename
superset-frontend/src/explore/components/controls/{TextAreaControl.test.jsx =>
TextAreaControl.test.tsx} (100%)
rename superset-frontend/src/explore/components/controls/{TextAreaControl.jsx
=> TextAreaControl.tsx} (68%)
rename
superset-frontend/src/explore/components/controls/TimeSeriesColumnControl/{index.jsx
=> index.tsx} (81%)
rename
superset-frontend/src/explore/components/controls/{ViewportControl.test.jsx =>
ViewportControl.test.tsx} (100%)
rename superset-frontend/src/explore/components/controls/{ViewportControl.jsx
=> ViewportControl.tsx} (61%)
rename superset-frontend/src/explore/{controls.jsx => controls.tsx} (87%)
create mode 100644
superset-frontend/src/explore/exploreUtils/exportChart.test.ts
rename superset-frontend/src/explore/{store.test.jsx => store.test.tsx} (95%)
rename superset-frontend/src/explore/{store.js => store.ts} (61%)
delete mode 100644
superset/mcp_service/chart/tool/get_chart_available_filters.py
create mode 100644 superset/mcp_service/common/schema_discovery.py
delete mode 100644
superset/mcp_service/dashboard/tool/get_dashboard_available_filters.py
delete mode 100644
superset/mcp_service/dataset/tool/get_dataset_available_filters.py
create mode 100644 superset/mcp_service/system/resources/schema_discovery.py
create mode 100644 superset/mcp_service/system/tool/get_schema.py
create mode 100644 tests/unit_tests/commands/databases/validate_sql_test.py
create mode 100644 tests/unit_tests/commands/report/alert_test.py
create mode 100644 tests/unit_tests/commands/report/test_create_recipients.py
create mode 100644
tests/unit_tests/mcp_service/chart/tool/test_get_chart_data.py
create mode 100644 tests/unit_tests/mcp_service/system/tool/test_get_schema.py
copy {superset-core/src/superset_core/api =>
tests/unit_tests/views/datasource}/__init__.py (100%)
create mode 100644 tests/unit_tests/views/datasource/utils_test.py