You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by el...@apache.org on 2026/10/09 18:51:12 UTC
(superset) branch hughhhh/pfm-6-explore-indicator updated (b83e550984e -> d808efd1f0a)
This is an automated email from the ASF dual-hosted git repository.
eschutho pushed a change to branch hughhhh/pfm-6-explore-indicator
in repository https://gitbox.apache.org/repos/asf/superset.git
discard b83e550984e Merge branch 'master' into hughhhh/pfm-6-explore-indicator
discard 6641896ca24 fix: pfm 8 merge and review (#45132)
omit 5a88d872bac Update superset/migrations/versions/2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py
omit 0fb2ea4c65e fix: partition-filtering on pfm-6 (#45058)
omit 0655674ed36 Cursor/resolve pfm conflicts b2f7 (#45040)
omit ed46a93d187 resolve conflicts
omit 85f0deb0f55 Merge branch 'master' into hughhhh/pfm-6-explore-indicator
omit 5596d7eecbd fix(explore): stop designating a partition column changing its flags
omit d01cfc542f6 chore: regenerate the message catalogs
omit 2b69a1fe01b fix(datasets): preview a filter the way the chart path mirrors it
omit c98c51af1a7 fix(security): stop a transform cancelling the placeholder-position gate
omit cadd36d2a2c fix(datasets): decline a literal the engine reads more coarsely than we can
omit d733f868a8a fix(datasets): hold a text partition key to a text probe result
omit 0d72d17e353 fix(datasets): drop a mirror the ranking subquery has no filter for
omit 645d0b765b1 fix(datasource): stop an edit reopening a row the user collapsed
omit 559f72e4f82 fix(security): deny the full-text functions that run their argument as a query
omit 4295563dd29 fix(explore): narrow the mapping where the glyph's gate already proves it
omit ef1c5e8a5d4 docs(datasets): add the indicator to the list of things the cache carries
omit 457fb5b752c chore: regenerate the message catalogs
omit eee9c0f42df fix(datasets): refuse a transform whose result the partition column cannot hold
omit f37eac11259 fix(datasets): only claim mirroring once a probe has reported
omit ec930bf53ec fix(datasets): stop a column sync resetting flags it was not asked to change
omit e0c863955ff fix(explore): stop the glyph promising a mirror the engine's resolution declines
omit eccd5aaba73 fix(datasets): read a filter literal as the instant the engine compares
omit 72899b2b4d9 fix(datasets): reject a partition column the sync does not find (R5-02)
omit 1a17cc34850 fix(datasets): mirror a strict bound non-strictly (R5-04)
omit f68fda0367f test(datasets): type the two new partition mapping test fixtures
omit 63606b42058 docs(datasets): name the cache backend the probe guards need
omit 77b9c113ef0 fix(security): deny the schema_to_xml family and enforce the denylist on save
omit d90c82894d8 perf(datasets): skip the partition probe during cache-key extraction
omit 3338f5e18c9 fix(datasource): restore the collection table's row-class and reveal props
omit f71bcd96cfd fix(datasets): carry the column-side mapping through a duplicate
omit a605fecb5b2 fix(datasets): repair mapping references after a metadata refresh
omit 91fcb917391 fix(datasets): disarm parked transforms before an overwrite import
omit 05a8b76febd fix(datasets): default an omitted monotonic declaration to false on import
omit 3e151edca98 fix(datasets): probe an epoch-millisecond filter as SQL, not a bind value
omit 267707cc05d fix(datasets): widen a mirror to the day when the engine drops the time
omit 57e873ef7a0 fix(datasets): substitute a probe's rendered SQL literally
omit aaf7aed0b48 test(sql): cover the two SQLStatement methods directly
omit 73be6b7c6a5 docs(datasets): say what a partition value transform may be
omit 157bb434cd2 chore: regenerate the message catalogs
omit b3bcd24d357 fix(datasets): validate the mapping against every column, not just physical
omit b2ac89450cb fix(datasets): probe the transform the engine will actually run
omit fdbb33024da Merge branch 'master' into hughhhh/pfm-6-explore-indicator
omit ee044862168 chore: regenerate the OpenAPI spec and message catalogs
omit 74df5b6c92b fix(datasets): stop the editor losing edits it cannot show, or a sibling's
omit b1cb7768e5e fix(explore): keep the pruning glyphs across a dataset save
omit 501d58e3666 fix(datasets): mirror equality only where the engine compares exactly
omit 642e236e667 fix(datasets): repair a dangling mapping against what the request asked for
omit 7c1692711fe fix(datasets): stop create minting a dataset no write can fix
omit bca9dc6b2b0 fix(datasets): mirror the window each query actually filters
omit 7f997ad2343 fix(datasets): probe the transform with the value the predicate compares
omit 4760967c0b7 fix(datasets): stop import discarding what a PUT deliberately keeps
omit 4365f073641 fix(datasets): let preview refuse what the query path already refuses
omit 7c42ff8a48b fix(datasets): require a value transform to be a bare scalar expression
omit fa6fbe42758 fix(datasets): stop the probe mangling its own SQL and its own results
omit 9e8f42d5d4e fix(datasets): let import accept the null export writes
omit 542e1dc583b Merge branch 'master' into hughhhh/pfm-6-explore-indicator
omit 115c194f58d fix(datasets): gate every door a partition value transform enters by
omit 5cfd5ddbf81 fix(datasets): disarm a parked transform before a mapping change arms it
omit 2fc5ac8c890 fix(explore): guard the map-a-different-column link against having no target
omit 69517c2e4df test(datasets): drop the permission the preview route no longer defines
omit 6aa303b0f6f Merge branch 'master' into hughhhh/pfm-6-explore-indicator
omit ff786951f84 fix(explore): hoist transformCanPreview, pin the empty-string sentinel
omit dbdc586ad2d Merge branch 'master' into hughhhh/pfm-6-explore-indicator
omit ad1c88876c6 Merge branch 'hughhhh/pfm-5-editor-ui' into hughhhh/pfm-6-explore-indicator
omit 1229c467408 Merge branch 'hughhhh/pfm-3-preview-and-editor' into hughhhh/pfm-5-editor-ui
omit ffa098b764f refactor(datasets): name the shared transform bound in the preview schema
omit 1e132aefc97 fix(explore): only promise pruning where the query actually prunes
omit 2acca1ecacd Merge branch 'hughhhh/pfm-5-editor-ui' into hughhhh/pfm-6-explore-indicator
omit 6113387c98d fix(datasets): make the editor's claims match what will actually mirror
omit 02e6eabf160 Merge branch 'hughhhh/pfm-3-preview-and-editor' into hughhhh/pfm-5-editor-ui
omit 17f8f28b419 fix(datasets): close the gate preview went around, and stop it 500ing
omit 4f8261152ad Merge branch 'hughhhh/pfm-2-query-rewrite' into hughhhh/pfm-3-preview-and-editor
omit 7951536198d fix(datasets): give the query path the same transform gate as the editor
omit a1c65d7ef4e Merge branch 'hughhhh/pfm-1-model-migration-api' into hughhhh/pfm-2-query-rewrite
omit 0b4ba99bdcd fix(datasets): validate a partition mapping at every door, not just PUT
omit e643b1fee05 fix(explore): let the time range control config infer its own control type
omit adff6384811 Merge branch 'hughhhh/pfm-3-preview-and-editor' into hughhhh/pfm-5-editor-ui
omit fb1ba20f899 Merge branch 'hughhhh/pfm-2-query-rewrite' into hughhhh/pfm-3-preview-and-editor
omit 2e1ac098991 Merge branch 'hughhhh/pfm-5-editor-ui' into hughhhh/pfm-6-explore-indicator
omit 74564b9206a Merge branch 'hughhhh/pfm-1-model-migration-api' into hughhhh/pfm-2-query-rewrite
omit b4676ae2024 Merge remote-tracking branch 'origin/master' into hughhhh/pfm-1-model-migration-api
omit e4ec66c440c i18n: extract the new value transform validation string
omit 8b837659882 fix(datasets): stop the save when the value transform cannot be saved
omit db0a80d42ed fix(datasets): stop the value transform input dropping keystrokes
omit b7a1225280d test(explore): make the time range regression tests type-check
omit e6a79ea05b7 test(explore): pin every chart that carries a standalone time range
omit 739c5e02209 fix(datasets): do not carry a value transform to a new datetime column
omit 72768639b1c fix(explore): a control can never be its own validation dependant
omit e21eac27283 fix(explore): stop the time range control clobbering its own value
omit cbe881fcc83 fix(datasets): stop a stale partition transform surviving an API write
omit d57db4cb383 fix(explore): stop a removed or re-pointed mapping resurrecting a stale transform
omit 4f58ef24b2c fix(explore): keep exactly one column holding a partition mapping
omit 219d1060535 style(explore): re-attach the partition column defaults docstring
omit 3e98de012b1 chore(translations): extract the partition pruning indicator string
omit 46e4cd7c54e fix(explore): keep the time range pruning glyph in sync with field updates
omit 1270cda6df6 style(explore): apply oxfmt to the partition mapping helpers
omit bdfaeb9299d fix(explore): only show the pruning glyph on filters that actually mirror
omit f06a9ad100d feat(explore): indicate when a filter is mirrored onto a partition column
omit 2c52c5fc286 style: let ruff format the preview sample-input return
omit 06a6239d4c8 fix(datasets): correct the NULL-partition docs and stop hopeless previews
omit 97493b2573f chore(translations): regenerate messages.pot for the partition mapping editor
omit 98dcd5e19a8 fix: satisfy the frontend hooks on the partition mapping editor
omit b4b1c05cc2e fix(datasets): drop an unused import from the dataset schemas
omit fff6aecdb7c docs: correct where the partition mapping controls live
omit 1ec461fcccb fix(datasets): wrap long text in the partition mapping row expand
omit d54b81256da feat(datasets): add the partition filter mapping editor UI
omit 7ee7f03aef8 chore(datasets): add the preview strings to the message catalogs
omit 8eb46d930a6 docs: document partition filter mapping
omit 2c664ba8cc0 docs: regenerate the OpenAPI spec for the preview schema bounds
omit d9125ebe190 fix(datasets): make the preview throttle atomic, bounded and fixed-window
omit e1c750fc7a9 feat(datasets): add partition mapping preview endpoint and editor plumbing
omit 3d028a015a3 feat(datasets): mirror grain-bearing ranges by widening both bounds
omit f4124ac86c3 fix(datasets): key the transform probe on the connection
omit 1987cb8cfd6 fix(datasets): keep mirrored predicates no narrower than the filter
omit 2f6aaf142d2 feat(datasets): mirror filters onto the partition column at query time
omit ae33f9f1106 test(mobile): pin the mobile dashboard tests to the world_health sample
omit f0febd8ab5b fix(datasets): gate partition mapping validation on the feature flag
omit 17a5f683121 fix(datasets): make the Explore mapping indicator agree with save-time validation
omit b54daf52dc5 chore(datasets): regenerate the message catalogs and the OpenAPI spec
omit 3fb09a3e083 fix(datasets): don't let a partition mapping be clobbered, blocked or orphaned
omit d61bff53f90 test(sql): drop a leftover merge-resolution note from parse_tests
omit 51a1483ef6c fix(datasets): rebase the partition mapping migration onto master's head
omit 2f4c14bf23d docs(datasets): scope the PARTITION_FILTER_MAPPING flag description
omit a6fd901d57e feat(datasets): add partition filter mapping model, migration and validation
add 2ec20003ed5 chore: Update CODEOWNERS to include @sadpandajoe (#45120)
add e5c5e918359 feat(mcp): add typed Sunburst chart support (#43771)
add 4ca736d81c5 fix(semantic-layer): require write access for configuration schema enrichment (#45107)
add 6efc896e5b9 test(dashboard): wait for async submenu and debounced validation in flaky tests (#45106)
add 3bc9e9e479f fix(datasets): accept certification fields on dataset column and metric PUT (#45091)
add cd34cc1019f chore(deps): bump chromaui/action from 18.10.1 to 18.10.2 (#45134)
add 1b35374fecb fix(semantic-layer): honor provider preferred time dimension (#44997)
add ffc81d92a2c feat(dashboard): add column allowlist to Group By native filter (#43736)
add 3fc078abe6b fix(soft-delete): preserve a shared datasource permission on purge (#45034)
add a4a0899e92c perf(versioning): defer capture policy until versioned work (#44928)
add 99899bd392f fix(date-parser): reject malformed time ranges instead of scanning everything (#45098)
add 13c5ff8c87f chore(deps-dev): bump wait-on from 9.4.0 to 9.5.1 in /superset-frontend (#45048)
add 61df1692584 chore(deps): bump mapbox-gl from 3.31.0 to 3.32.0 in /superset-frontend (#45049)
add 035ae052525 chore(deps-dev): bump vitest from 5.0.2 to 5.0.3 in /superset-embedded-sdk (#45074)
add 9635e7f1f91 chore(deps): bump the swc group across 2 directories with 1 update (#45118)
add 9e7a05e6ed1 chore(deps-dev): bump @types/node in /superset-embedded-sdk (#45121)
add cda7a1e8189 chore(deps): bump swagger-ui-react from 5.33.0 to 5.33.1 in /docs (#45122)
add cfb0ed61eb8 chore(deps): bump yargs from 18.1.0 to 18.2.0 in /superset-frontend (#45129)
add a8fc576cfe3 chore(deps-dev): bump oxfmt in /docs (#45119)
add bedcadb4071 feat(datasets): add partition filter mapping model, migration and validation
add 86532a4586a docs(datasets): scope the PARTITION_FILTER_MAPPING flag description
add 65d414db57d fix(datasets): rebase the partition mapping migration onto master's head
add ce79a5b0d17 test(sql): drop a leftover merge-resolution note from parse_tests
add 880a585e121 fix(datasets): don't let a partition mapping be clobbered, blocked or orphaned
add 91c08796a53 chore(datasets): regenerate the message catalogs and the OpenAPI spec
add cf5cb0753dd fix(datasets): make the Explore mapping indicator agree with save-time validation
add 5766fc9dfd7 fix(datasets): gate partition mapping validation on the feature flag
add 4feadb3df2c feat(datasets): mirror filters onto the partition column at query time
add 5b0029cf39d fix(datasets): keep mirrored predicates no narrower than the filter
add 8d2cc3828ef fix(datasets): key the transform probe on the connection
add 98055d6cafd feat(datasets): mirror grain-bearing ranges by widening both bounds
add c9d55f8c363 feat(datasets): add partition mapping preview endpoint and editor plumbing
add 49efedce789 fix(datasets): make the preview throttle atomic, bounded and fixed-window
add 525c57f9a07 docs: regenerate the OpenAPI spec for the preview schema bounds
add 94d0695d7b5 chore(datasets): add the preview strings to the message catalogs
add ca52c1c8de6 docs: document partition filter mapping
add 9c4c7480f9d feat(datasets): add the partition filter mapping editor UI
add c4899710632 fix(datasets): wrap long text in the partition mapping row expand
add 0d84c0ad9d3 docs: correct where the partition mapping controls live
add bc18af015d4 fix(datasets): drop an unused import from the dataset schemas
add d48076a9c6b fix: satisfy the frontend hooks on the partition mapping editor
add 0cd9620b804 fix(datasets): correct the NULL-partition docs and stop hopeless previews
add 8b832af48a2 style: let ruff format the preview sample-input return
add 6b6450f1121 feat(explore): indicate when a filter is mirrored onto a partition column
add 34c64203f6a fix(explore): only show the pruning glyph on filters that actually mirror
add ade1f932a1c style(explore): apply oxfmt to the partition mapping helpers
add 1613201ffed fix(explore): keep the time range pruning glyph in sync with field updates
add 21e98cd830a style(explore): re-attach the partition column defaults docstring
add 89e06d861fd fix(explore): keep exactly one column holding a partition mapping
add faaa56bd408 fix(explore): stop a removed or re-pointed mapping resurrecting a stale transform
add d4b326113b1 fix(datasets): stop a stale partition transform surviving an API write
add aed5c95c90e fix(explore): stop the time range control clobbering its own value
add 74fb38b70e4 fix(explore): a control can never be its own validation dependant
add d43a63d64fc fix(datasets): do not carry a value transform to a new datetime column
add 7d0aa442b3b test(explore): pin every chart that carries a standalone time range
add c6389bae76b test(explore): make the time range regression tests type-check
add c8789aa60ae fix(datasets): stop the value transform input dropping keystrokes
add 74b5d7a4122 fix(datasets): stop the save when the value transform cannot be saved
add d74a1a196ee fix(explore): let the time range control config infer its own control type
add 990410fc4fc fix(datasets): validate a partition mapping at every door, not just PUT
add 39ebc9413df fix(datasets): give the query path the same transform gate as the editor
add c747508743a fix(datasets): close the gate preview went around, and stop it 500ing
add af2b291095e fix(datasets): make the editor's claims match what will actually mirror
add 3668d11d9ff fix(explore): only promise pruning where the query actually prunes
add c468ce5ab8c refactor(datasets): name the shared transform bound in the preview schema
add 01eba8dfb43 fix(explore): hoist transformCanPreview, pin the empty-string sentinel
add 04a2986326d test(datasets): drop the permission the preview route no longer defines
add 311c4851779 fix(explore): guard the map-a-different-column link against having no target
add a004a0ff5b3 fix(datasets): disarm a parked transform before a mapping change arms it
add deaca20d9f5 fix(datasets): gate every door a partition value transform enters by
add b9e388c6c48 fix(datasets): let import accept the null export writes
add 1f65535fe44 fix(datasets): stop the probe mangling its own SQL and its own results
add 681400f504f fix(datasets): require a value transform to be a bare scalar expression
add 3fc2465e6bd fix(datasets): let preview refuse what the query path already refuses
add 4e9e76c6292 fix(datasets): stop import discarding what a PUT deliberately keeps
add 2bc3d778d36 fix(datasets): probe the transform with the value the predicate compares
add 84439af53bb fix(datasets): mirror the window each query actually filters
add 85b1addb68a fix(datasets): stop create minting a dataset no write can fix
add fced8ba878e fix(datasets): repair a dangling mapping against what the request asked for
add f3f49af437e fix(datasets): mirror equality only where the engine compares exactly
add e722491958c fix(explore): keep the pruning glyphs across a dataset save
add 24ca0e49b2a fix(datasets): stop the editor losing edits it cannot show, or a sibling's
add 39699dac635 chore: regenerate the OpenAPI spec and message catalogs
add e84b6d2abb8 fix(datasets): probe the transform the engine will actually run
add 3ba0f3cce6c fix(datasets): validate the mapping against every column, not just physical
add fed6baab66f docs(datasets): say what a partition value transform may be
add 257df8dcd77 test(sql): cover the two SQLStatement methods directly
add 0690d1eb102 fix(datasets): substitute a probe's rendered SQL literally
add deb0b756f33 fix(datasets): widen a mirror to the day when the engine drops the time
add 63cb0cdd98b fix(datasets): probe an epoch-millisecond filter as SQL, not a bind value
add 605276f4079 fix(datasets): default an omitted monotonic declaration to false on import
add 52c758a4ddd fix(datasets): disarm parked transforms before an overwrite import
add 4b93825cd94 fix(datasets): repair mapping references after a metadata refresh
add e278dd03682 fix(datasets): carry the column-side mapping through a duplicate
add ea3ecf65146 fix(datasource): restore the collection table's row-class and reveal props
add 380956a582d perf(datasets): skip the partition probe during cache-key extraction
add 90bc18f54a9 fix(security): deny the schema_to_xml family and enforce the denylist on save
add 9c93e1072d1 docs(datasets): name the cache backend the probe guards need
add fea9e2117bf test(datasets): type the two new partition mapping test fixtures
add 909a4ccb7e5 fix(datasets): mirror a strict bound non-strictly (R5-04)
add 65e0a41ad6e fix(datasets): reject a partition column the sync does not find (R5-02)
add b4a5c78505d fix(datasets): read a filter literal as the instant the engine compares
add b12ccffba1c fix(explore): stop the glyph promising a mirror the engine's resolution declines
add c51d1bbb162 fix(datasets): stop a column sync resetting flags it was not asked to change
add f8ae1a29a03 fix(datasets): only claim mirroring once a probe has reported
add 4b95c29163d fix(datasets): refuse a transform whose result the partition column cannot hold
add 6c987dc1ad8 docs(datasets): add the indicator to the list of things the cache carries
add 8967be64c1c fix(explore): narrow the mapping where the glyph's gate already proves it
add 7637aa2656f fix(security): deny the full-text functions that run their argument as a query
add c8a9ed11f83 fix(datasource): stop an edit reopening a row the user collapsed
add b6df89506ea fix(datasets): drop a mirror the ranking subquery has no filter for
add e61f2905af5 fix(datasets): hold a text partition key to a text probe result
add 75a38ccf930 fix(datasets): decline a literal the engine reads more coarsely than we can
add 770a0e00c88 fix(security): stop a transform cancelling the placeholder-position gate
add 8dd7a5449df fix(datasets): preview a filter the way the chart path mirrors it
add 6b25a733cb1 chore: regenerate the message catalogs
add bafd0b55467 fix(explore): stop designating a partition column changing its flags
add 981ea239977 resolve conflicts
add e302b64c33d Cursor/resolve pfm conflicts b2f7 (#45040)
add 403df88c485 fix: partition-filtering on pfm-6 (#45058)
add 2dc8c4b52e7 Update superset/migrations/versions/2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py
add 32f997b826f fix: pfm 8 merge and review (#45132)
add f1dce857667 fix(datasets): check the literal resolution of an unflagged DATE column
add 8f4085c62ad chore(datasets): name the migration's real parent in its docstring
add 1ee6c37febe fix(datasets): decline an offset-bearing filter value on a full-resolution column
add 159185ed034 fix(datasets): probe a numeric filter value in the column's number type
add a533814e7b0 fix(datasets): say why preview withdraws text equality
add 1fa334d2899 fix(datasets): preview an array column with the literal the chart probes
add dee9cca8f8a fix(datasets): preview a numeric temporal column in its stored representation
add e61585070ea fix(datasets): stop the partition column help claiming it hides the column
add d808efd1f0a chore: regenerate the message catalogs
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 (b83e550984e)
\
N -- N -- N refs/heads/hughhhh/pfm-6-explore-indicator (d808efd1f0a)
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/CODEOWNERS | 8 +-
.github/workflows/chromatic.yml | 2 +-
UPDATING.md | 38 +
docs/admin_docs/configuration/mcp-server.mdx | 97 +-
.../extensions/contribution-types.md | 16 +
docs/developer_docs/extensions/mcp.md | 9 +
.../using-superset/exporting-dashboard-data.mdx | 4 +-
.../docs/using-superset/using-ai-with-superset.mdx | 32 +
docs/package.json | 6 +-
docs/static/resources/openapi.json | 32 +
docs/yarn.lock | 404 +-
.../src/superset_core/semantic_layers/view.py | 3 +
superset-embedded-sdk/package-lock.json | 184 +-
superset-embedded-sdk/package.json | 4 +-
superset-frontend/package-lock.json | 308 +-
superset-frontend/package.json | 12 +-
.../packages/superset-ui-core/package.json | 2 +-
.../plugin-chart-point-cluster-map/package.json | 2 +-
.../DynamicGroupBy/DynamicGroupByPlugin.test.tsx | 56 +
.../DynamicGroupBy/DynamicGroupByPlugin.tsx | 52 +-
.../DynamicGroupBy/columnAllowlist.test.ts | 67 +
.../components/DynamicGroupBy/columnAllowlist.ts | 105 +
.../components/DynamicGroupBy/types.ts | 5 +
.../PartitionColumnFields.tsx | 2 +-
.../PartitionFilterMapping.test.tsx | 1 +
.../components/PartitionFilterMapping/types.ts | 1 +
.../PartitionFilterMapping/utils.test.ts | 32 +
.../components/PartitionFilterMapping/utils.ts | 24 +-
.../components/gridComponents/Chart/Chart.test.tsx | 24 +-
.../FilterControls/GroupByFilterCard.test.tsx | 159 +
.../FilterBar/FilterControls/GroupByFilterCard.tsx | 41 +-
.../FiltersConfigForm/ColumnSelect.test.tsx | 39 +
.../FiltersConfigForm/ColumnSelect.tsx | 99 +-
.../FiltersConfigForm/FiltersConfigForm.tsx | 197 +-
.../GroupByColumnAllowlist.test.tsx | 429 ++
.../FiltersConfigModal/FiltersConfigModal.test.tsx | 6 +-
.../transformers/customizationTransformer.test.ts | 109 +
.../transformers/customizationTransformer.ts | 59 +-
.../nativeFilters/FiltersConfigModal/types.ts | 4 +
superset-websocket/package-lock.json | 8 +-
superset-websocket/package.json | 2 +-
superset/charts/data/form_data.py | 2 +-
.../commands/deletion_retention/purge_policy.py | 26 +-
superset/common/form_data_query_context.py | 1599 +++++-
superset/common/tabular_query.py | 7 +-
superset/connectors/sqla/partition_mapping.py | 42 +-
superset/dashboards/excel_export/workbook.py | 11 +-
superset/datasets/schemas.py | 39 +-
superset/mcp_service/app.py | 8 +-
superset/mcp_service/chart/chart_helpers.py | 524 +-
superset/mcp_service/chart/chart_utils.py | 1059 +++-
superset/mcp_service/chart/compile.py | 145 +-
superset/mcp_service/chart/plugin.py | 202 +-
superset/mcp_service/chart/plugins/__init__.py | 3 +
superset/mcp_service/chart/plugins/big_number.py | 23 +-
superset/mcp_service/chart/plugins/bubble.py | 4 +-
superset/mcp_service/chart/plugins/gantt.py | 32 +
superset/mcp_service/chart/plugins/gauge.py | 40 +-
superset/mcp_service/chart/plugins/histogram.py | 10 +-
.../mcp_service/chart/plugins/mixed_timeseries.py | 84 +-
superset/mcp_service/chart/plugins/pivot_table.py | 4 +
superset/mcp_service/chart/plugins/sunburst.py | 288 +
superset/mcp_service/chart/plugins/table.py | 25 +
superset/mcp_service/chart/plugins/treemap.py | 3 +-
superset/mcp_service/chart/plugins/waterfall.py | 6 +-
superset/mcp_service/chart/plugins/xy.py | 30 +-
superset/mcp_service/chart/preview_utils.py | 376 +-
superset/mcp_service/chart/query_result.py | 1756 ++++++-
superset/mcp_service/chart/registry.py | 18 +
.../mcp_service/chart/resources/chart_configs.py | 55 +-
superset/mcp_service/chart/response_preflight.py | 204 +
superset/mcp_service/chart/schemas.py | 1421 ++++-
superset/mcp_service/chart/sunburst.py | 436 ++
superset/mcp_service/chart/tool/generate_chart.py | 122 +-
superset/mcp_service/chart/tool/get_chart_data.py | 642 ++-
.../mcp_service/chart/tool/get_chart_preview.py | 160 +-
superset/mcp_service/chart/tool/get_chart_sql.py | 195 +-
.../chart/tool/get_chart_type_schema.py | 23 +-
superset/mcp_service/chart/tool/update_chart.py | 469 +-
.../mcp_service/chart/tool/update_chart_preview.py | 366 +-
.../chart/validation/dataset_validator.py | 431 +-
.../validation/runtime/chart_type_suggester.py | 13 +-
.../mcp_service/common/time_range_validation.py | 81 +-
superset/mcp_service/dataset/schemas.py | 10 +-
superset/mcp_service/dataset/tool/query_dataset.py | 149 +-
superset/mcp_service/semantic_layer/schemas.py | 8 +-
.../mcp_service/semantic_layer/tool/get_table.py | 128 +-
superset/mcp_service/utils/cache_utils.py | 32 +-
superset/mcp_service/utils/response_utils.py | 294 +-
superset/mcp_service/utils/serialization.py | 51 +-
...01_a7f3c2e91d84_add_partition_filter_mapping.py | 2 +-
superset/models/helpers.py | 113 +-
superset/security/manager.py | 102 +-
superset/semantic_layers/api.py | 8 +-
superset/semantic_layers/models.py | 36 +-
superset/translations/ar/LC_MESSAGES/messages.po | 34 +-
superset/translations/ca/LC_MESSAGES/messages.po | 34 +-
superset/translations/cs/LC_MESSAGES/messages.po | 34 +-
superset/translations/de/LC_MESSAGES/messages.po | 34 +-
superset/translations/en/LC_MESSAGES/messages.po | 34 +-
superset/translations/es/LC_MESSAGES/messages.po | 34 +-
superset/translations/fa/LC_MESSAGES/messages.po | 34 +-
superset/translations/fi/LC_MESSAGES/messages.po | 34 +-
superset/translations/fr/LC_MESSAGES/messages.po | 34 +-
superset/translations/it/LC_MESSAGES/messages.po | 34 +-
superset/translations/ja/LC_MESSAGES/messages.po | 34 +-
superset/translations/ko/LC_MESSAGES/messages.po | 34 +-
superset/translations/lv/LC_MESSAGES/messages.po | 34 +-
superset/translations/messages.pot | 25 +-
superset/translations/mi/LC_MESSAGES/messages.po | 34 +-
superset/translations/nl/LC_MESSAGES/messages.po | 34 +-
superset/translations/pl/LC_MESSAGES/messages.po | 34 +-
superset/translations/pt/LC_MESSAGES/messages.po | 34 +-
.../translations/pt_BR/LC_MESSAGES/messages.po | 34 +-
superset/translations/ro/LC_MESSAGES/messages.po | 34 +-
superset/translations/ru/LC_MESSAGES/messages.po | 34 +-
superset/translations/sk/LC_MESSAGES/messages.po | 34 +-
superset/translations/sl/LC_MESSAGES/messages.po | 34 +-
superset/translations/sr/LC_MESSAGES/messages.po | 34 +-
.../translations/sr_Latn/LC_MESSAGES/messages.po | 34 +-
superset/translations/ta/LC_MESSAGES/messages.po | 34 +-
superset/translations/th/LC_MESSAGES/messages.po | 34 +-
superset/translations/tr/LC_MESSAGES/messages.po | 34 +-
superset/translations/uk/LC_MESSAGES/messages.po | 34 +-
superset/translations/zh/LC_MESSAGES/messages.po | 34 +-
.../translations/zh_TW/LC_MESSAGES/messages.po | 34 +-
superset/utils/date_parser.py | 4 +
superset/versioning/baseline/listener.py | 6 +-
superset/versioning/changes/listener.py | 15 +-
superset/versioning/metrics.py | 6 +-
superset/versioning/unit_of_work.py | 42 +-
.../deletion_retention/purge_tests.py | 200 +
.../charts/data/test_time_range_validation.py | 48 +
.../common/test_form_data_query_context.py | 296 +-
.../dashboards/test_excel_export_sync_budget.py | 47 +
tests/unit_tests/datasets/dao/dao_tests.py | 65 +
.../datasets/partition_mapping_preview_test.py | 73 +
tests/unit_tests/datasets/schema_tests.py | 52 +
.../mcp_service/chart/query_result_fixtures.py | 165 +
...test_axis_offset_and_spatial_query_contracts.py | 474 ++
.../mcp_service/chart/test_bubble_chart.py | 10 +-
.../mcp_service/chart/test_chart_helpers.py | 504 +-
.../chart/test_chart_plugin_contract.py | 227 +-
.../mcp_service/chart/test_chart_utils.py | 113 +
tests/unit_tests/mcp_service/chart/test_compile.py | 470 +-
.../mcp_service/chart/test_gantt_chart.py | 35 +-
..._metric_aggregation_and_comparison_contracts.py | 379 ++
...ative_form_data_and_dataset_rebind_contracts.py | 1326 +++++
.../mcp_service/chart/test_new_chart_types.py | 4 +-
.../mcp_service/chart/test_preview_utils.py | 292 +-
.../mcp_service/chart/test_query_result.py | 2027 ++++++-
.../unit_tests/mcp_service/chart/test_registry.py | 33 +-
.../mcp_service/chart/test_response_preflight.py | 486 ++
.../test_review_query_and_preview_regressions.py | 438 ++
.../mcp_service/chart/test_sunburst_chart.py | 5547 ++++++++++++++++++++
.../mcp_service/chart/test_treemap_completeness.py | 56 +-
.../mcp_service/chart/tool/test_generate_chart.py | 95 +
.../mcp_service/chart/tool/test_get_chart_data.py | 2378 ++++++++-
.../chart/tool/test_get_chart_preview.py | 362 +-
.../mcp_service/chart/tool/test_get_chart_sql.py | 332 +-
.../mcp_service/chart/tool/test_update_chart.py | 834 ++-
.../chart/tool/test_update_chart_preview.py | 245 +-
.../chart/validation/test_dataset_validator.py | 228 +-
.../common/test_time_range_validation.py | 82 +-
.../mcp_service/dataset/tool/test_query_dataset.py | 954 +++-
.../explore/tool/test_generate_explore_link.py | 476 +-
.../semantic_layer/tool/test_get_table.py | 1009 +++-
.../mcp_service/test_chart_tool_inventory.py | 2 +-
.../unit_tests/mcp_service/test_dashboard_scope.py | 11 +-
.../unit_tests/mcp_service/test_tool_inventory.py | 2 +-
.../mcp_service/utils/test_cache_utils.py | 32 +-
.../mcp_service/utils/test_response_utils.py | 246 +
.../mcp_service/utils/test_serialization.py | 68 +
.../unit_tests/models/partition_mirroring_test.py | 117 +
.../unit_tests/models/test_certification_mixin.py | 76 +
tests/unit_tests/security/manager_test.py | 203 +
tests/unit_tests/semantic_layers/api_test.py | 77 +
tests/unit_tests/semantic_layers/models_test.py | 97 +-
tests/unit_tests/utils/date_parser_tests.py | 47 +
tests/unit_tests/versioning/test_listener.py | 16 +-
.../unit_tests/versioning/test_runtime_capture.py | 157 +
181 files changed, 33729 insertions(+), 3503 deletions(-)
create mode 100644 superset-frontend/src/chartCustomizations/components/DynamicGroupBy/columnAllowlist.test.ts
create mode 100644 superset-frontend/src/chartCustomizations/components/DynamicGroupBy/columnAllowlist.ts
create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FiltersConfigModal/FiltersConfigForm/GroupByColumnAllowlist.test.tsx
create mode 100644 superset/mcp_service/chart/plugins/sunburst.py
create mode 100644 superset/mcp_service/chart/response_preflight.py
create mode 100644 superset/mcp_service/chart/sunburst.py
create mode 100644 tests/unit_tests/charts/data/test_time_range_validation.py
create mode 100644 tests/unit_tests/mcp_service/chart/query_result_fixtures.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_axis_offset_and_spatial_query_contracts.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_metric_aggregation_and_comparison_contracts.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_native_form_data_and_dataset_rebind_contracts.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_response_preflight.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_review_query_and_preview_regressions.py
create mode 100644 tests/unit_tests/mcp_service/chart/test_sunburst_chart.py
create mode 100644 tests/unit_tests/models/test_certification_mixin.py