You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by hu...@apache.org on 2026/10/13 15:40:04 UTC

(superset) branch hughhhh/pfm-6-explore-indicator updated (e95d22bf2bc -> 267a6ce2eff)

This is an automated email from the ASF dual-hosted git repository.

hughhhh pushed a change to branch hughhhh/pfm-6-explore-indicator
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard e95d22bf2bc Update superset/config.py
    omit ad5bb47d4be fix(datasets): find a Jinja block without a quadratic regex
    omit 4eb61ef1e93 chore: regenerate the message catalogs
    omit b731e7e4c24 fix(datasets): repair the mapping when a column is deleted on its own
    omit 9a60a4c4c69 fix(security): redact the partition mapping from a dataset the caller cannot access
    omit b4da0a45ef9 fix(security): refuse a transform that reads a sequence
    omit 44dbd8f958d chore: regenerate the message catalogs
    omit bea3f623528 fix(datasets): repair the mapping on the legacy v0 import path too
    omit e7e22dfcb7f fix(datasource): re-check the preview's identity after normalizing an error
    omit f6b7e7770db fix(explore): stop the glyph promising a mirror an offset declines
    omit 2190872dccd fix(datasets): publish the preview's offset reason in the API spec
    omit 571fc584932 fix(security): deny the Oracle function that reads a table by path string
    omit e2d86329871 fix(security): refuse a transform that names something through a U& escape
    omit 15cc6a83fdb fix(datasets): let the engine say which text it reads as an instant
    omit 7d76e9b0f8d fix(datasets): rebase the migration onto master's current head
    omit a595d2512bf chore: regenerate the message catalogs
    omit 19fbe2610ef fix(security): deny the Oracle functions that run their argument as a query
    omit 5cc3d088ab2 fix(datasource): show a mapping issue the owner can save through as a warning
    omit b5d9288b9d4 fix(datasource): merge a column sync against the state it comes back to
    omit 0125b7a530b fix(datasets): repair the mapping when an upload replaces a dataset's columns
    omit 678cc3a3f0a test(datasets): freeze the clock the preview budget buckets on
    omit 639c619672e fix(datasets): hold a mirror to the comparison the engine performs
    omit bc5649043a2 fix(datasets): decline an array element the dialect cannot render
    omit 13661bef2dd chore: regenerate the message catalogs
    omit 06e6f38b594 fix(datasets): stop the partition column help claiming it hides the column
    omit bcb8d101fd0 fix(datasets): preview a numeric temporal column in its stored representation
    omit 6e6eb0b3e16 fix(datasets): preview an array column with the literal the chart probes
    omit 531bd7ce06d fix(datasets): say why preview withdraws text equality
    omit f6c05cd6972 fix(datasets): probe a numeric filter value in the column's number type
    omit 40a770cb870 fix(datasets): decline an offset-bearing filter value on a full-resolution column
    omit 0928eb53ecb chore(datasets): name the migration's real parent in its docstring
    omit 08602af28c8 fix(datasets): check the literal resolution of an unflagged DATE column
    omit 84b8257dd47 fix: pfm 8 merge and review (#45132)
    omit 4c9db693f7b Update superset/migrations/versions/2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py
    omit dd326a3a80a fix: partition-filtering on pfm-6 (#45058)
    omit f8d413bbc8d Cursor/resolve pfm conflicts b2f7 (#45040)
    omit 11a4782caa0 resolve conflicts
    omit 35e863af248 fix(explore): stop designating a partition column changing its flags
    omit dee08f46a7b chore: regenerate the message catalogs
    omit 51bbe2c2e9f fix(datasets): preview a filter the way the chart path mirrors it
    omit bda44084044 fix(security): stop a transform cancelling the placeholder-position gate
    omit b082c306064 fix(datasets): decline a literal the engine reads more coarsely than we can
    omit 6346d9d03c2 fix(datasets): hold a text partition key to a text probe result
    omit 71da9bfd1f3 fix(datasets): drop a mirror the ranking subquery has no filter for
    omit 4fc53a41c91 fix(datasource): stop an edit reopening a row the user collapsed
    omit d57622326ef fix(security): deny the full-text functions that run their argument as a query
    omit be142e182c4 fix(explore): narrow the mapping where the glyph's gate already proves it
    omit 2ee8cf29b32 docs(datasets): add the indicator to the list of things the cache carries
    omit eb415f3812d fix(datasets): refuse a transform whose result the partition column cannot hold
    omit 335827d3222 fix(datasets): only claim mirroring once a probe has reported
    omit 402ea4e9501 fix(datasets): stop a column sync resetting flags it was not asked to change
    omit 2ee95c69fef fix(explore): stop the glyph promising a mirror the engine's resolution declines
    omit 8c14f76d7b9 fix(datasets): read a filter literal as the instant the engine compares
    omit e3ae8421421 fix(datasets): reject a partition column the sync does not find (R5-02)
    omit f80166d82b3 fix(datasets): mirror a strict bound non-strictly (R5-04)
    omit e7892cbe3fa test(datasets): type the two new partition mapping test fixtures
    omit bbbfbda8714 docs(datasets): name the cache backend the probe guards need
    omit 85b09b01f3b fix(security): deny the schema_to_xml family and enforce the denylist on save
    omit 1f1520dc5f3 perf(datasets): skip the partition probe during cache-key extraction
    omit b0a4485b728 fix(datasource): restore the collection table's row-class and reveal props
    omit 1cba63fea63 fix(datasets): carry the column-side mapping through a duplicate
    omit 1406c4dca21 fix(datasets): repair mapping references after a metadata refresh
    omit 123cfac882c fix(datasets): disarm parked transforms before an overwrite import
    omit 016987c11ac fix(datasets): default an omitted monotonic declaration to false on import
    omit 58ede1b0763 fix(datasets): probe an epoch-millisecond filter as SQL, not a bind value
    omit bd639b53850 fix(datasets): widen a mirror to the day when the engine drops the time
    omit 5db15d63f6d fix(datasets): substitute a probe's rendered SQL literally
    omit e8c0a75c619 test(sql): cover the two SQLStatement methods directly
    omit 05ffaabb397 docs(datasets): say what a partition value transform may be
    omit 387db7f49a4 fix(datasets): validate the mapping against every column, not just physical
    omit 3695f184251 fix(datasets): probe the transform the engine will actually run
    omit 475071edcf2 chore: regenerate the OpenAPI spec and message catalogs
    omit 03eb906664d fix(datasets): stop the editor losing edits it cannot show, or a sibling's
    omit 3ece8b39b74 fix(explore): keep the pruning glyphs across a dataset save
    omit 111fa6ac50c fix(datasets): mirror equality only where the engine compares exactly
    omit 80999a9af0d fix(datasets): repair a dangling mapping against what the request asked for
    omit b846420bc5f fix(datasets): stop create minting a dataset no write can fix
    omit 58253986c3c fix(datasets): mirror the window each query actually filters
    omit a3c55ce115a fix(datasets): probe the transform with the value the predicate compares
    omit 7f17dc90030 fix(datasets): stop import discarding what a PUT deliberately keeps
    omit ba092f5de00 fix(datasets): let preview refuse what the query path already refuses
    omit 2695435d9e0 fix(datasets): require a value transform to be a bare scalar expression
    omit 25f04a69dcb fix(datasets): stop the probe mangling its own SQL and its own results
    omit 0c9dc2c72ca fix(datasets): let import accept the null export writes
    omit 670efa96374 fix(datasets): gate every door a partition value transform enters by
    omit 164a81c863d fix(datasets): disarm a parked transform before a mapping change arms it
    omit 3f273af196f fix(explore): guard the map-a-different-column link against having no target
    omit dc38110d3fe test(datasets): drop the permission the preview route no longer defines
    omit 3f2ca8f9d11 fix(explore): hoist transformCanPreview, pin the empty-string sentinel
    omit 58a52460906 refactor(datasets): name the shared transform bound in the preview schema
    omit 06ca50c41c8 fix(explore): only promise pruning where the query actually prunes
    omit a3c19b194ea fix(datasets): make the editor's claims match what will actually mirror
    omit 0450dc695e0 fix(datasets): close the gate preview went around, and stop it 500ing
    omit 942317cb039 fix(datasets): give the query path the same transform gate as the editor
    omit 6cc520e1e2a fix(datasets): validate a partition mapping at every door, not just PUT
    omit 11fa480c504 fix(explore): let the time range control config infer its own control type
    omit b9b7dc12b45 fix(datasets): stop the save when the value transform cannot be saved
    omit 5a931fe7491 fix(datasets): stop the value transform input dropping keystrokes
    omit d56994fd285 test(explore): make the time range regression tests type-check
    omit 96e4be7e3d4 test(explore): pin every chart that carries a standalone time range
    omit c152a7f98a4 fix(datasets): do not carry a value transform to a new datetime column
    omit 586a25fbdbd fix(explore): a control can never be its own validation dependant
    omit d7888e1e0cc fix(explore): stop the time range control clobbering its own value
    omit 7fd708aee67 fix(datasets): stop a stale partition transform surviving an API write
    omit 8b93c5a21ce fix(explore): stop a removed or re-pointed mapping resurrecting a stale transform
    omit 49d7b7ec70c fix(explore): keep exactly one column holding a partition mapping
    omit 2d1429c09c8 style(explore): re-attach the partition column defaults docstring
    omit 7dde9bafc76 fix(explore): keep the time range pruning glyph in sync with field updates
    omit 788bbdf8b4a style(explore): apply oxfmt to the partition mapping helpers
    omit 7b78bf16be8 fix(explore): only show the pruning glyph on filters that actually mirror
    omit 7b346c7a07a feat(explore): indicate when a filter is mirrored onto a partition column
    omit 0b1616a8772 style: let ruff format the preview sample-input return
    omit 0a5f5707612 fix(datasets): correct the NULL-partition docs and stop hopeless previews
    omit 9ffb535d969 fix: satisfy the frontend hooks on the partition mapping editor
    omit 9979dfa3ab7 fix(datasets): drop an unused import from the dataset schemas
    omit 52783748ca4 docs: correct where the partition mapping controls live
    omit 16129260c86 fix(datasets): wrap long text in the partition mapping row expand
    omit 5071e1b75e0 feat(datasets): add the partition filter mapping editor UI
    omit dc9cfd5ec2e docs: document partition filter mapping
    omit 94b8d042fe6 chore(datasets): add the preview strings to the message catalogs
    omit a10539d1860 docs: regenerate the OpenAPI spec for the preview schema bounds
    omit 425a5735796 fix(datasets): make the preview throttle atomic, bounded and fixed-window
    omit 39464b4d201 feat(datasets): add partition mapping preview endpoint and editor plumbing
    omit 7edc7fa6361 feat(datasets): mirror grain-bearing ranges by widening both bounds
    omit 4c161373777 fix(datasets): key the transform probe on the connection
    omit 50cc8612b34 fix(datasets): keep mirrored predicates no narrower than the filter
    omit 7786b2caab5 feat(datasets): mirror filters onto the partition column at query time
    omit 1a8a7ea7059 fix(datasets): gate partition mapping validation on the feature flag
    omit 0c970faa704 fix(datasets): make the Explore mapping indicator agree with save-time validation
    omit e4e6c54e30f chore(datasets): regenerate the message catalogs and the OpenAPI spec
    omit 09135a4744e fix(datasets): don't let a partition mapping be clobbered, blocked or orphaned
    omit b02acdcc9b8 test(sql): drop a leftover merge-resolution note from parse_tests
    omit e202c8baabd fix(datasets): rebase the partition mapping migration onto master's head
    omit ad93018bf70 docs(datasets): scope the PARTITION_FILTER_MAPPING flag description
    omit ea1910f702a feat(datasets): add partition filter mapping model, migration and validation
     add ea0687222a5 fix(dashboard): honour DASHBOARD_AUTO_REFRESH_INTERVALS in the refresh dropdown (#44982)
     add 11b6997a488 fix(dashboard): drop missing semantic-view controls on restore (#45130)
     add f923be702a1 fix(semantic-layer): report incompatible dashboard filters on semantic views instead of dropping them (#45105)
     add f774479c990 fix(mcp): allow chart filtering by dataset ID (#44950)
     add 60c66fe8d50 fix(explore): honor chart edit permissions for titles (#45146)
     add 59404f47cd3 feat(mcp): target semantic views in chart tools (#44393)
     add 945d8bbd632 fix(mcp): promote tools whose full names appear in a search query (#45149)
     add 63a7a6e4eca chore(deps): bump chrono-node from 2.10.1 to 2.10.2 in /superset-frontend (#45227)
     add dd1312b3c2b chore(deps-dev): bump the typescript-eslint group across 1 directory with 2 updates (#45224)
     add aa321aab31d chore(deps): bump chromaui/action from 18.10.2 to 18.11.0 (#45222)
     add a26c984279c chore(deps-dev): bump oxlint from 1.86.0 to 1.87.0 in /docs (#45226)
     add 962272b6f20 feat(semantic-layer): allow toggling SEMANTIC_LAYERS at runtime (#45061)
     add f154d23a954 fix(dashboard): reconcile position_json against membership on save (#44028)
     add b39e1e0db71 chore(ci): correct upload-artifact version comment to v7.0.1 (#45229)
     add 8f13b2b2e69 chore(ci): correct upload-artifact version comment in translations workflow (#45213)
     add 9c70fa40159 chore(deps-dev): bump oxfmt from 0.71.0 to 0.72.0 in /docs (#45225)
     add 1cedab01e9e chore(deps): bump geostyler-openlayers-parser from 5.7.1 to 5.8.0 in /superset-frontend (#45077)
     add 0f875cadbe0 fix(network): refine address classification (#45230)
     add 1578b8cbc11 fix(semantic-layer): restore value suggestions for semantic view filters (#45109)
     add 6d974e19c51 fix(mcp): keep the saved chart variant when update_chart omits it (#45221)
     add f18c034a689 fix(connection): let SupersetClient.postForm accept an absolute url (#45204)
     add 1caea41f425 docs: give bare relative links an explicit extension (#43170)
     add e7ca70c784e fix(datasource): apply target-table access check on same-database repoint (#44080)
     add 1b10345f3bf docs(semantic-layer): write down member identity, grain, NULL and ordering rules in the SDK (#45108)
     add 61a0fd28ec6 fix(semantic-layer): improve credential entry and connection feedback (#45173)
     add 7aadf35e7d7 feat(mcp): accept a callable for MCP_DATASET_ROLE_ALLOWLIST (#45231)
     add 139a06eee15 chore(ci): correct upload-artifact version comment to v7.0.1 (#45211)
     add 8762f211383 feat(datasets): add partition filter mapping model, migration and validation
     add 3b21411e197 docs(datasets): scope the PARTITION_FILTER_MAPPING flag description
     add efe0e32532a fix(datasets): rebase the partition mapping migration onto master's head
     add 6c9beb7698d test(sql): drop a leftover merge-resolution note from parse_tests
     add 7010f75461b fix(datasets): don't let a partition mapping be clobbered, blocked or orphaned
     add 6b820392936 chore(datasets): regenerate the message catalogs and the OpenAPI spec
     add aa9e669482e fix(datasets): make the Explore mapping indicator agree with save-time validation
     add 8da78899d51 fix(datasets): gate partition mapping validation on the feature flag
     add 11fb8906f6a feat(datasets): mirror filters onto the partition column at query time
     add 9123546e474 fix(datasets): keep mirrored predicates no narrower than the filter
     add ec533680a56 fix(datasets): key the transform probe on the connection
     add 78d578852cb feat(datasets): mirror grain-bearing ranges by widening both bounds
     add 8d6e6ebf688 feat(datasets): add partition mapping preview endpoint and editor plumbing
     add b6252d884a5 fix(datasets): make the preview throttle atomic, bounded and fixed-window
     add 974f170c697 docs: regenerate the OpenAPI spec for the preview schema bounds
     add 1301730ff21 chore(datasets): add the preview strings to the message catalogs
     add 9d1b5125fc0 docs: document partition filter mapping
     add d0c7c627dac feat(datasets): add the partition filter mapping editor UI
     add fd094f9becc fix(datasets): wrap long text in the partition mapping row expand
     add b0ab6f896c3 docs: correct where the partition mapping controls live
     add 995f05a8cce fix(datasets): drop an unused import from the dataset schemas
     add 9d080637851 fix: satisfy the frontend hooks on the partition mapping editor
     add 3e4c91411c0 fix(datasets): correct the NULL-partition docs and stop hopeless previews
     add b2bd557643d style: let ruff format the preview sample-input return
     add ee74cb7d6af feat(explore): indicate when a filter is mirrored onto a partition column
     add 0a15039f901 fix(explore): only show the pruning glyph on filters that actually mirror
     add 8c42ca6575a style(explore): apply oxfmt to the partition mapping helpers
     add 302b4108c3f fix(explore): keep the time range pruning glyph in sync with field updates
     add 8c62dde42ee style(explore): re-attach the partition column defaults docstring
     add c6dc4fb5da4 fix(explore): keep exactly one column holding a partition mapping
     add 44ad6c14804 fix(explore): stop a removed or re-pointed mapping resurrecting a stale transform
     add 23325b5dac0 fix(datasets): stop a stale partition transform surviving an API write
     add 2745a62e691 fix(explore): stop the time range control clobbering its own value
     add 83dabab5604 fix(explore): a control can never be its own validation dependant
     add 25e7adfe030 fix(datasets): do not carry a value transform to a new datetime column
     add e718f7f8b21 test(explore): pin every chart that carries a standalone time range
     add 34cf32f1f7b test(explore): make the time range regression tests type-check
     add b52142a4e10 fix(datasets): stop the value transform input dropping keystrokes
     add 1ac9cbdea4e fix(datasets): stop the save when the value transform cannot be saved
     add 2864af05a15 fix(explore): let the time range control config infer its own control type
     add 0bc139ec796 fix(datasets): validate a partition mapping at every door, not just PUT
     add 48231007cc2 fix(datasets): give the query path the same transform gate as the editor
     add 1b30487b1e7 fix(datasets): close the gate preview went around, and stop it 500ing
     add d70a8ec09e1 fix(datasets): make the editor's claims match what will actually mirror
     add 16da957257c fix(explore): only promise pruning where the query actually prunes
     add 532526a2619 refactor(datasets): name the shared transform bound in the preview schema
     add 0747ff77dc4 fix(explore): hoist transformCanPreview, pin the empty-string sentinel
     add 54e257bac18 test(datasets): drop the permission the preview route no longer defines
     add ed19cad5dc2 fix(explore): guard the map-a-different-column link against having no target
     add 8065da50b50 fix(datasets): disarm a parked transform before a mapping change arms it
     add 890f6fe75f3 fix(datasets): gate every door a partition value transform enters by
     add 642889731e2 fix(datasets): let import accept the null export writes
     add 24e6aced3c9 fix(datasets): stop the probe mangling its own SQL and its own results
     add 0a674a41cc6 fix(datasets): require a value transform to be a bare scalar expression
     add 7d9f4350f4f fix(datasets): let preview refuse what the query path already refuses
     add 47817de9dab fix(datasets): stop import discarding what a PUT deliberately keeps
     add 53311647a70 fix(datasets): probe the transform with the value the predicate compares
     add 29122b52ec8 fix(datasets): mirror the window each query actually filters
     add 8271f05e90a fix(datasets): stop create minting a dataset no write can fix
     add c7c1581abff fix(datasets): repair a dangling mapping against what the request asked for
     add dcf6f651d15 fix(datasets): mirror equality only where the engine compares exactly
     add ad0aab844b0 fix(explore): keep the pruning glyphs across a dataset save
     add 880b87bd2d3 fix(datasets): stop the editor losing edits it cannot show, or a sibling's
     add 7c9e0823447 chore: regenerate the OpenAPI spec and message catalogs
     add 795d745d562 fix(datasets): probe the transform the engine will actually run
     add cc233c237f8 fix(datasets): validate the mapping against every column, not just physical
     add 16d21fd4c66 docs(datasets): say what a partition value transform may be
     add ad67aa9d6b3 test(sql): cover the two SQLStatement methods directly
     add 7e6b1d43152 fix(datasets): substitute a probe's rendered SQL literally
     add 4cfbd692fd4 fix(datasets): widen a mirror to the day when the engine drops the time
     add d32f3464c31 fix(datasets): probe an epoch-millisecond filter as SQL, not a bind value
     add 6dd3d06c37a fix(datasets): default an omitted monotonic declaration to false on import
     add 3656f53ffb6 fix(datasets): disarm parked transforms before an overwrite import
     add 5eec67f3ed6 fix(datasets): repair mapping references after a metadata refresh
     add 79d4889ad35 fix(datasets): carry the column-side mapping through a duplicate
     add 14e6f88fa10 fix(datasource): restore the collection table's row-class and reveal props
     add ee82b284dca perf(datasets): skip the partition probe during cache-key extraction
     add f3f420867af fix(security): deny the schema_to_xml family and enforce the denylist on save
     add 4bd05dfb031 docs(datasets): name the cache backend the probe guards need
     add 1a409c2d2ae test(datasets): type the two new partition mapping test fixtures
     add b5d6eed1460 fix(datasets): mirror a strict bound non-strictly (R5-04)
     add cc477f8eea8 fix(datasets): reject a partition column the sync does not find (R5-02)
     add a9206ea8281 fix(datasets): read a filter literal as the instant the engine compares
     add e51236a6a7a fix(explore): stop the glyph promising a mirror the engine's resolution declines
     add 0d95f26abaf fix(datasets): stop a column sync resetting flags it was not asked to change
     add d6d2e96e81e fix(datasets): only claim mirroring once a probe has reported
     add ca23dc96205 fix(datasets): refuse a transform whose result the partition column cannot hold
     add 6a89d597a34 docs(datasets): add the indicator to the list of things the cache carries
     add 2f0d53e1008 fix(explore): narrow the mapping where the glyph's gate already proves it
     add 2beb4d10367 fix(security): deny the full-text functions that run their argument as a query
     add 6dc33247e44 fix(datasource): stop an edit reopening a row the user collapsed
     add 3f3f69851ac fix(datasets): drop a mirror the ranking subquery has no filter for
     add 5daa6e6cfb7 fix(datasets): hold a text partition key to a text probe result
     add abcd67add6d fix(datasets): decline a literal the engine reads more coarsely than we can
     add 0c083ca9829 fix(security): stop a transform cancelling the placeholder-position gate
     add 3f209e88144 fix(datasets): preview a filter the way the chart path mirrors it
     add b7898490b47 chore: regenerate the message catalogs
     add 589e2cf7c98 fix(explore): stop designating a partition column changing its flags
     add 2534483f370 resolve conflicts
     add 6e2ef0b42a7 Cursor/resolve pfm conflicts b2f7 (#45040)
     add d77a43a443f fix: partition-filtering on pfm-6 (#45058)
     add 3241e76a269 Update superset/migrations/versions/2026-09-23_00-01_a7f3c2e91d84_add_partition_filter_mapping.py
     add 0d7cc3fa8c0 fix: pfm 8 merge and review (#45132)
     add f891cb6ac1a fix(datasets): check the literal resolution of an unflagged DATE column
     add d232028291b chore(datasets): name the migration's real parent in its docstring
     add d875e43596d fix(datasets): decline an offset-bearing filter value on a full-resolution column
     add 3ce9d664b38 fix(datasets): probe a numeric filter value in the column's number type
     add 0ab8de13644 fix(datasets): say why preview withdraws text equality
     add 0a49096169b fix(datasets): preview an array column with the literal the chart probes
     add a7dbcfadc1b fix(datasets): preview a numeric temporal column in its stored representation
     add 2635d4f0a2e fix(datasets): stop the partition column help claiming it hides the column
     add 4f540ef8209 chore: regenerate the message catalogs
     add 913568d7e09 fix(datasets): decline an array element the dialect cannot render
     add ef7e74df70c fix(datasets): hold a mirror to the comparison the engine performs
     add f17036dfbb4 test(datasets): freeze the clock the preview budget buckets on
     add 93847ddcb3e fix(datasets): repair the mapping when an upload replaces a dataset's columns
     add 7dacc862fca fix(datasource): merge a column sync against the state it comes back to
     add 81e05a83b8d fix(datasource): show a mapping issue the owner can save through as a warning
     add 278366192f4 fix(security): deny the Oracle functions that run their argument as a query
     add 742c4be99b3 chore: regenerate the message catalogs
     add c5314586d46 fix(datasets): rebase the migration onto master's current head
     add 4d12722ad42 fix(datasets): let the engine say which text it reads as an instant
     add 224e25c0d7f fix(security): refuse a transform that names something through a U& escape
     add 3f74089894f fix(security): deny the Oracle function that reads a table by path string
     add 9ddaba5343a fix(datasets): publish the preview's offset reason in the API spec
     add 0b119629aae fix(explore): stop the glyph promising a mirror an offset declines
     add 11de9daf439 fix(datasource): re-check the preview's identity after normalizing an error
     add a48c48789db fix(datasets): repair the mapping on the legacy v0 import path too
     add efc8b6d6c7e chore: regenerate the message catalogs
     add 6e30b9d1e2a fix(security): refuse a transform that reads a sequence
     add 99b94b62acf fix(security): redact the partition mapping from a dataset the caller cannot access
     add 974aa4a3ddf fix(datasets): repair the mapping when a column is deleted on its own
     add c0a89a1f088 chore: regenerate the message catalogs
     add 96aa6f13bc0 fix(datasets): find a Jinja block without a quadratic regex
     add 02c08e43090 chore: regenerate the message catalogs after the rebase
     add 267a6ce2eff Update superset/config.py

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   (e95d22bf2bc)
            \
             N -- N -- N   refs/heads/hughhhh/pfm-6-explore-indicator (267a6ce2eff)

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/chromatic.yml                    |    2 +-
 .github/workflows/superset-e2e.yml                 |    4 +-
 .github/workflows/superset-extensions-cli.yml      |    2 +-
 .github/workflows/superset-frontend.yml            |    4 +-
 .../workflows/superset-python-integrationtest.yml  |    2 +-
 .github/workflows/superset-python-unittest.yml     |    4 +-
 .github/workflows/superset-translations.yml        |    2 +-
 .github/workflows/testcontainers.yml               |    2 +-
 UPDATING.md                                        |   65 +-
 docs/admin_docs/configuration/feature-flags.mdx    |   29 +
 docs/admin_docs/configuration/mcp-server.mdx       |   95 +-
 docs/developer_docs/extensions/mcp.md              |   19 +
 docs/developer_docs/extensions/overview.md         |   22 +-
 .../creating-your-first-dashboard.mdx              |   14 +
 docs/docs/using-superset/exploring-data.mdx        |    4 +
 docs/docs/using-superset/number-formatting.mdx     |    2 +-
 docs/docs/using-superset/recently-archived.mdx     |   12 +
 .../using-superset/semantic-layer-connections.mdx  |   47 +
 .../using-superset/semantic-member-selections.mdx  |   25 +-
 docs/docs/using-superset/version-history.mdx       |   20 +
 docs/package.json                                  |    4 +-
 docs/static/resources/openapi.json                 |  835 +++++++++++++++-
 docs/yarn.lock                                     |  468 ++++-----
 .../src/superset_core/semantic_layers/types.py     |  143 ++-
 .../src/superset_core/semantic_layers/view.py      |   32 +
 superset-frontend/jest.config.js                   |    5 +-
 superset-frontend/package-lock.json                |  499 +++++-----
 superset-frontend/package.json                     |   10 +-
 .../src/shared-controls/dndControls.tsx            |    1 +
 .../src/shared-controls/matrixifyControls.tsx      |    1 +
 .../src/connection/SupersetClientClass.ts          |   31 +-
 .../superset-ui-core/src/query/buildQueryObject.ts |   10 +-
 .../superset-ui-core/src/query/processFilters.ts   |    3 +
 .../test/connection/SupersetClientClass.test.ts    |   27 +
 .../test/query/buildQueryObject.test.ts            |   76 +-
 .../ExploreCtasResultsButton.test.tsx              |   11 +-
 .../src/components/Chart/Chart.test.tsx            |   26 +
 .../DetailsPanel/DetailsPanel.test.tsx             |   19 +
 .../components/FiltersBadge/DetailsPanel/index.tsx |   22 +
 .../components/FiltersBadge/FiltersBadge.test.tsx  |   40 +
 .../dashboard/components/FiltersBadge/index.tsx    |   20 +-
 .../RefreshFrequencySelect.test.tsx                |  261 +++++
 .../RefreshFrequency/RefreshFrequencySelect.tsx    |  147 ++-
 .../dashboard/components/RefreshFrequency/index.ts |    3 +
 .../components/RefreshIntervalModal.test.tsx       |   43 +
 .../components/nativeFilters/selectors.test.ts     |   71 ++
 .../components/nativeFilters/selectors.ts          |    8 +-
 .../ExploreChartHeader/ExploreChartHeader.test.tsx |  160 ++++
 .../components/ExploreChartHeader/index.tsx        |   37 +-
 .../src/explore/components/SaveModal.test.tsx      |   55 ++
 .../src/explore/components/SaveModal.tsx           |   15 +-
 .../DndAdhocFilterOption.tsx                       |    3 +
 .../DndFilterSelect.test.tsx                       |   76 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |    6 +
 .../FilterControl/AdhocFilterControl/index.tsx     |   15 +-
 .../FilterControl/AdhocFilterEditPopover/index.tsx |    3 +
 ...AdhocFilterEditPopoverSimpleTabContent.test.tsx |  106 +++
 .../index.tsx                                      |   24 +-
 .../FilterControl/AdhocFilterOption/index.tsx      |    3 +
 .../AdhocFilterPopoverTrigger/index.tsx            |    3 +
 .../controls/MatrixifyDimensionControl.test.tsx    |   72 +-
 .../controls/MatrixifyDimensionControl.tsx         |   25 +-
 superset-frontend/src/explore/controls.tsx         |    8 +-
 .../src/explore/exploreUtils/index.ts              |    7 +-
 .../src/explore/reducers/exploreReducer.test.ts    |   26 +
 .../src/explore/reducers/exploreReducer.ts         |   15 +-
 .../semanticLayers/SemanticLayerModal.test.tsx     |  410 +++++++-
 .../features/semanticLayers/SemanticLayerModal.tsx |   97 +-
 .../semanticLayers/jsonFormsAntdRenderers.test.tsx |  260 +++++
 .../features/semanticLayers/jsonFormsHelpers.tsx   |  125 ++-
 superset-frontend/src/types/Chart.ts               |    1 +
 superset-websocket/package-lock.json               |  320 +++----
 superset-websocket/package.json                    |    4 +-
 superset/charts/api.py                             |   12 +-
 superset/charts/data/api.py                        |    7 +
 superset/commands/chart/update.py                  |   10 +
 superset/commands/chart/utils.py                   |    9 +
 superset/commands/chart/warm_up_cache.py           |   26 +-
 superset/commands/dashboard/exceptions.py          |    4 +
 superset/commands/dashboard/restore.py             |  132 +++
 superset/commands/dashboard/update.py              |   55 +-
 superset/commands/restore.py                       |    7 +-
 superset/common/query_context_processor.py         |    5 +-
 superset/common/query_object.py                    |   13 +
 superset/connectors/sqla/models.py                 |    4 +-
 superset/daos/chart.py                             |    7 +-
 superset/daos/dashboard.py                         |  310 +++++-
 superset/daos/datasource.py                        |   10 +
 superset/dashboards/api.py                         |   14 +
 superset/datasource/api.py                         |   48 +-
 superset/explore/api.py                            |    5 +
 superset/explore/form_data/api.py                  |    9 +-
 superset/explore/permalink/api.py                  |    5 +-
 superset/explore/utils.py                          |    6 +
 superset/initialization/__init__.py                |   13 +-
 superset/mcp_service/chart/chart_helpers.py        |   12 +-
 superset/mcp_service/chart/chart_utils.py          |   95 +-
 superset/mcp_service/chart/compile.py              |   11 +-
 superset/mcp_service/chart/datasource_resolver.py  |  412 ++++++++
 superset/mcp_service/chart/plugin.py               |   17 +
 superset/mcp_service/chart/plugins/big_number.py   |   67 +-
 .../mcp_service/chart/plugins/mixed_timeseries.py  |   15 +
 superset/mcp_service/chart/plugins/table.py        |   20 +
 superset/mcp_service/chart/plugins/waterfall.py    |   15 +
 superset/mcp_service/chart/plugins/xy.py           |   55 +-
 superset/mcp_service/chart/preview_utils.py        |   33 +-
 superset/mcp_service/chart/schemas.py              |  162 +++-
 superset/mcp_service/chart/tool/generate_chart.py  |  173 +++-
 superset/mcp_service/chart/tool/get_chart_data.py  |   13 +
 .../mcp_service/chart/tool/get_chart_preview.py    |   51 +-
 superset/mcp_service/chart/tool/list_charts.py     |    4 +-
 superset/mcp_service/chart/tool/update_chart.py    |  502 ++++++++--
 superset/mcp_service/chart/validation/pipeline.py  |   12 +
 superset/mcp_service/dashboard/schemas.py          |    5 +
 .../dashboard/tool/duplicate_dashboard.py          |   16 +-
 .../dashboard/tool/restore_dashboard.py            |   14 +-
 superset/mcp_service/dataset_scope.py              |  146 ++-
 .../explore/tool/generate_explore_link.py          |  151 ++-
 superset/mcp_service/mcp_config.py                 |   37 +-
 .../tool/get_compatible_dimensions.py              |   18 +
 .../semantic_layer/tool/get_compatible_metrics.py  |   18 +
 .../mcp_service/semantic_layer/tool/get_table.py   |   10 +
 .../semantic_layer/tool/list_metrics.py            |   13 +-
 superset/mcp_service/server.py                     |   85 +-
 superset/models/dashboard.py                       |    6 +
 superset/semantic_layers/access.py                 |   50 +
 superset/semantic_layers/api.py                    |   34 +-
 superset/semantic_layers/labels.py                 |    7 +-
 superset/semantic_layers/mapper.py                 |   81 +-
 superset/semantic_layers/members.py                |   52 +
 superset/translations/ar/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/de/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/en/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/es/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |   33 +-
 superset/translations/it/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |   32 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/messages.pot                 |   27 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |   32 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |   31 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |   31 +-
 superset/translations/ro/LC_MESSAGES/messages.po   |   34 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |   32 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/sr/LC_MESSAGES/messages.po   |   31 +-
 .../translations/sr_Latn/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/ta/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/th/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |   34 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |   31 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |   31 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |   31 +-
 superset/utils/core.py                             |    4 +
 superset/utils/network.py                          |   23 +-
 superset/views/core.py                             |    2 +-
 superset/views/datasource/views.py                 |  176 +++-
 superset/views/filters.py                          |    5 +-
 tests/integration_tests/charts/api_tests.py        |    2 +
 .../charts/semantic_metadata_authz_tests.py        |   13 +-
 .../charts/semantic_save_tests.py                  |   46 +
 tests/integration_tests/dashboards/api_tests.py    |  440 ++++++++-
 tests/integration_tests/dashboards/dao_tests.py    |  120 ++-
 tests/integration_tests/datasource/api_tests.py    |   36 +-
 .../semantic_layers/api_flag_test.py               |  423 ++++++++
 tests/unit_tests/commands/chart/create_test.py     |    2 +
 .../commands/chart/test_warm_up_cache.py           |  135 +++
 tests/unit_tests/commands/chart/update_test.py     |    2 +
 .../dashboard/restore_semantic_filters_test.py     |  363 +++++++
 .../unit_tests/commands/dashboard/restore_test.py  |    3 +
 tests/unit_tests/conftest.py                       |   17 +
 tests/unit_tests/dao/dashboard_test.py             |  551 ++++++++++-
 .../dao/test_copy_dashboard_legacy_ids.py          |  213 +++++
 tests/unit_tests/daos/test_chart_dao.py            |   59 ++
 tests/unit_tests/dashboards/datasets_test.py       |    2 +
 tests/unit_tests/explore/utils_test.py             |    2 +
 .../mcp_service/chart/test_chart_helpers.py        |   68 +-
 .../mcp_service/chart/test_chart_target_schemas.py |  213 +++++
 .../mcp_service/chart/test_chart_utils.py          |   32 +
 .../chart/test_dashboard_time_binding.py           |   90 ++
 .../mcp_service/chart/test_datasource_resolver.py  |  622 ++++++++++++
 .../mcp_service/chart/test_gantt_chart.py          |   35 +
 .../chart/test_live_chart_datasource.py            |    2 +
 ...ative_form_data_and_dataset_rebind_contracts.py |    4 +-
 .../mcp_service/chart/test_response_preflight.py   |    4 +-
 .../tool/test_generate_chart_semantic_view.py      |  412 ++++++++
 .../mcp_service/chart/tool/test_get_chart_data.py  |   53 +-
 .../chart/tool/test_get_chart_preview.py           |    7 +-
 .../mcp_service/chart/tool/test_get_chart_sql.py   |    6 +-
 .../mcp_service/chart/tool/test_list_charts.py     |  148 +++
 .../chart/tool/test_saved_chart_datasource.py      |   24 +-
 .../mcp_service/chart/tool/test_update_chart.py    |  358 ++++++-
 .../chart/tool/test_update_chart_rebind.py         | 1006 ++++++++++++++++++++
 .../dashboard/tool/test_duplicate_dashboard.py     |   59 +-
 .../dashboard/tool/test_get_dashboard_datasets.py  |    2 +
 .../dashboard/tool/test_restore_dashboard.py       |    3 +
 .../test_generate_explore_link_semantic_view.py    |  245 +++++
 .../mcp_service/native_tool_inventory.json         |   34 +-
 .../mcp_service/semantic_layer/test_flag_off.py    |  203 ++++
 .../tool/test_get_compatible_dimensions.py         |    5 +
 .../tool/test_get_compatible_metrics.py            |    4 +
 .../semantic_layer/tool/test_get_table.py          |   21 +
 .../semantic_layer/tool/test_list_metrics.py       |    7 +
 .../mcp_service/system/tool/test_get_schema.py     |   11 +
 .../mcp_service/test_chart_tool_inventory.py       |   42 +-
 tests/unit_tests/mcp_service/test_dataset_scope.py |  247 ++++-
 .../unit_tests/mcp_service/test_tool_inventory.py  |    6 +-
 .../mcp_service/test_tool_search_transform.py      |  225 ++++-
 .../mcp_service/test_validation_contract.py        |   46 +
 .../semantic_layers/import_export_test.py          |   22 +
 tests/unit_tests/semantic_layers/labels_test.py    |   13 +
 tests/unit_tests/semantic_layers/mapper_test.py    |   38 +-
 tests/unit_tests/semantic_layers/members_test.py   |   83 ++
 .../semantic_layers/metric_filter_test.py          |  288 ++++++
 tests/unit_tests/semantic_layers/test_access.py    |   42 +
 .../semantic_layers/test_runtime_flag.py           |  216 +++++
 .../semantic_layers/values_endpoint_test.py        |  100 ++
 .../soft_delete/test_restore_purge_hoist.py        |   13 +
 tests/unit_tests/tasks/test_async_queries.py       |   31 +
 tests/unit_tests/utils/test_network.py             |   29 +
 tests/unit_tests/views/datasource/views_test.py    |  559 +++++++----
 229 files changed, 15922 insertions(+), 1554 deletions(-)
 create mode 100644 docs/docs/using-superset/semantic-layer-connections.mdx
 create mode 100644 superset/mcp_service/chart/datasource_resolver.py
 create mode 100644 superset/semantic_layers/access.py
 create mode 100644 superset/semantic_layers/members.py
 create mode 100644 tests/integration_tests/semantic_layers/api_flag_test.py
 create mode 100644 tests/unit_tests/commands/chart/test_warm_up_cache.py
 create mode 100644 tests/unit_tests/commands/dashboard/restore_semantic_filters_test.py
 create mode 100644 tests/unit_tests/dao/test_copy_dashboard_legacy_ids.py
 create mode 100644 tests/unit_tests/daos/test_chart_dao.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_chart_target_schemas.py
 create mode 100644 tests/unit_tests/mcp_service/chart/test_datasource_resolver.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_generate_chart_semantic_view.py
 create mode 100644 tests/unit_tests/mcp_service/chart/tool/test_update_chart_rebind.py
 create mode 100644 tests/unit_tests/mcp_service/explore/tool/test_generate_explore_link_semantic_view.py
 create mode 100644 tests/unit_tests/mcp_service/semantic_layer/test_flag_off.py
 create mode 100644 tests/unit_tests/semantic_layers/members_test.py
 create mode 100644 tests/unit_tests/semantic_layers/metric_filter_test.py
 create mode 100644 tests/unit_tests/semantic_layers/test_access.py
 create mode 100644 tests/unit_tests/semantic_layers/test_runtime_flag.py