This is an automated email from the ASF dual-hosted git repository.
rusackas pushed a change to branch fix/issue-31991-iran-geojson-iso-codes
in repository https://gitbox.apache.org/repos/asf/superset.git
omit 36e14b45eb0 fix(country-map): move Iran ISO code fix into the GeoJSON
generator notebook
omit 85a4903fccf fix(viz): correct duplicate/incorrect ISO codes in Iran
country map
add 90040fc1f6a fix(mcp_service): downgrade client-disconnect transport
noise to WARNING (SC-115264) (#42441)
add 710037d3d2f chore(importers): log field names instead of full config
on validation failure (#42399)
add e54eccd5fb8 chore(a11y): enable jsx-a11y/prefer-tag-over-role as error
(#42078)
add 8f8331f656e chore: session enforce sqlalchemy 2.0 (#42365)
add 6856d0fc671 fix(select): rank case-insensitive matches consistently in
dropdown search (#42408)
add e338c77dd73 fix(dashboard-tabs): disable drag on input fields during
tab reorder (#36889)
add 943bbb92e4e chore(deps): bump @fontsource/fira-code from 5.2.7 to
5.3.0 in /superset-frontend (#42461)
add 5dea601a09a chore(deps): bump @fontsource/inter from 5.2.8 to 5.3.0 in
/superset-frontend (#42460)
add fdea53df9ec chore(deps-dev): bump source-map from 0.7.6 to 0.8.0 in
/superset-frontend (#42459)
add 67face3e3d2 chore(deps-dev): bump lightningcss from 1.32.0 to 1.33.0
in /superset-frontend (#42457)
add 0d2a82c2b2e chore(deps): bump react-arborist from 3.13.2 to 3.15.0 in
/superset-frontend (#42456)
add 5898463ced3 chore(deps-dev): bump @swc/core from 1.15.43 to 1.15.46 in
/superset-frontend (#42455)
add b3c95d138a9 chore(deps): bump chrono-node from 2.10.0 to 2.10.1 in
/superset-frontend (#42454)
add fe787269353 chore(deps-dev): bump stylelint from 17.14.0 to 17.14.1 in
/superset-frontend (#42453)
add 23e5cc24d52 chore(deps): bump @fontsource/fira-code from 5.2.7 to
5.3.0 in /docs (#42451)
add c09ebc2087d chore(deps): bump @fontsource/inter from 5.2.8 to 5.3.0 in
/docs (#42450)
add 3666b9a934c chore(deps): bump swagger-ui-react from 5.32.8 to 5.32.9
in /docs (#42449)
add dece4577924 chore(deps): bump @swc/core from 1.15.43 to 1.15.46 in
/docs (#42448)
add 95e5e25e1a2 feat(helm): mitigate init-db Job hang under Istio sidecar
injection (closes #25798) (#41396)
add 03c97764d15 chore(ci): remove nyc usage for merging coverage results
as Codecov natively supports the action (#42431)
add 45c2b801f7b chore(deps): bump @fontsource/ibm-plex-mono from 5.2.7 to
5.3.0 in /superset-frontend (#42458)
add faf2cc0f04e chore(deps): bump @fontsource/ibm-plex-mono from 5.2.7 to
5.3.0 in /docs (#42447)
add 3540f3f9571 chore(deps): bump the rjsf group in /superset-frontend
with 3 updates (#42446)
add 4300e9fb930 chore(deps): bump hot-shots from 17.0.0 to 17.0.1 in
/superset-websocket (#42445)
add 748e1e80f06 chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0
(#42452)
add 74924ae73a4 fix(db_engine_specs): use CAST(DATE({col}) AS DATETIME) in
MySQL HOUR time grain (#38617)
add a44afd81058 chore: drop legacy /superset prefix from remaining
hardcoded URLs (#42156)
add 1d752a0ced6 fix(embedded): load guest charts with missing or stale
query_context (#42150)
add 12d7179c21b fix(hive): select schema via USE prequery instead of
rewriting the URI database (#36603)
add 3e7ae85cc24 fix(importers): catch YAMLError instead of narrower
ParserError in load_yaml (#42426)
add 276b7e2d678 fix(importers): catch YAMLError instead of narrower
ParserError in dataset v0 importer (#42442)
add eb914b8ae35 fix(datasets): log datetime format-detection DB query
failures at WARNING (#42388)
add c792752a58b fix(db_engine_specs): preserve DATE semantics when
applying Postgres time grains (#42254) (#42329)
add 79f3fed1f98 fix(country-map): carve the Great Lakes out of USA map
states (#29503)
add a73e2485de8 feat(versioning): version-history retention cleanup job
(#41075)
add c0117f78a9c feat(dashboard): respect GranularExportControls for
download permission (#41799)
add a8e2a340f19 fix(select): exclude null-valued options from "Select all"
count (#42220)
add 3095d7b07ff fix(metadata-bar): add max-width to text for proper
ellipsis truncation (#42237)
add a10c3f0b1dd test(result_set): add regression test for empty result set
column metadata (#35962)
add 26b6f7bb5df fix(dashboard): preserve refresh_frequency when absent
from save data (#42354)
add ecc7f726a4e fix: guard potential null derefs and remove dead branches
(#42358)
add e484e3e7b33 fix(viz): correct duplicate/incorrect ISO codes in Iran
country map
add 5650ff8a730 fix(country-map): move Iran ISO code fix into the GeoJSON
generator notebook
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 (36e14b45eb0)
\
N -- N -- N refs/heads/fix/issue-31991-iran-geojson-iso-codes
(5650ff8a730)
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:
.github/workflows/bump-python-package.yml | 2 +-
.github/workflows/superset-frontend.yml | 14 +-
.pre-commit-config.yaml | 2 +-
UPDATING.md | 10 +
docs/package.json | 10 +-
docs/yarn.lock | 198 +++----
helm/superset/Chart.yaml | 2 +-
helm/superset/README.md | 6 +-
helm/superset/templates/_helpers.tpl | 8 +
helm/superset/templates/init-job.yaml | 4 +
helm/superset/tests/test-istio.sh | 183 +++++++
helm/superset/values.yaml | 25 +
superset-frontend/oxlint.json | 1 +
superset-frontend/package-lock.json | 346 +++++++------
superset-frontend/package.json | 22 +-
.../components/ActionButton/ActionButton.test.tsx | 18 +-
.../src/components/ActionButton/index.tsx | 38 +-
.../src/components/ButtonGroup/index.tsx | 4 +
.../src/components/EmptyState/index.tsx | 4 +
.../src/components/FaveStar/index.tsx | 10 +-
.../src/components/Form/LabeledErrorBoundInput.tsx | 4 +
.../src/components/IconButton/index.tsx | 4 +
.../src/components/Loading/index.tsx | 4 +
.../src/components/MetadataBar/MetadataBar.tsx | 1 +
.../src/components/ModalTrigger/index.tsx | 5 +
.../src/components/PopoverDropdown/index.tsx | 15 +-
.../PopoverSection/PopoverSection.test.tsx | 8 +-
.../src/components/PopoverSection/index.tsx | 27 +-
.../src/components/RefreshLabel/index.tsx | 3 +-
.../src/components/Select/AsyncSelect.test.tsx | 4 +-
.../src/components/Select/Select.test.tsx | 33 +-
.../src/components/Select/Select.tsx | 5 +
.../superset-ui-core/src/components/Tabs/Tabs.tsx | 4 +-
.../src/utils/rankedSearchCompare.test.ts | 27 +
.../src/utils/rankedSearchCompare.ts | 3 +-
.../chart/components/ChartDataProvider.test.tsx | 3 +-
.../scripts/Country Map GeoJSON Generator.ipynb | Bin 11004185 -> 10963779
bytes
.../src/countries/iran.geojson | Bin 134537 -> 134245 bytes
.../src/countries/usa.geojson | Bin 514889 -> 540974 bytes
.../src/vendor/superset/exploreUtils.ts | 69 ---
.../src/AgGridTable/components/CustomHeader.tsx | 42 +-
.../src/styles/index.tsx | 10 +
.../src/react-pivottable/Styles.ts | 16 +
.../src/react-pivottable/TableRenderers.tsx | 30 +-
.../src/DataTable/components/Pagination.tsx | 13 +-
.../src/DataTable/hooks/useSticky.tsx | 4 +
.../plugins/plugin-chart-table/src/Styles.tsx | 11 +-
.../plugin-chart-table/test/TableChart.test.tsx | 11 +-
.../src/components/Legend.test.tsx | 18 +-
.../preset-chart-deckgl/src/components/Legend.tsx | 27 +-
.../preset-chart-deckgl/src/utils/explore.ts | 2 +-
.../components/ExploreResultsButton/index.tsx | 1 -
.../components/TemplateParamsEditor/index.tsx | 4 +-
.../src/components/Chart/Chart.test.tsx | 4 +-
superset-frontend/src/components/Chart/Chart.tsx | 37 +-
.../components/Chart/DrillBy/DrillByModal.test.tsx | 2 +-
.../src/components/Chart/DrillBy/DrillByModal.tsx | 31 +-
.../components/Chart/DrillBy/DrillBySubmenu.tsx | 21 +-
.../Chart/DrillDetail/DownloadDropdown.tsx | 16 +-
.../Chart/DrillDetail/DrillDetailTableControls.tsx | 3 +-
.../CopyToClipboard/CopyToClipboard.stories.tsx | 2 +-
.../src/components/CopyToClipboard/index.tsx | 15 +-
.../Datasource/ChangeDatasourceModal/index.tsx | 10 +-
.../components/CollectionTable/index.tsx | 3 +-
.../DatasourceEditor/DatasourceEditor.tsx | 14 +-
.../ErrorMessage/BasicErrorAlert.test.tsx | 1 +
.../ErrorMessage/DatabaseErrorMessage.test.tsx | 1 +
.../DatasetNotFoundErrorMessage.test.tsx | 1 +
.../src/components/ErrorMessage/ErrorAlert.tsx | 34 +-
.../ErrorMessageWithStackTrace.test.tsx | 1 +
.../FrontendNetworkErrorMessage.test.tsx | 1 +
.../ErrorMessage/ParameterErrorMessage.test.tsx | 1 +
.../ErrorMessage/TimeoutErrorMessage.test.tsx | 1 +
.../ListView/Filters/CompactSelectPanel.tsx | 7 +
.../src/components/ListView/ListView.test.tsx | 14 +-
.../src/components/ListView/ListView.tsx | 61 +--
.../src/components/MessageToasts/Toast.tsx | 3 +-
superset-frontend/src/dashboard/actions/hydrate.ts | 4 +-
.../AutoRefreshStatus/StatusIndicatorDot.tsx | 4 +
.../components/CustomizationsBadge/index.tsx | 4 +
.../dashboard/components/DeleteComponentButton.tsx | 2 +-
.../DetailsPanel/DetailsPanel.test.tsx | 2 +-
.../components/FiltersBadge/DetailsPanel/index.tsx | 2 +-
.../dashboard/components/FiltersBadge/index.tsx | 12 +-
.../src/dashboard/components/IconButton.tsx | 19 +-
.../components/gridComponents/Chart/Chart.tsx | 5 +-
.../components/gridComponents/Tab/Tab.tsx | 22 +-
.../components/gridComponents/Tabs/Tabs.tsx | 6 +-
.../TabsRenderer/TabsRenderer.test.tsx | 65 +++
.../gridComponents/TabsRenderer/TabsRenderer.tsx | 8 +-
.../FilterBar/CrossFilters/CrossFilterTitle.tsx | 3 +-
.../ScopingModal/ChartsScopingListPanel.test.tsx | 7 +-
.../ScopingModal/ChartsScopingListPanel.tsx | 12 +-
.../FilterBar/CrossFilters/VerticalCollapse.tsx | 21 +-
.../FilterBar/FilterConfigurationLink/index.tsx | 17 +-
.../FilterControls/FilterControlShared.tsx | 8 +
.../FilterBar/FilterControls/FilterControls.tsx | 28 +-
.../FilterBar/FilterControls/GroupByFilterCard.tsx | 5 +
.../FilterBar/UrlFilters/VerticalCollapse.tsx | 20 +-
.../nativeFilters/FilterBar/Vertical.tsx | 9 +-
.../nativeFilters/FilterCard/DependenciesRow.tsx | 2 +-
.../components/nativeFilters/FilterCard/Styles.ts | 7 +-
.../FiltersConfigModal/FilterTitleContainer.tsx | 21 +-
.../FiltersConfigForm/DependencyList.tsx | 9 +-
.../FiltersConfigModal/ItemTitleContainer.tsx | 21 +-
superset-frontend/src/database/actions.test.ts | 67 +++
superset-frontend/src/database/actions.ts | 2 +-
.../src/explore/components/ControlHeader.tsx | 5 +
.../explore/components/DataTableControl/index.tsx | 15 +-
.../components/DataTablesPane/DataTablesPane.tsx | 37 +-
.../components/DataTableControls.tsx | 3 +-
.../explore/components/DatasourcePanel/index.tsx | 25 +-
.../src/explore/components/EmbedCodeContent.tsx | 14 +-
.../explore/components/ExploreChartPanel/index.tsx | 39 +-
.../components/ExploreViewContainer/index.tsx | 49 +-
.../ColorBreakpointPopoverControl.tsx | 4 +
.../ColumnConfigControl/ColumnConfigControl.tsx | 16 +-
.../DateFilterControl/components/DateLabel.tsx | 7 +-
.../DndColumnSelectControl/ColumnSelectPopover.tsx | 44 +-
.../DndColumnSelectPopoverTitle.tsx | 18 +-
.../controls/DndColumnSelectControl/Option.tsx | 3 +-
.../DndColumnSelectControl/useResizeButton.tsx | 5 +
.../FilterControl/AdhocFilterControl/index.tsx | 13 +-
.../FilterControl/AdhocFilterEditPopover/index.tsx | 5 +
.../FixedOrMetricControl.test.tsx | 1 +
.../controls/LayerConfigsControl/LayerTreeItem.tsx | 29 +-
.../MetricControl/AdhocMetricEditPopover/index.tsx | 34 +-
.../MetricControl/AdhocMetricEditPopoverTitle.tsx | 19 +-
.../components/controls/OptionControls/index.tsx | 10 +-
.../controls/VizTypeControl/VizTypeGallery.tsx | 21 +-
.../components/controls/VizTypeControl/index.tsx | 22 +-
.../alerts/components/NotificationMethod.test.tsx | 23 +
.../alerts/components/NotificationMethod.tsx | 43 +-
.../src/features/charts/ChartCard.tsx | 56 +-
.../src/features/dashboards/DashboardCard.tsx | 58 +--
.../databases/DatabaseModal/SSHTunnelForm.tsx | 2 -
.../AddDataset/DatasetPanel/DatasetPanel.test.tsx | 3 +-
.../AddDataset/DatasetPanel/DatasetPanel.tsx | 68 +--
.../DatasetPanel/DatasetPanelWrapper.test.tsx | 1 +
.../AddDataset/DatasetPanel/MessageContent.tsx | 6 +-
superset-frontend/src/features/home/Menu.tsx | 8 +-
.../src/features/home/SavedQueries.tsx | 4 +
superset-frontend/src/features/home/SubMenu.tsx | 214 ++++----
.../src/features/queries/QueryPreviewModal.tsx | 13 +-
.../src/features/queries/SyntaxHighlighterCopy.tsx | 3 +-
.../pages/ChartList/ChartList.cardview.test.tsx | 6 +-
.../pages/ChartList/ChartList.listview.test.tsx | 2 +-
.../pages/ChartList/ChartList.permissions.test.tsx | 16 +-
.../src/pages/ChartList/ChartList.test.tsx | 2 +-
superset-frontend/src/pages/ChartList/index.tsx | 65 +--
.../DashboardList/DashboardList.cardview.test.tsx | 4 +-
.../DashboardList.permissions.test.tsx | 10 +-
.../src/pages/DashboardList/DashboardList.test.tsx | 4 +-
.../src/pages/DashboardList/index.tsx | 75 ++-
superset-frontend/src/pages/DatabaseList/index.tsx | 117 ++---
.../DatasetList/DatasetList.behavior.test.tsx | 4 +-
.../DatasetList/DatasetList.listview.test.tsx | 25 +-
superset-frontend/src/pages/DatasetList/index.tsx | 127 ++---
.../src/pages/QueryHistoryList/index.tsx | 26 +-
.../src/pages/RowLevelSecurityList/index.tsx | 47 +-
superset-frontend/src/pages/Tags/index.tsx | 48 +-
.../src/pages/TaskList/TaskList.test.tsx | 6 +-
superset-frontend/src/pages/TaskList/index.tsx | 31 +-
superset-frontend/src/utils/findPermission.test.ts | 52 +-
superset-frontend/src/utils/findPermission.ts | 13 +
superset-websocket/package-lock.json | 8 +-
superset-websocket/package.json | 2 +-
superset/commands/dataset/importers/v0.py | 2 +-
superset/commands/importers/v1/utils.py | 18 +-
superset/commands/streaming_export/base.py | 2 +-
superset/common/query_context_factory.py | 2 +-
superset/common/utils/query_cache_manager.py | 6 +-
superset/config.py | 51 ++
superset/daos/dashboard.py | 3 +-
superset/datasets/datetime_format_detector.py | 19 +-
superset/db_engine_specs/databricks.py | 1 +
superset/db_engine_specs/hive.py | 33 +-
superset/db_engine_specs/mysql.py | 9 +-
superset/db_engine_specs/postgres.py | 27 +
superset/db_engine_specs/presto.py | 3 +-
superset/initialization/__init__.py | 73 ++-
superset/mcp_service/server.py | 65 ++-
superset/mcp_service/sql_lab/tool/execute_sql.py | 37 +-
superset/migrations/shared/catalogs.py | 4 +-
superset/migrations/shared/native_filters.py | 2 +-
..._08-54_c3a8f8611885_materializing_permission.py | 2 +-
...d8bc074f7aad_add_new_field_is_restricted_to_.py | 2 +-
...06-27_08-43_27ae655e4247_make_creator_owners.py | 2 +-
...-09-07_23-50_33d996bcc382_update_slice_model.py | 4 +-
...2_11-31_eca4694defa7_sqllab_setting_defaults.py | 2 +-
...4_12-31_db0c65b146bd_update_slice_model_json.py | 2 +-
...7c195a_rewriting_url_from_shortner_with_new_.py | 2 +-
...-08_08-19_67a6ac9b727b_update_spatial_params.py | 2 +-
...2-17_11-06_21e88bc06c02_annotation_migration.py | 4 +-
.../2018-02-13_08-07_e866bd2d4976_smaller_grid.py | 4 +-
...-04-03_08-19_130915240929_is_sqllab_viz_flow.py | 2 +-
...9_bf706ae5eb46_cal_heatmap_metric_to_metrics.py | 2 +-
...018-06-04_11-12_c5756bec8b47_time_grain_sqla.py | 4 +-
...6-07_09-52_afb7730f6a9c_remove_empty_filters.py | 2 +-
...13_10-20_4451805bbaa1_remove_double_percents.py | 2 +-
.../2018-06-13_14-54_bddc498dd179_adhoc_filters.py | 4 +-
...4_14-31_80a67c5192fa_single_pie_chart_metric.py | 4 +-
...1c4c6_migrate_num_period_compare_and_period_.py | 4 +-
.../2018-07-19_23-41_c617da68de7d_form_nullable.py | 2 +-
...07-20_15-31_7f2635b51f5d_update_base_columns.py | 2 +-
...07-20_15-57_e9df189e5c7e_update_base_metrics.py | 2 +-
..._bebcf3fed1fe_convert_dashboard_v1_positions.py | 2 +-
.../versions/2018-08-01_11-47_7fcdcde0761c_.py | 2 +-
...08545_migrate_time_range_for_default_filters.py | 2 +-
...2018-12-11_22-03_fb13d49b72f9_better_filters.py | 4 +-
...e1b21cd94a4_change_owner_to_m2m_relation_on_.py | 2 +-
.../2019-03-21_10-22_d94d33dbe938_form_strip.py | 2 +-
...a3f04bc82_add_parent_ids_in_dashboard_layout.py | 4 +-
.../2019-06-28_13-17_ab8c66efdd01_resample.py | 4 +-
...ng_unique_constraint_on_dashboard_slices_tbl.py | 2 +-
...5afa9079866a_serialize_schema_permissions_py.py | 2 +-
...e_form_strip_leading_and_trailing_whitespace.py | 2 +-
.../2019-10-10_13-52_1495eb914ad3_time_range.py | 4 +-
...127d0d1d_reconvert_legacy_filters_into_adhoc.py | 2 +-
..._14-13_3325d4caccc8_dashboard_scoped_filters.py | 2 +-
...10-42_f9a30386bd74_cleanup_time_grainularity.py | 2 +-
...29_09-24_620241d1153f_update_time_grain_sqla.py | 2 +-
...978245563a02_migrate_iframe_to_dash_markdown.py | 2 +-
...654_fix_data_access_permissions_for_virtual_.py | 2 +-
...b56500de1855_add_uuid_column_to_import_mixin.py | 4 +-
...208f_collapse_alerting_models_into_a_single_.py | 4 +-
...6e99fb176a0_add_import_mixing_to_saved_query.py | 4 +-
...e38177dbf641_security_converge_saved_queries.py | 4 +-
...15-25_40f16acf1ba7_security_converge_reports.py | 4 +-
...8ee129739cf9_security_converge_css_templates.py | 4 +-
..._14-13_ccb74baaa89b_security_converge_charts.py | 4 +-
...5-05_45731db65d9c_security_converge_datasets.py | 4 +-
...45_1f6dca87d1a2_security_converge_dashboards.py | 4 +-
...2_c25cb2c78727_security_converge_annotations.py | 4 +-
...-49_42b4c9e01447_security_converge_databases.py | 4 +-
...14_13-40_4b84f97828aa_security_converge_logs.py | 4 +-
...12-15_e37912a26567_security_converge_queries.py | 4 +-
...60bf0649a77_migrate_x_dateunit_in_time_range.py | 2 +-
...2fdb_add_granularity_to_charts_where_missing.py | 2 +-
...-10_12-32_41ce8799acc3_rename_pie_label_type.py | 4 +-
...1412ec1e5a7b_legacy_force_directed_to_echart.py | 4 +-
...8_09-13_c501b7c653a3_add_missing_uuid_column.py | 2 +-
...989bbe479899_rename_filter_configuration_in_.py | 4 +-
...ea61c5e7_remove_dataset_health_check_message.py | 2 +-
...88938_country_map_use_lowercase_country_name.py | 4 +-
...3a3a8ff221_migrate_filter_sets_to_new_format.py | 4 +-
...ed7ec95_migrate_native_filters_to_new_schema.py | 4 +-
...3605f370a_fix_schemas_allowed_for_csv_upload.py | 2 +-
...15da_migrate_pivot_table_v2_heatmaps_to_new_.py | 2 +-
..._17-16_f6196627326f_update_chart_permissions.py | 4 +-
...13dd52_change_fetch_values_predicate_to_text.py | 2 +-
...4fbb_add_type_to_native_filter_configuration.py | 4 +-
...453f4e2e_migrate_timeseries_limit_metric_to_.py | 2 +-
...12_11-15_32646df09c64_update_time_grain_sqla.py | 2 +-
...e5f1dacd_rename_to_schemas_allowed_for_file_.py | 4 +-
...aa3ff_add_force_screenshot_to_alerts_reports.py | 2 +-
...5b9441_rename_big_viz_total_form_data_fields.py | 4 +-
...d1d2_move_pivot_table_v2_legacy_order_by_to_.py | 4 +-
...d8e252_fix_query_and_saved_query_null_schema.py | 2 +-
...b0ca7944_change_adhoc_filter_b_from_none_to_.py | 4 +-
...14-38_a9422eeaae74_new_dataset_models_take_2.py | 2 +-
...d0249074e4_deprecate_time_range_endpoints_v2.py | 2 +-
...07e4fdbaba_rm_time_range_endpoints_from_qc_3.py | 2 +-
...-39_cbe71abde154_fix_report_schedule_and_log.py | 2 +-
...8_16-07_e786798587de_delete_none_permissions.py | 2 +-
..._16-17_f3afaf1f11f0_add_unique_name_desc_rls.py | 2 +-
...59_7fb8bca906d2_permalink_rename_filterstate.py | 4 +-
...5-48_409c7b420ab0_add_created_by_fk_as_owner.py | 2 +-
..._13-00_c747c78868b6_migrating_legacy_treemap.py | 4 +-
...-07_14-00_06e1e70058c7_migrating_legacy_area.py | 4 +-
...665d_fix_table_chart_conditional_formatting_.py | 2 +-
...1_4ce1d9b25135_remove_filter_bar_orientation.py | 2 +-
...4-46_c0a3ea245b61_remove_show_native_filters.py | 2 +-
...ac08bb5b83_invert_horizontal_bar_chart_order.py | 4 +-
...7_13-24_b5ea9d343307_bar_chart_stack_options.py | 4 +-
...03-27_12-30_7e67aecbf3f1_chart_ds_constraint.py | 2 +-
...2a5681ddfd_convert_key_value_entries_to_json.py | 4 +-
...-41_4ea966691069_cross_filter_global_scoping.py | 4 +-
...02_9ba2ce3086e5_migrate_pivot_table_v1_to_v2.py | 4 +-
...-08_10-22_4c5da39be729_migrate_treemap_chart.py | 4 +-
...e58e1e58e5c_migrate_dual_line_to_mixed_chart.py | 4 +-
...delete_obsolete_druid_nosql_slice_parameters.py | 2 +-
...6f8b1280_cleanup_erroneous_parent_filter_ids.py | 2 +-
...9_17-54_ee179a490af9_deckgl_path_width_units.py | 2 +-
...23_0769ef90fddd_fix_schema_perm_for_datasets.py | 2 +-
...086c2676_add_normalize_columns_to_sqla_model.py | 2 +-
...317970b4400c_added_time_secondary_column_to_.py | 2 +-
...ff00fe8_add_percent_calculation_type_funnel_.py | 4 +-
...18_14-41_a32e0c4d8646_migrate_sunburst_chart.py | 4 +-
...d09c9_migrate_filter_boxes_to_native_filters.py | 2 +-
...d83218_migrate_can_view_and_drill_permission.py | 4 +-
...47_be1b217cd8cd_big_number_kpi_single_metric.py | 4 +-
...8_15-43_5ad7321c2169_mig_new_csv_upload_perm.py | 4 +-
...14-04_d60591c5515f_mig_new_excel_upload_perm.py | 4 +-
...36_4a33124c18ad_mig_new_columnar_upload_perm.py | 4 +-
...9123a_update_charts_with_old_time_comparison.py | 4 +-
...09-34_d482d51c15ca_remove_legacy_plugins_5_0.py | 4 +-
...-34_74ad1125881c_converge_upload_permissions.py | 4 +-
...fdba9f_merge_x_axis_sort_series_with_x_axis_.py | 4 +-
...2_convert_metric_currencies_from_str_to_json.py | 2 +-
...8d8526_fix_form_data_string_in_query_context.py | 2 +-
...00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py | 4 +-
...a1b2c3d4e5f6_add_granular_export_permissions.py | 4 +-
...-00_b4a3f2e1d0c9_fix_security_view_menu_case.py | 2 +-
...23_a7d3f1b9c2e4_cleanup_stale_can_import_pvm.py | 4 +-
...rip_metricsqlexpressions_from_ag_grid_params.py | 2 +-
...a1f6c204_version_transaction_issued_at_index.py | 48 ++
superset/security/manager.py | 136 ++++-
superset/tags/models.py | 2 +-
superset/tasks/celery_app.py | 2 +-
superset/tasks/version_history_retention.py | 548 ++++++++++++++++++++
superset/versioning/queries.py | 19 +-
tests/integration_tests/dao/conftest.py | 2 +-
.../versioning/retention_prune_tests.py | 510 ++++++++++++++++++
.../unit_tests/commands/importers/v1/utils_test.py | 21 +
.../common/test_query_context_factory.py | 36 ++
tests/unit_tests/config_test.py | 26 +
tests/unit_tests/conftest.py | 2 +-
tests/unit_tests/dao/dashboard_test.py | 51 ++
tests/unit_tests/databases/filters_test.py | 2 +-
.../datasets/commands/importers/v0/import_test.py | 30 ++
.../datasets/test_datetime_format_detector.py | 39 +-
tests/unit_tests/db_engine_specs/test_hive.py | 68 +++
tests/unit_tests/db_engine_specs/test_mysql.py | 88 +++-
tests/unit_tests/db_engine_specs/test_postgres.py | 47 ++
tests/unit_tests/db_engine_specs/test_starrocks.py | 25 +-
.../distributed_lock/distributed_lock_tests.py | 2 +-
tests/unit_tests/initialization_test.py | 161 ++++++
.../unit_tests/mcp_service/test_logging_filters.py | 168 ++++++
...rip_metricsqlexpressions_from_ag_grid_params.py | 6 +-
.../test_version_transaction_issued_at_index.py | 90 ++++
tests/unit_tests/result_set_test.py | 50 ++
.../security/exclude_users_filter_test.py | 8 +-
tests/unit_tests/security/manager_test.py | 567 +++++++++++++++++++++
tests/unit_tests/semantic_layers/mapper_test.py | 4 +-
.../tasks/test_version_history_retention.py | 200 ++++++++
tests/unit_tests/versioning/test_listener.py | 2 +-
tests/unit_tests/views/test_soft_delete_filter.py | 2 +-
338 files changed, 5546 insertions(+), 1778 deletions(-)
create mode 100755 helm/superset/tests/test-istio.sh
delete mode 100644
superset-frontend/plugins/legacy-preset-chart-nvd3/src/vendor/superset/exploreUtils.ts
create mode 100644 superset-frontend/src/database/actions.test.ts
create mode 100644
superset/migrations/versions/2026-07-27_10-00_d3b9a1f6c204_version_transaction_issued_at_index.py
create mode 100644 superset/tasks/version_history_retention.py
create mode 100644 tests/integration_tests/versioning/retention_prune_tests.py
create mode 100644 tests/unit_tests/mcp_service/test_logging_filters.py
create mode 100644
tests/unit_tests/migrations/test_version_transaction_issued_at_index.py
create mode 100644 tests/unit_tests/tasks/test_version_history_retention.py