This is an automated email from the ASF dual-hosted git repository.
rebenitez1802 pushed a change to branch rebenitez1802/hand-off-plan-analyze
in repository https://gitbox.apache.org/repos/asf/superset.git
from 4b8842730ec fix(mcp): match dropdown row limit and support ClickHouse
choice search
add 578d43fef9b fix(listview): prevent table column layout shift on
content change (#37299)
add 97a536f37d9 feat(echarts): allow configuring minInterval on bar and
line chart axes (#43515)
add dfd84bf3d9e fix(mcp): only serve the browser hello page on the MCP
endpoint (#45391)
add 7fceb05c1ce docs(docker): drop redundant packages from custom image
example, bump version numbers (#44240)
add aabddf5b3f5 fix(semantic-layers): cap and time-bound bulk semantic
view creation (#45532)
add 2c275ed0a5b fix(echarts): restore series color markers in sanitized
tooltips (#45505)
add 98fac9104fb fix(datasets): validate metric d3format (#45633)
add bf18152476a chore: stop forcing .ipynb as a binary attribute (#45602)
add 87d1abb21e6 chore(frontend): let JEST_MAX_WORKERS cap the Jest worker
pool locally (#45594)
add 5cfcee95b4e fix(import): return 400 instead of 500 on malformed JSON
in import form fields (#45579)
add 44be9b819dd fix(bigquery): return empty extra metadata instead of 500
when table is not found (#45634)
add 0689df740e2 fix(sql-lab): return 400 instead of 500 when stop_query is
missing client_id (#45521)
add 3b7001836c7 fix(charts): keep large nullable-integer dimensions exact
(#45308)
add 43006c1d054 fix(explore): omit constant Custom SQL dimensions from
GROUP BY (#45271)
add be40309811d fix: filter Sunburst temporal segments by bucket and
invert Hours offset in grained filters (#45598)
add d595becba71 test(explore): cover column config, conditional
formatting, and contour controls (#44843)
add b1c1d41b55f ci(docker): give the CI node image the workspace manifests
so jobs stop reinstalling (#45606)
add 8cd2ab1c2ca chore(deps): bump the security group across 2 directories
with 1 update (#45645)
add 2f6d51e7ae3 chore(deps-dev): bump vitest from 5.0.3 to 5.0.4 in
/superset-websocket (#45629)
add b4e592836a9 chore(deps-dev): bump jsdom from 30.1.2 to 30.1.3 in
/superset-frontend (#45628)
add 30df96241ff chore(deps): bump antd from 6.6.5 to 6.6.6 in
/superset-frontend (#45627)
add f5eaf7c4f7c chore(deps): bump postcss from 8.5.28 to 8.5.30 in
/superset-frontend (#45626)
add c505b8b4916 chore(deps-dev): bump vitest from 5.0.3 to 5.0.4 in
/superset-embedded-sdk (#45625)
add dffb06978cd chore(deps-dev): bump jsdom from 30.1.2 to 30.1.3 in
/superset-embedded-sdk (#45624)
add 6752eef54c3 chore(deps): bump antd from 6.6.5 to 6.6.6 in /docs
(#45623)
add 9b3f66df370 chore(deps): bump zizmorcore/zizmor-action from 0.6.4 to
0.7.1 (#45621)
add 09edc1a2c6e chore(deps): bump the codeql group with 3 updates (#45620)
add 0454c5e940c chore(frontend): upgrade to TypeScript 7 (#45603)
add 3f4f772efef ci(storybook): use every core for story tests and install
deps for Chromium only (#45600)
add 3823c6dc2c5 chore(i18n): sync translation catalogs with messages.pot
(#45583)
add 424c34c695d fix(security): stop dataset editorship from authorizing
new SQL (#45342)
add 3f77b342cb8 fix(explore): persist aliased column config by real key
(#44955)
add 89840862d6f chore(deps-dev): bump vitest from 5.0.4 to 5.0.5 in
/superset-websocket (#45669)
add eeb2fc2ff36 chore(deps-dev): bump vitest from 5.0.4 to 5.0.5 in
/superset-embedded-sdk (#45666)
add 5877cb58db8 chore(deps): bump swagger-ui-react from 5.33.2 to 5.33.3
in /docs (#45665)
add ff50234bf25 chore(deps): bump js-yaml from 5.4.3 to 5.5.0 in /docs
(#45664)
add d0897f77c93 chore(deps): bump chromaui/action from 18.12.2 to 18.13.0
(#45662)
add d0116153376 feat(dashboard): expose authorized chart display labels
(#45552)
add c016883970d fix(dataset): preserve pending metric and column edits
(#45506)
add 23f10960f5a feat(plugin-chart-echarts): let users hide legend
All/Invert buttons (#45172)
add 6114b81c928 feat(ci): label PRs/issues from UTSC 2026 students (#45656)
add 3da46025cb8 Merge remote-tracking branch 'origin/master' into
rebenitez1802/hand-off-plan-analyze
add 56aa501b539 fix(models): restore literal columns only on an exact
discovery opt-in
No new revisions were added by this update.
Summary of changes:
.gitattributes | 1 -
.github/utsc2026-students.yml | 63 +
.github/workflows/chromatic.yml | 4 +-
.github/workflows/codeql-analysis.yml | 4 +-
.github/workflows/docker.yml | 2 +-
.github/workflows/frontend-bundle-size-nightly.yml | 2 +-
.github/workflows/github-action-validator.yml | 2 +-
.github/workflows/superset-frontend.yml | 10 +-
.github/workflows/utsc2026-labeler.yml | 57 +
AGENTS.md | 1 +
Dockerfile | 28 +-
UPDATING.md | 31 +-
docker-compose-light.yml | 1 -
docker-compose.yml | 1 -
docs/admin_docs/installation/docker-builds.mdx | 43 +-
.../contributing/development-setup.md | 9 +-
docs/developer_docs/contributing/howtos.md | 3 +
docs/docs/using-superset/embedding.mdx | 36 +
docs/docs/using-superset/exploring-data.mdx | 21 +
.../using-superset/semantic-layer-connections.mdx | 11 +
docs/package.json | 6 +-
docs/static/resources/openapi.json | 14 +
docs/yarn.lock | 704 +++++-----
superset-embedded-sdk/package-lock.json | 278 ++--
superset-embedded-sdk/package.json | 4 +-
superset-frontend/.storybook/main.mjs | 5 +-
.../.storybook/playwright.storybook-ci.config.ts | 4 +
superset-frontend/jest.config.js | 4 +
superset-frontend/package-lock.json | 434 +++++-
superset-frontend/package.json | 13 +-
.../packages/superset-core/package.json | 2 +-
.../src/utils/headerGroups.test.ts | 182 ++-
.../src/utils/headerGroups.ts | 68 +-
.../src/components/Modal/Modal.tsx | 17 +-
.../src/components/TableCollection/utils.tsx | 3 +-
.../superset-ui-core/src/query/types/Datasource.ts | 1 +
.../packages/superset-ui-core/src/utils/tooltip.ts | 31 +
.../test/chart/models/ChartProps.test.ts | 15 +
.../superset-ui-core/test/utils/tooltip.test.ts | 34 +
.../src/controlPanel.tsx | 5 +
.../src/transformProps.ts | 9 +-
.../src/utils/isEqualColumns.ts | 8 +
.../test/controlPanel.test.tsx | 34 +
.../test/transformProps.test.ts | 159 +++
.../BigNumberPeriodOverPeriod/transformProps.ts | 6 +-
.../src/BigNumber/BigNumberTotal/transformProps.ts | 6 +-
.../BigNumberWithTrendline/transformProps.ts | 6 +-
.../plugin-chart-echarts/src/BigNumber/utils.ts | 10 +-
.../src/Bubble/transformProps.ts | 3 +
.../src/Butterfly/transformProps.ts | 3 +
.../src/Candlestick/transformProps.ts | 3 +
.../src/Funnel/controlPanel.tsx | 13 +-
.../src/Funnel/transformProps.ts | 3 +
.../src/Gantt/transformProps.ts | 3 +
.../src/Graph/transformProps.ts | 3 +
.../src/Histogram/controlPanel.tsx | 7 +-
.../src/Histogram/transformProps.ts | 10 +-
.../plugin-chart-echarts/src/Histogram/types.ts | 1 +
.../src/MixedTimeseries/transformProps.ts | 3 +
.../plugin-chart-echarts/src/Pie/transformProps.ts | 3 +
.../src/Radar/controlPanel.tsx | 10 +-
.../src/Radar/transformProps.ts | 3 +
.../src/Sunburst/EchartsSunburst.tsx | 99 +-
.../src/Sunburst/transformProps.ts | 36 +-
.../plugin-chart-echarts/src/Sunburst/types.ts | 4 +
.../plugin-chart-echarts/src/Sunburst/utils.ts | 190 +++
.../src/Timeseries/EchartsTimeseries.test.tsx | 1 +
.../src/Timeseries/Regular/Bar/controlPanel.tsx | 28 +
.../src/Timeseries/Regular/Line/controlPanel.tsx | 19 +
.../src/Timeseries/constants.ts | 1 +
.../src/Timeseries/transformProps.ts | 86 +-
.../plugin-chart-echarts/src/Timeseries/types.ts | 2 +
.../plugins/plugin-chart-echarts/src/constants.ts | 1 +
.../plugins/plugin-chart-echarts/src/controls.tsx | 55 +-
.../plugins/plugin-chart-echarts/src/types.ts | 3 +-
.../plugin-chart-echarts/src/utils/forecast.ts | 20 +-
.../plugin-chart-echarts/src/utils/series.ts | 5 +-
.../src/utils/xAxisDrillByFilter.ts | 37 +-
.../test/BigNumber/chartDisplayLabels.test.ts | 196 +++
.../test/Gantt/transformProps.test.ts | 7 +-
.../test/Histogram/buildQuery.test.ts | 1 +
.../test/Histogram/transformProps.test.ts | 12 +
.../test/MixedTimeseries/transformProps.test.ts | 9 +-
.../test/Sunburst/EchartsSunburst.test.tsx | 474 +++++++
.../test/Sunburst/transformProps.test.ts | 149 ++-
.../test/Sunburst/utils.test.ts | 52 +
.../test/Timeseries/Bar/controlPanel.test.ts | 28 +
.../test/Timeseries/EchartsTimeseries.test.tsx | 40 +
.../test/Timeseries/Line/controlPanel.test.ts | 42 +
.../test/Timeseries/helpers.ts | 1 +
.../test/Timeseries/transformProps.test.ts | 205 ++-
.../test/utils/forecast.test.ts | 63 +-
.../plugin-chart-echarts/test/utils/series.test.ts | 32 +-
.../plugin-chart-table/src/controlPanel.tsx | 5 +
.../plugin-chart-table/src/transformProps.ts | 9 +-
.../plugin-chart-table/src/utils/isEqualColumns.ts | 8 +
.../plugin-chart-table/test/TableChart.test.tsx | 112 ++
.../plugin-chart-table/test/controlPanel.test.tsx | 34 +
.../test/transformProps.test.tsx | 58 +
.../Chart/DrillBy/DrillByTemporalFilters.test.tsx | 256 ++++
.../DatasourceModal.pendingEdits.test.tsx | 196 +++
.../CollectionTable.debounce.test.tsx | 287 ++++
.../components/CollectionTable/index.tsx | 231 ++--
.../src/components/Datasource/types.ts | 10 -
.../components/gridComponents/Chart/Chart.test.tsx | 55 +
.../components/gridComponents/Chart/Chart.tsx | 7 +-
.../nativeFilters/FilterBar/utils.test.ts | 35 +
.../components/nativeFilters/FilterBar/utils.ts | 5 +-
superset-frontend/src/dashboard/types.ts | 1 +
.../dashboard/util/withChartDisplayLabels.test.ts | 153 +++
.../src/dashboard/util/withChartDisplayLabels.ts | 61 +
.../ColumnConfigControl.popover.test.tsx | 293 +++++
.../ColumnConfigControl.test.tsx | 75 ++
.../ColumnConfigControl/ColumnConfigControl.tsx | 20 +-
.../ControlForm/ControlForm.test.tsx | 158 +++
.../controls/ColumnConfigControl/types.ts | 1 +
.../components/controls/ComparisonRangeLabel.tsx | 66 +-
.../ConditionalFormattingControl.test.tsx | 297 ++++-
.../controls/ContourControl/ContourOption.test.tsx | 111 ++
.../ContourControl/ContourPopoverControl.test.tsx | 277 ++++
.../ContourControl/ContourPopoverTrigger.test.tsx | 133 ++
.../controls/ContourControl/index.test.tsx | 212 +++
superset-frontend/src/pages/ChartList/index.tsx | 9 +-
.../src/pages/DashboardList/index.tsx | 3 +-
superset-frontend/src/pages/DatasetList/index.tsx | 18 +-
superset-frontend/webpack.config.js | 43 +-
superset-websocket/package-lock.json | 238 ++--
superset-websocket/package.json | 2 +-
superset/charts/api.py | 25 +-
superset/commands/dataset/create.py | 4 +-
superset/commands/explore/get.py | 14 +-
superset/commands/semantic_layer/create.py | 11 +
superset/common/utils/dataframe_utils.py | 64 +
superset/config.py | 13 +
superset/connectors/sqla/models.py | 242 +++-
superset/connectors/sqla/utils.py | 6 +-
superset/daos/dashboard.py | 18 +-
superset/dashboards/api.py | 51 +-
superset/dashboards/schemas.py | 13 +
superset/databases/api.py | 32 +-
superset/datasets/api.py | 26 +-
superset/datasets/schemas.py | 17 +-
superset/db_engine_specs/bigquery.py | 15 +-
superset/explore/utils.py | 6 +-
superset/importexport/api.py | 38 +-
superset/mcp_service/dataset/schemas.py | 21 +
superset/mcp_service/jwt_verifier.py | 28 +-
superset/models/dashboard.py | 225 +++-
superset/models/helpers.py | 182 ++-
superset/queries/api.py | 3 +
superset/queries/saved_queries/api.py | 26 +-
superset/queries/schemas.py | 2 +-
superset/security/manager.py | 75 +-
superset/semantic_layers/api.py | 63 +-
superset/sql/parse.py | 27 +
superset/translations/ar/LC_MESSAGES/messages.po | 170 ++-
superset/translations/ca/LC_MESSAGES/messages.po | 170 ++-
superset/translations/cs/LC_MESSAGES/messages.po | 170 ++-
superset/translations/de/LC_MESSAGES/messages.po | 170 ++-
superset/translations/en/LC_MESSAGES/messages.po | 166 ++-
superset/translations/es/LC_MESSAGES/messages.po | 170 ++-
superset/translations/fa/LC_MESSAGES/messages.po | 170 ++-
superset/translations/fi/LC_MESSAGES/messages.po | 176 ++-
superset/translations/fr/LC_MESSAGES/messages.po | 170 ++-
superset/translations/it/LC_MESSAGES/messages.po | 173 ++-
superset/translations/ja/LC_MESSAGES/messages.po | 170 ++-
superset/translations/ko/LC_MESSAGES/messages.po | 175 ++-
superset/translations/lv/LC_MESSAGES/messages.po | 170 ++-
superset/translations/messages.pot | 91 +-
superset/translations/mi/LC_MESSAGES/messages.po | 170 ++-
superset/translations/nl/LC_MESSAGES/messages.po | 170 ++-
superset/translations/pl/LC_MESSAGES/messages.po | 175 ++-
superset/translations/pt/LC_MESSAGES/messages.po | 173 ++-
.../translations/pt_BR/LC_MESSAGES/messages.po | 170 ++-
superset/translations/ro/LC_MESSAGES/messages.po | 170 ++-
superset/translations/ru/LC_MESSAGES/messages.po | 170 ++-
superset/translations/sk/LC_MESSAGES/messages.po | 170 ++-
superset/translations/sl/LC_MESSAGES/messages.po | 170 ++-
superset/translations/sr/LC_MESSAGES/messages.po | 172 ++-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 172 ++-
superset/translations/ta/LC_MESSAGES/messages.po | 170 ++-
superset/translations/th/LC_MESSAGES/messages.po | 176 ++-
superset/translations/tr/LC_MESSAGES/messages.po | 170 ++-
superset/translations/uk/LC_MESSAGES/messages.po | 170 ++-
superset/translations/zh/LC_MESSAGES/messages.po | 170 ++-
.../translations/zh_TW/LC_MESSAGES/messages.po | 170 ++-
superset/utils/excel.py | 41 +-
superset/utils/number_format.py | 94 ++
superset/views/base_api.py | 24 +
tests/integration_tests/dashboards/api_tests.py | 617 ++++++++-
tests/integration_tests/datasets/api_tests.py | 45 +
tests/integration_tests/fixtures/public_role.py | 47 +-
tests/integration_tests/queries/api_tests.py | 30 +
.../security/public_role_tests.py | 93 ++
tests/unit_tests/charts/test_client_processing.py | 41 +
.../charts/test_exact_integer_chart_data.py | 824 ++++++++++++
tests/unit_tests/commands/dataset/test_create.py | 11 +
.../explore/test_get_query_authorship_bypass.py | 100 +-
.../commands/semantic_layer/create_test.py | 53 +-
tests/unit_tests/common/test_dataframe_utils.py | 53 +
.../unit_tests/common/test_query_cache_manager.py | 38 +
.../common/test_query_context_processor.py | 50 +
tests/unit_tests/connectors/sqla/utils_test.py | 24 +
tests/unit_tests/dashboards/datasets_test.py | 1381 +++++++++++++++++++-
tests/unit_tests/databases/api_test.py | 44 +
tests/unit_tests/datasets/schema_tests.py | 80 ++
tests/unit_tests/datasource/test_query_api.py | 24 +
tests/unit_tests/db_engine_specs/test_bigquery.py | 70 +
tests/unit_tests/explore/utils_test.py | 39 +
tests/unit_tests/importexport/api_test.py | 30 +
.../mcp_service/test_browser_hello_middleware.py | 126 ++
.../models/groupby_literal_column_test.py | 288 ++++
.../models/normalize_df_large_integer_test.py | 307 +++++
.../models/test_hours_offset_bound_truncation.py | 480 ++++++-
.../security/test_dashboard_chart_labels.py | 207 +++
tests/unit_tests/semantic_layers/api_test.py | 262 +++-
tests/unit_tests/sql/parse_tests.py | 44 +
tests/unit_tests/subjects/test_raise_for_access.py | 4 +
tests/unit_tests/utils/csv_tests.py | 14 +
tests/unit_tests/utils/excel_tests.py | 38 +
tests/unit_tests/utils/number_format_test.py | 31 +
.../unit_tests/views/test_parse_json_form_field.py | 54 +
222 files changed, 18290 insertions(+), 1721 deletions(-)
create mode 100644 .github/utsc2026-students.yml
create mode 100644 .github/workflows/utsc2026-labeler.yml
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/src/Sunburst/utils.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/test/BigNumber/chartDisplayLabels.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/EchartsSunburst.test.tsx
create mode 100644
superset-frontend/plugins/plugin-chart-echarts/test/Sunburst/utils.test.ts
create mode 100644
superset-frontend/plugins/plugin-chart-table/test/transformProps.test.tsx
create mode 100644
superset-frontend/src/components/Chart/DrillBy/DrillByTemporalFilters.test.tsx
create mode 100644
superset-frontend/src/components/Datasource/DatasourceModal/DatasourceModal.pendingEdits.test.tsx
create mode 100644
superset-frontend/src/components/Datasource/components/CollectionTable/CollectionTable.debounce.test.tsx
create mode 100644
superset-frontend/src/dashboard/util/withChartDisplayLabels.test.ts
create mode 100644
superset-frontend/src/dashboard/util/withChartDisplayLabels.ts
create mode 100644
superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigControl.popover.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ColumnConfigControl/ControlForm/ControlForm.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/ContourOption.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverControl.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/ContourPopoverTrigger.test.tsx
create mode 100644
superset-frontend/src/explore/components/controls/ContourControl/index.test.tsx
create mode 100644 tests/integration_tests/security/public_role_tests.py
create mode 100644 tests/unit_tests/charts/test_exact_integer_chart_data.py
create mode 100644
tests/unit_tests/mcp_service/test_browser_hello_middleware.py
create mode 100644 tests/unit_tests/models/groupby_literal_column_test.py
create mode 100644 tests/unit_tests/models/normalize_df_large_integer_test.py
create mode 100644 tests/unit_tests/security/test_dashboard_chart_labels.py
create mode 100644 tests/unit_tests/views/test_parse_json_form_field.py