This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch chore/consolidate-copy-to-clipboard
in repository https://gitbox.apache.org/repos/asf/superset.git
discard baef05aabe8 refactor: move clipboard utility to @apache-superset/core
omit ce34fdc7dc8 fix: revert CopyToClipboard move, keep clipboard utility
consolidation
omit 267b0a1f684 fix(tests): properly type clipboard mock functions for
Docker TS build
omit 5a4248c0d3d fix(tests): update clipboard utility mocks for re-exported
modules
omit c424ab19f6e chore: consolidate CopyToClipboard and clipboard utilities
to @superset-ui/core
add 76a27d5360e chore(deps): bump d3-format from 1.4.5 to 3.1.2 in
/superset-frontend/packages/superset-ui-core (#37442)
add 5cea4fb7feb chore(deps): update @luma.gl/shadertools requirement from
~9.2.5 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl
(#37763)
add df253f6aa47 chore(deps-dev): bump @babel/plugin-transform-runtime from
7.28.5 to 7.29.0 in /superset-frontend (#37631)
add b9ab03994ad chore(deps-dev): bump jsdom from 27.4.0 to 28.0.0 in
/superset-frontend (#37688)
add f4708a56484 fix(db): prevent long database error messages from
overflowing UI (#37709)
add 3521f191b24 chore(deps): bump webpack from 5.96.1 to 5.105.0 in
/superset-frontend/cypress-base (#37775)
add c4e7c3b03b7 refactor: consolidating ColorSchemeEnum settings into one
place (#37591)
add 7580bd14015 chore(deps-dev): bump timezone-mock from 1.3.6 to 1.4.0 in
/superset-frontend (#37333)
add c4d2d42b3b0 build(dev-deps): move Webpack-dedicated `js-yaml-loader`
to dev deps section (#37788)
add 563d9f1a3fd chore(lint): migrate Jest lint rules from eslint to oxlint
(#37787)
add 3b75af9ac3b docs(dev_portal/test): remove refs of testing tools not
used in project (#37786)
add 82d6076804b refactor(charts): filter saved metrics by key and label
(#37136)
add ebee9bb3f91 refactor(types): consolidate shared table types and fix
Funnel enum typo (#37768)
add 29aa69b7792 chore(deps): update @luma.gl/engine requirement from
~9.2.5 to ~9.2.6 in /superset-frontend/plugins/legacy-preset-chart-deckgl
(#37762)
add ce872ddaf01 chore(deps-dev): bump @swc/core from 1.14.0 to 1.15.11 in
/superset-frontend (#37511)
add cebdb9e0b7a fix(ListView): add tooltip for layout toggle buttons
(#37581)
add 2b411b32ba0 fix(scatter): Fix ad-hoc metric for pointsize (#37669)
add 15b3c96f8e9 fix(security): Add table blocklist and fix MCP SQL
validation bypass (#37411)
add a1d65c7529c feat(deps): significant `npm audit fix` to trim off
inadvertently runtime dep from upstream libraries (#37220)
add 059b57d784e chore(deps-dev): bump @types/node from 25.2.1 to 25.2.2 in
/superset-frontend (#37801)
add 5125a670025 build(dev-deps): remove `npm` from @apache-superset/core
(#37774)
add f25d95be410 fix: Vertical lines in the middle of Treemap categories
(#37808)
add 6984e93171e fix: SQL Lab improvements and bug fixes (#37760)
add 59dd2fa3857 feat: add global task framework (#36368)
add 43174fdc091 chore: consolidate CopyToClipboard and clipboard utilities
to @superset-ui/core
add 34936ffcdaf fix(tests): update clipboard utility mocks for re-exported
modules
add 6db37572e6d fix(tests): properly type clipboard mock functions for
Docker TS build
add 2a1d13bb9bf fix: revert CopyToClipboard move, keep clipboard utility
consolidation
add 8616f2bd43e refactor: move clipboard utility to @apache-superset/core
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (baef05aabe8)
\
N -- N -- N refs/heads/chore/consolidate-copy-to-clipboard
(8616f2bd43e)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
UPDATING.md | 22 +
docs/developer_portal/extensions/overview.md | 1 +
docs/developer_portal/extensions/registry.md | 2 +-
docs/developer_portal/extensions/tasks.md | 440 ++++++++++++
docs/developer_portal/sidebars.js | 1 +
docs/developer_portal/testing/overview.md | 2 -
docs/docs/configuration/cache.mdx | 84 +++
docs/sidebarTutorials.js | 1 +
superset-core/src/superset_core/api/daos.py | 44 ++
superset-core/src/superset_core/api/models.py | 129 ++++
superset-core/src/superset_core/api/tasks.py | 361 ++++++++++
.../templates/frontend/package.json.j2 | 2 -
superset-frontend/.eslintrc.js | 18 +-
superset-frontend/cypress-base/package-lock.json | 764 ++++++++++-----------
superset-frontend/jest.config.js | 2 +-
superset-frontend/oxlint.json | 21 +-
superset-frontend/package.json | 29 +-
.../packages/superset-core/package.json | 2 -
.../superset-core/src/spec/utils/logging.test.ts | 4 +-
.../superset-ui-chart-controls/src/types.ts | 80 +++
.../src/utils/metricColumnFilter.test.ts | 20 +-
.../test/components/ColumnTypeLabel.test.tsx | 16 +-
.../superset-ui-chart-controls/test/index.test.ts | 2 +-
.../test/operators/aggregateOperator.test.ts | 10 +-
.../test/utils/colorControls.test.ts | 10 +-
.../test/utils/columnChoices.test.tsx | 10 +-
.../test/utils/defineSavedMetrics.test.tsx | 4 +-
.../test/utils/expandControlConfig.test.tsx | 14 +-
.../test/utils/mainMetric.test.ts | 8 +-
.../test/utils/selectOptions.test.ts | 6 +-
.../packages/superset-ui-core/package.json | 7 +-
.../AsyncAceEditor/useJsonValidation.test.ts | 12 +-
.../components/AutoComplete/AutoComplete.test.tsx | 6 +-
.../src/components/Breadcrumb/Breadcrumb.test.tsx | 2 +-
.../components/CachedLabel/CachedLabel.test.tsx | 4 +-
.../src/components/Checkbox/Checkbox.test.tsx | 20 +-
.../CodeSyntaxHighlighter/index.test.tsx | 18 +-
.../src/components/Dropdown/Dropdown.test.tsx | 8 +-
.../DynamicEditableTitle.test.tsx | 8 +-
.../EditableTitle/EditableTitle.test.tsx | 10 +-
.../Form/LabeledErrorBoundInput.test.tsx | 10 +-
.../src/components/Grid/Grid.test.tsx | 2 +-
.../src/components/IconButton/IconButton.test.tsx | 12 +-
.../src/components/Icons/AntdEnhanced.tsx | 2 +
.../src/components/Layout/Layout.test.tsx | 10 +-
.../components/ListViewCard/ImageLoader.test.tsx | 6 +-
.../components/ListViewCard/ListViewCard.test.tsx | 6 +-
.../src/components/Modal/FormModal.test.tsx | 10 +-
.../src/components/Radio/Radio.test.tsx | 2 +-
.../src/components/Select/Select.test.tsx | 14 +-
.../src/components/Skeleton/Skeleton.test.tsx | 6 +-
.../src/components/Tabs/Tabs.test.tsx | 46 +-
.../src/components/Timer/Timer.test.tsx | 2 +-
.../src/components/Tree/Tree.test.tsx | 2 +-
.../src/components/TreeSelect/TreeSelect.test.tsx | 2 +-
.../src/components/Typography/Typography.test.tsx | 14 +-
.../src/components/Upload/Upload.test.tsx | 2 +-
.../src/number-format/D3FormatConfig.ts | 1 +
.../factories/createD3NumberFormatter.ts | 12 +-
.../factories/createSiAtMostNDigitFormatter.ts | 6 +-
.../factories/createSmartNumberFormatter.ts | 10 +-
.../superset-ui-core/src/utils/dates.test.ts | 24 +-
.../superset-ui-core/src/utils/featureFlags.ts | 1 +
.../superset-ui-core/src/utils/html.test.tsx | 74 +-
.../superset-ui-core/src/utils/merge.test.ts | 6 +-
.../chart-composition/legend/WithLegend.test.tsx | 19 +-
.../tooltip/TooltipFrame.test.tsx | 4 +-
.../tooltip/TooltipTable.test.tsx | 6 +-
.../test/chart/clients/ChartClient.test.ts | 32 +-
.../chart/components/ChartDataProvider.test.tsx | 36 +-
.../test/chart/components/SuperChart.test.tsx | 34 +-
.../test/chart/components/SuperChartCore.test.tsx | 28 +-
.../components/createLoadableRenderer.test.tsx | 12 +-
.../test/chart/components/reactify.test.tsx | 18 +-
.../superset-ui-core/test/chart/index.test.ts | 2 +-
.../test/chart/models/ChartMetadata.test.ts | 12 +-
.../test/chart/models/ChartPlugin.test.tsx | 40 +-
.../test/chart/models/ChartProps.test.ts | 14 +-
.../test/color/CategoricalColorNameSpace.test.ts | 48 +-
.../test/color/CategoricalColorScale.test.ts | 68 +-
.../CategoricalSchemeRegistrySingleton.test.ts | 2 +-
.../test/color/ColorScheme.test.ts | 2 +-
.../test/color/ColorSchemeRegistry.test.ts | 8 +-
.../test/color/LabelsColorMapSingleton.test.ts | 42 +-
.../test/color/SequentialScheme.test.ts | 20 +-
.../SequentialSchemeRegistrySingleton.test.ts | 2 +-
.../test/color/colorSchemes.test.ts | 4 +-
.../superset-ui-core/test/color/index.test.ts | 2 +-
.../superset-ui-core/test/color/utils.test.ts | 34 +-
.../Icons/AsyncIcon.integration.test.tsx | 8 +-
.../test/components/SafeMarkdown.test.tsx | 12 +-
.../test/connection/SupersetClient.test.ts | 6 +-
.../test/connection/SupersetClientClass.test.ts | 72 +-
.../test/connection/callApi/callApi.test.ts | 58 +-
.../callApi/callApiAndParseWithTimeout.test.ts | 12 +-
.../test/connection/callApi/parseResponse.test.ts | 16 +-
.../connection/callApi/rejectAfterTimeout.test.ts | 2 +-
.../test/dimension/computeMaxFontSize.test.ts | 10 +-
.../dimension/getMultipleTextDimensions.test.ts | 22 +-
.../test/dimension/getTextDimension.test.ts | 24 +-
.../test/dimension/mergeMargin.test.ts | 18 +-
.../test/dimension/parseLength.test.ts | 10 +-
.../test/dimension/svg/LazyFactory.test.ts | 10 +-
.../test/dimension/svg/getBBoxCeil.test.ts | 8 +-
.../test/dimension/svg/updateTextNode.test.ts | 10 +-
.../test/dynamic-plugins/shared-modules.test.ts | 10 +-
.../packages/superset-ui-core/test/index.test.ts | 2 +-
.../test/models/ExtensibleFunction.test.ts | 8 +-
.../superset-ui-core/test/models/Plugin.test.ts | 18 +-
.../superset-ui-core/test/models/Preset.test.ts | 8 +-
.../superset-ui-core/test/models/Registry.test.ts | 96 +--
.../test/models/RegistryWithDefaultKey.test.ts | 52 +-
.../test/models/TypedRegistry.test.ts | 4 +-
.../test/number-format/NumberFormatter.test.ts | 22 +-
.../number-format/NumberFormatterRegistry.test.ts | 20 +-
.../NumberFormatterRegistrySingleton.test.ts | 16 +-
.../factories/createD3NumberFormatter.test.ts | 30 +-
.../createSiAtMostNDigitFormatter.test.ts | 12 +-
.../factories/createSmartNumberFormatter.test.ts | 47 +-
.../test/number-format/index.test.ts | 2 +-
.../test/query/DatasourceKey.test.ts | 4 +-
.../query/api/legacy/getDatasourceMetadata.test.ts | 2 +-
.../test/query/api/legacy/getFormData.test.ts | 4 +-
.../test/query/api/v1/getChartData.test.ts | 2 +-
.../test/query/api/v1/handleError.test.ts | 26 +-
.../test/query/api/v1/makeApi.test.ts | 26 +-
.../test/query/buildQueryContext.test.ts | 10 +-
.../test/query/buildQueryObject.test.ts | 34 +-
.../test/query/convertFilter.test.ts | 6 +-
.../test/query/extractExtras.test.ts | 6 +-
.../test/query/extractQueryFields.test.ts | 26 +-
.../test/query/extractTimegrain.test.ts | 10 +-
.../test/query/getColumnLabel.test.ts | 6 +-
.../test/query/getMetricLabel.test.ts | 10 +-
.../test/query/normalizeOrderBy.test.ts | 20 +-
.../test/query/processExtraFormData.test.ts | 10 +-
.../test/query/processFilters.test.ts | 8 +-
.../test/query/types/AnnotationLayer.test.ts | 20 +-
.../test/query/types/Filter.test.ts | 16 +-
.../time-comparison/customTimeRangeDecode.test.ts | 22 +-
.../time-comparison/getComparisonFilters.test.ts | 8 +-
.../test/time-comparison/getComparisonInfo.test.ts | 12 +-
.../test/time-comparison/getTimeOffset.test.ts | 46 +-
.../test/time-comparison/index.test.ts | 2 +-
.../test/time-comparison/parseDttmToDate.test.ts | 114 +--
.../test/time-format/TimeFormatter.test.ts | 20 +-
.../test/time-format/TimeFormatterRegistry.test.ts | 32 +-
.../TimeFormatterRegistrySingleton.test.ts | 24 +-
.../factories/createD3TimeFormatter.test.ts | 10 +-
.../factories/createMultiFormatter.test.ts | 64 +-
.../test/time-format/formatters/smartDate.test.ts | 20 +-
.../formatters/smartDateDetailed.test.ts | 24 +-
.../formatters/smartDateVerbose.test.ts | 16 +-
.../test/time-format/index.test.ts | 2 +-
.../test/time-format/utils/createTime.test.ts | 8 +-
.../utils/createTimeRangeFromGranularity.test.ts | 4 +-
.../test/time-format/utils/d3Time.test.ts | 28 +-
.../test/utils/convertKeysToCamelCase.test.ts | 8 +-
.../test/utils/ensureIsArray.test.ts | 2 +-
.../test/utils/ensureIsInt.test.ts | 2 +-
.../superset-ui-core/test/utils/isDefined.test.ts | 4 +-
.../superset-ui-core/test/utils/isRequired.test.ts | 2 +-
.../test/utils/makeSingleton.test.ts | 8 +-
.../test/utils/promiseTimeout.test.ts | 4 +-
.../superset-ui-core/test/utils/random.test.ts | 4 +-
.../test/utils/removeDuplicates.test.ts | 4 +-
.../test/validator/legacyValidateInteger.test.ts | 4 +-
.../test/validator/legacyValidateNumber.test.ts | 4 +-
.../test/validator/validateInteger.test.ts | 4 +-
.../test/validator/validateMapboxStylesUrl.test.ts | 4 +-
.../test/validator/validateNonEmpty.test.ts | 4 +-
.../test/validator/validateNumber.test.ts | 4 +-
.../validateTimeComparisonRangeValues.test.ts | 4 +-
.../src/switchboard.test.ts | 26 +-
.../experimental/dataset/dataset-list.spec.ts | 4 +-
.../test/utils.test.ts | 14 +-
.../test/CountryMap.test.tsx | 6 +-
.../test/utils/roundDecimal.test.ts | 2 +-
.../test/OptionDescription.test.tsx | 4 +-
.../test/WorldMap.test.ts | 8 +-
.../legacy-preset-chart-deckgl/package.json | 4 +-
.../src/Multi/Multi.test.tsx | 36 +-
.../src/layers/Contour/getSafeCellSize.test.ts | 12 +-
.../src/layers/Path/Path.test.tsx | 3 +-
.../src/layers/Polygon/Polygon.test.tsx | 22 +-
.../src/layers/Scatter/buildQuery.test.ts | 245 ++++++-
.../src/layers/Scatter/buildQuery.ts | 44 +-
.../src/layers/buildQueryUtils.ts | 4 -
.../src/layers/common.test.ts | 42 +-
.../src/layers/spatialUtils.test.ts | 54 +-
.../legacy-preset-chart-deckgl/src/utils.test.ts | 48 +-
.../src/utils/crossFiltersDataMask.test.ts | 14 +-
.../test/utils/colors.test.ts | 2 +-
.../test/utils/getPointsFromPolygon.test.ts | 4 +-
.../legacy-preset-chart-nvd3/test/utils.test.ts | 18 +-
.../test/utils/isTruthy.test.ts | 12 +-
.../test/utils/tokenize.test.ts | 14 +-
.../src/controlPanel.tsx | 2 +-
.../src/transformProps.ts | 2 +-
.../plugin-chart-ag-grid-table/src/types.ts | 86 +--
.../test/buildQuery.test.ts | 120 ++--
.../test/controlPanel.test.tsx | 2 +-
.../test/utils/agGridFilterConverter.test.ts | 90 +--
.../test/utils/filterStateManager.test.ts | 40 +-
.../test/utils/getInitialFilterModel.test.ts | 42 +-
.../test/components/chartLayer.test.ts | 4 +-
.../plugin-chart-cartodiagram/test/index.test.ts | 2 +-
.../test/plugin/buildQuery.test.ts | 4 +-
.../test/plugin/index.test.ts | 2 +-
.../test/plugin/transformProps.test.ts | 4 +-
.../test/util/chartUtil.test.ts | 6 +-
.../test/util/controlPanelUtil.test.tsx | 12 +-
.../test/util/geometryUtil.test.ts | 6 +-
.../test/util/layerUtil.test.ts | 8 +-
.../test/util/mapUtil.test.ts | 2 +-
.../test/util/serviceUtil.test.ts | 8 +-
.../test/util/transformPropsUtil.test.ts | 34 +-
.../BigNumber/BigNumberPeriodOverPeriod/PopKPI.tsx | 6 +-
.../BigNumberPeriodOverPeriod/controlPanel.ts | 2 +-
.../BigNumber/BigNumberPeriodOverPeriod/types.ts | 5 -
.../BigNumber/BigNumberTotal/controlPanel.test.ts | 6 +-
.../BigNumberTotal/transformProps.test.ts | 14 +-
.../BigNumberWithTrendline/buildQuery.test.ts | 8 +-
.../BigNumberWithTrendline/transformProps.test.ts | 12 +-
.../src/Funnel/controlPanel.tsx | 28 +-
.../src/Funnel/transformProps.ts | 18 +-
.../plugin-chart-echarts/src/Funnel/types.ts | 10 +-
.../src/Timeseries/EchartsTimeseries.test.tsx | 7 +-
.../src/Treemap/transformProps.ts | 2 -
.../src/utils/themeOverrides.test.ts | 14 +-
.../test/BigNumber/transformProps.test.ts | 34 +-
.../test/BoxPlot/buildQuery.test.ts | 4 +-
.../test/BoxPlot/transformProps.test.ts | 2 +-
.../test/Bubble/buildQuery.test.ts | 4 +-
.../test/Bubble/transformProps.test.ts | 14 +-
.../test/Funnel/buildQuery.test.ts | 2 +-
.../test/Funnel/transformProps.test.ts | 10 +-
.../test/Gantt/buildQuery.test.ts | 2 +-
.../test/Gantt/transformProps.test.ts | 8 +-
.../test/Gauge/buildQuery.test.ts | 6 +-
.../test/Gauge/transformProps.test.ts | 36 +-
.../test/Graph/buildQuery.test.ts | 8 +-
.../test/Graph/transformProps.test.ts | 10 +-
.../test/MixedTimeseries/transformProps.test.ts | 6 +-
.../test/Pie/buildQuery.test.ts | 2 +-
.../test/Pie/transformProps.test.ts | 32 +-
.../test/Radar/transformProps.test.ts | 8 +-
.../test/Timeseries/Bar/controlPanel.test.ts | 14 +-
.../test/Timeseries/Bar/transformProps.test.ts | 24 +-
.../test/Timeseries/buildQuery.test.ts | 10 +-
.../test/Timeseries/constants.test.ts | 8 +-
.../test/Timeseries/transformProps.test.ts | 28 +-
.../test/Timeseries/transformers.test.ts | 34 +-
.../test/Tree/buildQuery.test.ts | 4 +-
.../test/Tree/transformProps.test.ts | 10 +-
.../test/Treemap/buildQuery.test.ts | 2 +-
.../test/Treemap/transformProps.test.ts | 2 +-
.../test/Waterfall/buildQuery.test.ts | 2 +-
.../test/utils/annotation.test.ts | 16 +-
.../test/utils/controls.test.ts | 4 +-
.../test/utils/forecast.test.ts | 14 +-
.../test/utils/formatters.test.ts | 6 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 80 +--
.../test/utils/transformers.test.ts | 16 +-
.../test/utils/treeBuilder.test.ts | 4 +-
.../plugin-chart-handlebars/test/index.test.ts | 2 +-
.../test/plugin/buildQuery.test.ts | 2 +-
.../test/plugin/transformProps.test.ts | 2 +-
.../plugin-chart-pivot-table/test/index.test.ts | 2 +-
.../test/plugin/transformProps.test.ts | 12 +-
.../plugins/plugin-chart-table/src/TableChart.tsx | 3 +-
.../plugin-chart-table/src/controlPanel.tsx | 2 +-
.../plugin-chart-table/src/transformProps.ts | 2 +-
.../plugins/plugin-chart-table/src/types.ts | 91 +--
.../plugin-chart-table/test/TableChart.test.tsx | 4 +-
.../plugin-chart-table/test/buildQuery.test.ts | 26 +-
.../plugin-chart-table/test/controlPanel.test.tsx | 2 +-
.../test/sortAlphanumericCaseInsensitive.test.ts | 4 +-
.../test/buildQuery.test.ts | 2 +-
superset-frontend/src/.eslintrc.json | 11 -
.../src/SqlLab/actions/sqlLab.test.ts | 1 +
.../SaveDatasetModal/SaveDatasetModal.test.tsx | 3 +-
.../TableExploreTree/TreeNodeRenderer.tsx | 2 +-
.../SqlLab/components/TableExploreTree/index.tsx | 63 +-
.../src/components/AuditInfo/index.tsx | 25 +-
.../src/components/AuditInfo/types.ts | 2 +-
.../ChartContextMenu/ChartContextMenu.test.tsx | 6 +-
.../src/components/Chart/chartActions.test.ts | 2 +-
.../useDrillDetailMenuItems.test.tsx | 1 +
.../src/components/ListView/ListView.tsx | 54 +-
.../src/components/MessageToasts/Toast.tsx | 18 +-
.../components/MessageToasts/ToastPresenter.tsx | 59 +-
.../src/components/PanelToolbar/index.tsx | 2 +-
.../ViewListExtension/ViewListExtension.test.tsx | 5 +-
superset-frontend/src/components/index.ts | 2 +-
.../src/core/editors/AceEditorProvider.test.tsx | 3 +-
.../src/core/editors/AceEditorProvider.tsx | 20 +-
.../src/core/editors/EditorHost.test.tsx | 14 +-
.../src/dashboard/components/Dashboard.test.tsx | 14 +-
.../components/gridComponents/Chart/Chart.test.tsx | 1 +
.../gridComponents/Column/Column.test.tsx | 2 +
.../gridComponents/Header/Header.test.tsx | 2 +-
.../components/gridComponents/Row/Row.test.tsx | 71 +-
.../components/gridComponents/Tab/Tab.test.tsx | 2 +-
.../FilterControls/FilterControls.test.tsx | 2 +-
.../src/dashboard/util/dropOverflowsParent.test.ts | 14 +-
.../util/getChartIdsInFilterScope.test.ts | 66 +-
.../src/dashboard/util/getDropPosition.test.ts | 10 +-
.../ExploreChartPanel/ExploreChartPanel.test.tsx | 2 +-
.../src/explore/components/SaveModal.test.tsx | 22 +-
.../FormattingPopoverContent.test.tsx | 3 +-
.../FormattingPopoverContent.tsx | 8 +-
.../DatasourceControl/DatasourceControl.test.tsx | 14 +-
.../ColumnSelectPopover.test.tsx | 128 +++-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 13 +
.../AdhocFilterEditPopover.test.tsx | 1 +
.../AdhocMetricEditPopover.test.tsx | 158 +++++
.../MetricControl/AdhocMetricEditPopover/index.tsx | 6 +
.../src/features/tasks/TaskPayloadPopover.tsx | 76 ++
.../src/features/tasks/TaskStackTracePopover.tsx | 137 ++++
.../src/features/tasks/TaskStatusIcon.tsx | 145 ++++
.../src/features/tasks/timeUtils.test.ts | 145 ++++
superset-frontend/src/features/tasks/timeUtils.ts | 151 ++++
superset-frontend/src/features/tasks/types.ts | 115 ++++
.../DatasetList/DatasetList.behavior.test.tsx | 2 +-
.../DatasetList/DatasetList.integration.test.tsx | 2 +-
.../DatasetList/DatasetList.listview.test.tsx | 6 +-
.../src/pages/DatasetList/DatasetList.test.tsx | 4 +-
.../src/pages/FileHandler/index.test.tsx | 4 +-
.../src/pages/TaskList/TaskList.test.tsx | 328 +++++++++
superset-frontend/src/pages/TaskList/index.tsx | 658 ++++++++++++++++++
superset-frontend/src/utils/assetUrl.test.ts | 4 +-
superset-frontend/src/views/routes.tsx | 9 +
superset-frontend/webpack.config.js | 6 +
superset/async_events/cache_backend.py | 144 +++-
superset/commands/distributed_lock/__init__.py | 24 +
superset/commands/distributed_lock/acquire.py | 132 ++++
superset/commands/distributed_lock/base.py | 41 +-
superset/commands/distributed_lock/create.py | 64 --
superset/commands/distributed_lock/delete.py | 49 --
superset/commands/distributed_lock/get.py | 45 --
superset/commands/distributed_lock/release.py | 83 +++
.../dashboard/tool => commands/tasks}/__init__.py | 16 +-
superset/commands/tasks/cancel.py | 314 +++++++++
superset/commands/tasks/exceptions.py | 106 +++
superset/commands/tasks/internal_update.py | 184 +++++
superset/commands/{logs => tasks}/prune.py | 45 +-
superset/commands/tasks/submit.py | 168 +++++
superset/commands/tasks/update.py | 170 +++++
superset/config.py | 93 +++
superset/core/api/core_api_injection.py | 37 +-
superset/daos/chart.py | 5 +-
superset/daos/tasks.py | 470 +++++++++++++
superset/distributed_lock/__init__.py | 63 +-
superset/exceptions.py | 21 +-
superset/extensions/local_extensions_watcher.py | 5 +-
superset/initialization/__init__.py | 26 +
.../versions/2025_12_18_0220_create_tasks_table.py | 221 ++++++
superset/models/task_subscribers.py | 62 ++
superset/models/tasks.py | 367 ++++++++++
superset/sql/execution/celery_task.py | 5 +-
superset/sql/execution/executor.py | 41 +-
superset/sql/parse.py | 40 ++
superset/sql_lab.py | 15 +
superset/sqllab/utils.py | 3 +
superset/tasks/ambient_context.py | 87 +++
superset/tasks/api.py | 471 +++++++++++++
superset/tasks/constants.py | 54 ++
superset/tasks/context.py | 673 ++++++++++++++++++
superset/tasks/decorators.py | 609 ++++++++++++++++
superset/tasks/filters.py | 112 +++
superset/tasks/locks.py | 81 +++
superset/tasks/manager.py | 764 +++++++++++++++++++++
superset/tasks/registry.py | 110 +++
superset/tasks/scheduler.py | 257 +++++++
superset/tasks/schemas.py | 200 ++++++
superset/tasks/types.py | 2 +
superset/tasks/utils.py | 176 ++++-
superset/utils/cache_manager.py | 55 +-
superset/utils/log.py | 5 +-
superset/utils/oauth2.py | 10 +-
superset/views/{chart/views.py => tasks.py} | 11 +-
tests/integration_tests/superset_test_config.py | 1 +
tests/integration_tests/tasks/api_tests.py | 538 +++++++++++++++
.../integration_tests/tasks/commands}/__init__.py | 0
.../tasks/commands/test_cancel.py | 482 +++++++++++++
.../tasks/commands/test_internal_update.py | 419 +++++++++++
.../integration_tests/tasks/commands/test_prune.py | 258 +++++++
.../tasks/commands/test_submit.py | 238 +++++++
.../tasks/commands/test_update.py | 260 +++++++
.../integration_tests/tasks/test_event_handlers.py | 415 +++++++++++
.../integration_tests/tasks/test_sync_join_wait.py | 158 +++++
tests/integration_tests/tasks/test_throttling.py | 172 +++++
tests/integration_tests/tasks/test_timeout.py | 226 ++++++
tests/unit_tests/daos/test_tasks.py | 420 +++++++++++
.../distributed_lock/distributed_lock_tests.py | 158 ++++-
tests/unit_tests/sql/execution/test_executor.py | 73 +-
tests/unit_tests/sql/parse_tests.py | 33 +
tests/unit_tests/tasks/test_decorators.py | 477 +++++++++++++
tests/unit_tests/tasks/test_handlers.py | 677 ++++++++++++++++++
tests/unit_tests/tasks/test_manager.py | 462 +++++++++++++
tests/unit_tests/tasks/test_timeout.py | 612 +++++++++++++++++
tests/unit_tests/tasks/test_utils.py | 249 +++++++
tests/unit_tests/utils/json_tests.py | 2 +-
tests/unit_tests/utils/oauth2_tests.py | 6 +-
405 files changed, 18896 insertions(+), 3060 deletions(-)
create mode 100644 docs/developer_portal/extensions/tasks.md
create mode 100644 superset-core/src/superset_core/api/tasks.py
delete mode 100644 superset-frontend/src/.eslintrc.json
create mode 100644 superset-frontend/src/features/tasks/TaskPayloadPopover.tsx
create mode 100644
superset-frontend/src/features/tasks/TaskStackTracePopover.tsx
create mode 100644 superset-frontend/src/features/tasks/TaskStatusIcon.tsx
create mode 100644 superset-frontend/src/features/tasks/timeUtils.test.ts
create mode 100644 superset-frontend/src/features/tasks/timeUtils.ts
create mode 100644 superset-frontend/src/features/tasks/types.ts
create mode 100644 superset-frontend/src/pages/TaskList/TaskList.test.tsx
create mode 100644 superset-frontend/src/pages/TaskList/index.tsx
create mode 100644 superset/commands/distributed_lock/acquire.py
delete mode 100644 superset/commands/distributed_lock/create.py
delete mode 100644 superset/commands/distributed_lock/delete.py
delete mode 100644 superset/commands/distributed_lock/get.py
create mode 100644 superset/commands/distributed_lock/release.py
copy superset/{mcp_service/dashboard/tool => commands/tasks}/__init__.py (70%)
create mode 100644 superset/commands/tasks/cancel.py
create mode 100644 superset/commands/tasks/exceptions.py
create mode 100644 superset/commands/tasks/internal_update.py
copy superset/commands/{logs => tasks}/prune.py (74%)
create mode 100644 superset/commands/tasks/submit.py
create mode 100644 superset/commands/tasks/update.py
create mode 100644 superset/daos/tasks.py
create mode 100644
superset/migrations/versions/2025_12_18_0220_create_tasks_table.py
create mode 100644 superset/models/task_subscribers.py
create mode 100644 superset/models/tasks.py
create mode 100644 superset/tasks/ambient_context.py
create mode 100644 superset/tasks/api.py
create mode 100644 superset/tasks/constants.py
create mode 100644 superset/tasks/context.py
create mode 100644 superset/tasks/decorators.py
create mode 100644 superset/tasks/filters.py
create mode 100644 superset/tasks/locks.py
create mode 100644 superset/tasks/manager.py
create mode 100644 superset/tasks/registry.py
create mode 100644 superset/tasks/schemas.py
copy superset/views/{chart/views.py => tasks.py} (84%)
create mode 100644 tests/integration_tests/tasks/api_tests.py
copy {superset-core/src/superset_core/api =>
tests/integration_tests/tasks/commands}/__init__.py (100%)
create mode 100644 tests/integration_tests/tasks/commands/test_cancel.py
create mode 100644
tests/integration_tests/tasks/commands/test_internal_update.py
create mode 100644 tests/integration_tests/tasks/commands/test_prune.py
create mode 100644 tests/integration_tests/tasks/commands/test_submit.py
create mode 100644 tests/integration_tests/tasks/commands/test_update.py
create mode 100644 tests/integration_tests/tasks/test_event_handlers.py
create mode 100644 tests/integration_tests/tasks/test_sync_join_wait.py
create mode 100644 tests/integration_tests/tasks/test_throttling.py
create mode 100644 tests/integration_tests/tasks/test_timeout.py
create mode 100644 tests/unit_tests/daos/test_tasks.py
create mode 100644 tests/unit_tests/tasks/test_decorators.py
create mode 100644 tests/unit_tests/tasks/test_handlers.py
create mode 100644 tests/unit_tests/tasks/test_manager.py
create mode 100644 tests/unit_tests/tasks/test_timeout.py