You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by dp...@apache.org on 2026/06/17 08:40:22 UTC

(superset) branch ivanti-translations updated (42379a8253e -> 3d4327ea116)

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

dpgaspar pushed a change to branch ivanti-translations
in repository https://gitbox.apache.org/repos/asf/superset.git


    from 42379a8253e Delete .github/pr-screenshots/menu-translated.png
     add 381b99ae84b fix(csv): respect CSV_EXPORT config for decimal separator and delimiter (#38170)
     add b85a2cdab15 fix: ODPS (MaxCompute) data source table preview failed (#38174)
     add 84aaaaa6b08 fix(mcp): filter sensitive database columns from list_databases loaded-metadata (#40771)
     add ef7379c47e3 chore(mcp): remove low-value list/info tools that fail agent-native policy (#40690)
     add 6348aa19173 chore(deps-dev): update taos-ws-py requirement from >=0.3.8 to >=0.6.9 (#40831)
     add d3f07a7ba54 chore(deps-dev): update playwright requirement from <2,>=1.37.0 to >=1.60.0,<2 (#40829)
     add 2463eb65b1c chore(deps-dev): bump python-ldap from 3.4.5 to 3.4.7 (#40827)
     add 9da45363542 chore(deps-dev): update oceanbase-py requirement from >=0.0.1 to >=0.0.1.2 (#40824)
     add 849f297e9d2 chore(deps-dev): update sqlalchemy-vertica-python requirement from <0.7,>=0.5.9 to >=0.6.3,<0.7 (#40826)
     add 138e405cb60 chore(deps): bump xlsxwriter from 3.0.9 to 3.2.9 (#40825)
     add c0a12f4cfb5 chore(deps-dev): update sqlalchemy-kusto requirement from <4,>=3.0.0 to >=3.1.2,<4 (#40828)
     add 9bb700ff0df chore(deps-dev): bump concurrently from 9.2.1 to 10.0.0 in /superset-frontend (#40798)
     add 5da63d716be fix(toasts): stop the toast overlay from covering controls behind it (#40805)
     add 06f95f53623 refactor(explore): migrate Explore Controls from react-dnd to @dnd-kit (#37880)
     add 21189ae130a fix(dashboard): update browser tab title when dashboard is renamed (#40730)
     add 7c7ab88a602 feat(ListView): expose expandable prop (#40765)
     add dc423b22b31 feat(embedded): support themeMode URL param for initial theme (#40760)
     add a5fe47ee715 docs(footer): render social icons as uniform white (#40854)
     add b4eda37fbf9 chore(deps-dev): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /superset-frontend (#40849)
     add 983f2818b0e chore(deps-dev): bump @swc/plugin-emotion from 14.10.0 to 14.12.0 in /superset-frontend (#40848)
     add c5d795c1f11 chore(deps): bump react-syntax-highlighter from 16.1.0 to 16.1.1 in /superset-frontend (#40847)
     add 709fd52b0b3 chore(deps-dev): bump tsx from 4.22.3 to 4.22.4 in /superset-frontend (#40845)
     add 534d2191ffe chore(deps): bump react-draggable from 4.5.0 to 4.6.0 in /superset-frontend (#40844)
     add c6ecaf9642b chore(deps): bump js-yaml from 4.1.1 to 4.2.0 in /docs (#40843)
     add 228ac0d5687 chore(deps): bump baseline-browser-mapping from 2.10.32 to 2.10.33 in /docs (#40842)
     add ba6e9cc90fa chore(deps-dev): bump eslint from 10.4.0 to 10.4.1 in /superset-websocket (#40840)
     add 507cf936877 test(dashboard): API-created dashboards should link charts from position_json (#32966) (#40816)
     add 911bb9dcdac fix: harden ZIP safety checks (total-size cap, zero-division guard) and extension path matching (#40664)
     add 580be2cf32d fix(extensions-cli): constrain backend include patterns to the backend directory (#40593)
     add e9e92451120 test(mixed-chart): dashboard filters should reach both Mixed chart queries (#29519) (#40818)
     add 8fdabc44f50 chore(deps): update react-draggable requirement from ^4.5.0 to ^4.6.0 in /superset-frontend/packages/superset-ui-core (#40841)
     add 1e8438a478f test(dashboard): migrate favorite toggle Cypress spec to RTL (#40872)
     add fe9818226d7 fix(viz): gate stacktrace behind SHOW_STACKTRACE and allowlist resample method (#40636)
     add 8eda626466d fix: raise random_key entropy and add expiry to async query tokens (#40638)
     add 837f41986d5 fix: reject default guest/async JWT secrets at startup (#40649)
     add 3afbb48188b fix(uploads,dao): add zip-safety check to columnar reader and cap DAO page size (#40637)
     add fb0e7fecafa ci: authenticate Docker Hub pulls for service containers (#40875)
     add 1188cfef1d4 ci: make Docker-build npm ci resilient to transient network blips (#40874)
     add c58408d76c4 fix(revert 40875): "ci: authenticate Docker Hub pulls for service containers" failed (#40879)
     add d7ddf2023da fix(theme): SDK theme config overrides dashboard-level theme in embedded mode (#40763)
     add 2f71771b561 fix(sqllab): prevent corrupted query state from blocking SQL Lab access (#40580)
     add 56c856e802d fix(explore): require Update Chart for Matrixify dimension changes (#40851)
     add 3259a4a781e fix(translation): update german translation for slider range (#40902)
     add 443fd7bcee5 fix(assets): Support uploading tags using the assets import endpoint (#38343)
     add 9105adc67b2 fix(mcp): return a generic message when a request is unauthenticated (#40861)
     add a32b7b15234 fix(migrations): replay user_favorite_tag migration for 3.0.x upgraders (#38157)
     add f70cd8b5b89 feat(embedded-sdk): add fetchGuestToken timeout and clean up refresh timer (#40870)
     add 62084f4015e feat(websocket): improve operational logging and crash safety (#40868)
     add 7b1e1e5668a fix(charts): route CSV result format through the escaping CSV writer (#40859)
     add 95d46073cbe feat(websocket): add backpressure handling for slow consumers (#40857)
     add b64dd4af4a1 fix(mcp): handle JWKS fetch network errors during token verification (#40869)
     add 0133ebc9f26 feat(mcp): log successful JWT authentication events (#40864)
     add 58d29e07797 chore(deps-dev): bump concurrently from 10.0.0 to 10.0.3 in /superset-frontend (#40897)
     add 6681ab571d8 perf(websocket): yield to the event loop while processing large event batches (#40866)
     add bf9ad4d2ba3 fix: set charset via content_type to avoid malformed Content-Type headers (#40658)
     add 17fb7a7c757 chore(helm): bump app version to 6.1.0 (#40862)
     add 7a3b8f49c7b chore(deps): bump actions/checkout from 6.0.2 to 6.0.3 (#40892)
     add 6311e2c315e fix: use pd.to_numeric in df_metrics_to_num to handle string-encoded numerics from ClickHouse (#40190)
     add f51736437d0 chore(deps): bump shell-quote from 1.8.3 to 1.8.4 in /docs (#40910)
     add efa88b9b7f4 chore(deps-dev): bump eslint-import-resolver-typescript from 4.4.4 to 4.4.5 in /superset-frontend (#40899)
     add 39490894389 chore(deps-dev): bump oxlint from 1.67.0 to 1.68.0 in /superset-frontend (#40898)
     add 065578e48a5 fix(commands,api): enforce command validation, sanitize export filename/token, set cache TTLs (#40655)
     add 336384bc673 chore(deps): bump react-map-gl from 8.1.0 to 8.1.1 in /superset-frontend (#40896)
     add 8117488fd82 feat(websocket): add configurable per-channel and total connection limits (#40856)
     add f9ba11961ad chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.60.0 to 8.60.1 in /superset-frontend (#40895)
     add ff4783f1e43 chore(deps): bump github/codeql-action from 4.36.0 to 4.36.1 (#40894)
     add 2d1b17d1ca8 chore(deps-dev): bump @typescript-eslint/parser from 8.60.0 to 8.60.1 in /docs (#40893)
     add eeaa213475b chore(deps): update react requirement from ^19.2.6 to ^19.2.7 in /superset-frontend/plugins/legacy-plugin-chart-chord (#40890)
     add 9b4aaaa0808 chore(deps-dev): bump @typescript-eslint/parser from 8.60.0 to 8.60.1 in /superset-websocket (#40889)
     add ab0fa5c3c87 test(dashboard): add regression tests for certification field clearing (#40758)
     add 76f334f252e fix(i18n): stop fuzzy-matching new strings so adding one doesn't fail babel-extract (#40909)
     add c88438ad35d chore(deps-dev): bump typescript-eslint from 8.60.0 to 8.60.1 in /superset-websocket (#40887)
     add 88ea96d4172 chore(deps-dev): bump typescript-eslint from 8.60.0 to 8.60.1 in /docs (#40891)
     add a0cf7984098 fix(embedded): add Sec-Fetch-Dest defense-in-depth check on the embedded view (#40667)
     add 568f34d6d8b fix(mcp): enforce audience, algorithm, issuer binding, and token scopes (strict mode) (#40653)
     add 004101a7520 fix(rls): apply standard datasource access checks in RLS rule commands (#40650)
     add 00e3682aaf1 fix(dashboard): URL-encode native_filters in permalink redirect (#40660)
     add 543ad04ca05 chore(deps): bump pyarrow from 20.0.0 to 24.0.0 (#39756)
     add d51753dfdcf chore(lint): convert reactify.tsx to function component (#39458)
     add c0e78f39d7b fix: replace deprecated appbuilder.app with current_app (#40876)
     add 1bfdb19e889 test(dashboard): RTL coverage for native filter modal and sidebar (#40778)
     add 0a1e51f542a fix(schemas): tighten guest dataset fields, external_url protocols, ssh creds, prophet bounds (#40640)
     add 08b8bdecbd4 fix(charts): tighten chart schema input validation (query_context JSON, prophet/rolling bounds) (#40634)
     add 2b584113919 chore(deps): bump ag-grid-react from 35.3.0 to 35.3.1 in /superset-frontend (#40928)
     add 3d1253c9925 build(major,dev-deps): upgrade Storybook from v8 to v10 (#40713)
     add 5a0e3f15ca7 feat(embedded): add guest token revocation support (#40671)
     add f27424d72e3 fix(embedded): show filter bar controls on embedded dashboards with tabs (#39417)
     add cc5a3ddd05d test(dashboard-filter): RTL coverage for horizontal filter bar (#40782)
     add 248ccadecd8 fix(extensions): load extensions async to avoid blocking initial page render (#40915)
     add 3380496e9fb feat(i18n): add Romanian (ro) translations (#36712)
     add 4f69949c101 chore(deps-dev): bump eslint-plugin-storybook from 10.4.1 to 10.4.2 in /superset-frontend (#40949)
     add c3df60c12b1 chore(deps): bump selenium from 4.32.0 to 4.44.0 (#40945)
     add 320965612d6 chore(deps-dev): update clickhouse-connect requirement from <2.0,>=0.13.0 to >=1.1.1,<2.0 (#40944)
     add 0f597058067 chore(deps): bump wtforms from 3.2.1 to 3.2.2 (#40943)
     add c9c05d8d0a8 chore(deps-dev): update thrift requirement from <1.0.0,>=0.14.1 to >=0.23.0,<1.0.0 (#40942)
     add 11af932099e chore(deps): bump dompurify from 3.4.7 to 3.4.8 in /superset-frontend/plugins/legacy-preset-chart-nvd3 (#40937)
     add 5f06e66cf1c chore(deps): bump @deck.gl/mapbox from 9.3.2 to 9.3.3 in /superset-frontend (#40927)
     add ef574092094 chore(deps): bump ag-grid-community from 35.3.0 to 35.3.1 in /superset-frontend/packages/superset-ui-core (#40923)
     add 97058d2cf09 chore(deps): bump fuse.js from 7.3.0 to 7.4.1 in /superset-frontend (#40922)
     add a8a1d9c17d6 chore(deps): bump morgan from 1.10.1 to 1.11.0 in /superset-websocket/utils/client-ws-app (#40921)
     add 6cd9bdee0bf chore(deps-dev): bump @formatjs/intl-durationformat from 0.10.3 to 0.10.13 in /superset-frontend (#40925)
     add b2c5a1ecb33 chore(deps): bump jsonpath-ng from 1.7.0 to 1.8.0 (#40940)
     add aa872cd0a14 chore(deps): bump dompurify from 3.4.9 to 3.4.8 in /superset-frontend/packages/superset-ui-core (#40938)
     add 7d046340dc1 chore(deps): bump ag-grid-react from 35.3.0 to 35.3.1 in /superset-frontend/packages/superset-ui-core (#40924)
     add b1d965932d7 chore(deps-dev): bump @typescript-eslint/eslint-plugin from 8.60.0 to 8.60.1 in /superset-websocket (#40888)
     add f79a88c6857 test(core): add unit tests for split function (#40819)
     add da9756ef143 chore(issue template): bump version numbers to reflect 6.1.0 released (#40479)
     add 046b1b61b38 fix(maps): preserve OSM styles and configurable renderer defaults (#40804)
     add 97073340cce chore(deps-dev): update sqlalchemy-exasol requirement from <8.0,>=2.4.0 to >=7.0.0,<8.0 (#40946)
     add cc2845168d5 chore(deps-dev): update starrocks requirement from >=1.0.0 to >=1.3.3 (#40939)
     add 2b18dc0a5c4 fix(radar): apply number formatter to tooltip (#37033)
     add 6c5ad1e9124 fix(sqllab): apply SQL controls (RLS/DML/disallowed) to cost estimation (#40662)
     add db7e1c67d81 feat(build): update Node version to v24 (#40835)
     add 32ae0afcac0 chore(deps): bump github/codeql-action from 4.36.1 to 4.36.2 (#40966)
     add 378473a6fe5 fix(matrixify): Set singular metric field for pie and other single-me… (#40852)
     add 42d0c4436e5 fix(permalink): accept null entries in activeTabs for v5-imported dashboards (#40969)
     add 058be4b904b test(core): cover invalid raster tile URL fallback in mapStyles (#40974)
     add b0d7880ac0f fix: use Series.iloc for positional access in generate_join_column (#40936)
     add 74845eaf0b5 fix(deps): cap paramiko <4.0 to keep SSH tunneling working (#40973)
     add 9938ee273f1 feat: terminate active sessions when an account is disabled (#40695)
     add 663b47aa750 feat: support guest-token revocation per embedded dashboard (#40676)
     add 814b72c6f91 feat(security): force password change on first use (opt-in) (#40669)
     add 2f008afca93 fix(mcp): add dataset_id to update_chart to support rebinding chart datasource (#40853)
     add 8ed7ebb5b70 chore(i18n): lint + dev warning for eager t() in controlPanel configs (#40379)
     add 9e7e1ecdbc3 chore(deps): bump ioredis from 5.11.0 to 5.11.1 in /superset-websocket (#40989)
     add e7337eacfc3 chore(deps-dev): bump sqlalchemy-bigquery from 1.15.0 to 1.17.0 (#41016)
     add a8e26c254f4 chore(deps-dev): bump tiktoken from 0.12.0 to 0.13.0 (#41013)
     add daff4fd87e1 chore(deps-dev): update pymssql requirement from <3,>=2.2.8 to >=2.3.13,<3 (#41012)
     add 4a5c0d9042a chore(deps): bump joi from 17.13.3 to 17.13.4 in /docs (#41009)
     add b05fe4857e5 fix(chart): require chart access for query_context-only updates (#40648)
     add 8d315dd2b6c fix(UI): remove getPopupContainer prop causing dual scrollbars in dropdown (#36059)
     add e4f82109e46 fix(mcp): suppress AuthlibDeprecationWarning from authlib.jose imports (#40977)
     add ca0596bca2e chore(deps-dev): bump progress from 1.6 to 1.6.1 (#41014)
     add 6487cf03c59 fix(security): Add input validation to cancel_query_id to prevent injection (#36722)
     add a41869ec7d5 fix(dashboard): build example-export sample data through the dataset query path (#40976)
     add e5986b32ffb fix(charts): evaluate access before rendering query filters; isolate macro env (#40982)
     add aa3d2b9e81e fix(dashboard): validate native-filter data requests against filter targets (#40979)
     add 5fb13f102a3 fix(network): validate target hostname in outbound requests (#39301)
     add 3c6239363b1 fix(db): preserve percent encoding in database passwords (#36783)
     add 9d167dfada1 fix: type error bug in convert_tbl_column_to_sqla_col (#31780)
     add d120b1c2506 feat(security): enforce password complexity policy (min length + common-password blocklist) (#40670)
     add 02f32469b05 fix(pandas-postprocessing): resolve SettingWithCopyWarning in histogram and boxplot (#36605)
     add 13145e8ad8f fix: Tooltip not displayed on bottom edge of the map (#37105)
     add 6b682b1aa1e fix(pivot_table):  next try refreshed pr for fixing sorting in pivot table  (#38080)
     add df0668eda5f feat(api): return uuid in POST response for dataset, chart, and dashboard (#37806)
     add c0fbe243e8b fix(echarts): cap tooltip at 80vh with internal scroll (#37022)
     add e7ecf5479af chore(deps): bump flask-wtf from 1.2.2 to 1.3.0 (#41015)
     add 669ddb2913a test(gauge): gauge should paint configured interval colors on a dashboard (#28766) (#40821)
     add 48feb432dea test(pie): guard NULL + named group values all render as slices (#33174) (#41018)
     add 99bdacd2e1d fix(explore): theme SQL autocomplete completion highlight consistently (#41005)
     add c9344986969 fix(dashboard): do not add importer as owner when overwriting existing dashboard (#38615)
     add 9f815656254 feat(uploads): add optional max file size for data uploads (#40860)
     add 9ec9c8658b8 fix(query_context_processor): apply CSV encoding to follow the encoding settings of 'CSV_EXPORT' (#34806)
     add f88f1fad04d fix(table): sort metric columns numerically regardless of display format (#39775)
     add 2734bde504c fix(chart): Allow Admin non-owner to save chart (#37175)
     add d66895c5662 build(dev-deps): update `webpack`-related packages to next major version (#41022)
     add 9d2f625e550 feat(encrypt): selectable encryption engine + AES-GCM re-encryption migrator (#40654)
     add 2dd8fe362f3 fix(DynamicEditableTitle): preserve in-flight edits when title prop changes (#39861)
     add 820e3d18d3d fix(mcp): make search_tools query optional to fix null content on tool discovery (#40906)
     add dd3a61156b1 fix(handlebars): register a dayjs-backed formatDate helper (#32960) (#40817)
     add e5b6642b186 test(pivot-table): embedded E2E that collapse state survives scrolling (#33406) (#40820)
     add a1bc3c67eda fix(embedded): skip CSRF token fetch for guest streaming chart exports (#41004)
     add 38cc70de2f7 test(chart): URL params land on each query in chart-data request (#40913)
     add 5a97e01d6e8 test(dashboard): migrate standalone mode Cypress spec to RTL (#40914)
     add b656b1d4770 fix(reports): escape LIKE wildcards in text filter and preserve typed screenshot width (#40980)
     add bf5daf0a1e2 fix(mcp): redirect stdio click echo without recursion (#40814)
     add 2d8447af423 chore(deps-dev): bump baseline-browser-mapping from 2.10.33 to 2.10.34 in /superset-frontend (#41041)
     add a435002293e chore(deps-dev): bump @types/jquery from 4.0.0 to 4.0.1 in /superset-frontend (#41040)
     add 66733a5d725 chore(deps): bump codecov/codecov-action from 6.0.1 to 7.0.0 (#41039)
     add 9d72a39e108 chore(deps): bump caniuse-lite from 1.0.30001793 to 1.0.30001797 in /docs (#41038)
     add 5719f8e349b chore(deps-dev): bump @types/node from 25.9.1 to 25.9.2 in /superset-frontend (#41037)
     add b5ca00d06bc chore(deps-dev): bump @types/node from 25.9.3 to 25.9.2 in /superset-frontend/packages/superset-ui-core (#41035)
     add 886bb200d0e chore(deps): bump react-arborist from 3.8.0 to 3.10.1 in /superset-frontend (#41033)
     add 919c6eddc1f chore(deps-dev): bump @types/node from 25.9.1 to 25.9.2 in /superset-websocket (#41032)
     add 8093197c979 chore(deps): bump baseline-browser-mapping from 2.10.33 to 2.10.34 in /docs (#41036)
     add 11e35eca3b8 chore(deps-dev): bump eslint from 8.57.1 to 10.4.1 in /superset-frontend (#40846)
     add dad7dae4f65 chore(deps): bump launch-editor from 2.9.1 to 2.14.1 in /superset-frontend (#41065)
     add 48b755470f5 chore(deps): bump form-data from 4.0.5 to 4.0.6 in /superset-frontend (#41063)
     add b078ae4b51d chore(deps): bump launch-editor from 2.11.1 to 2.14.1 in /docs (#41062)
     add 1ae115981f8 chore(deps): bump form-data from 4.0.5 to 4.0.6 in /superset-frontend/cypress-base (#41061)
     add 9e2c4533c8a chore(deps): bump @babel/core from 7.28.6 to 7.29.7 in /docs (#41058)
     add 073599bd0cc chore(deps-dev): bump @babel/core from 7.25.2 to 7.29.6 in /superset-embedded-sdk (#41057)
     add 4b96b91b536 feat(mcp): add aggregation field to BigNumberChartConfig for Big Number with Trendline (#40775)
     add 379435b7eb5 feat(ssh_tunnel): add opt-in server host key verification (#40673)
     add 09b4bc51a32 fix(charts): rename deprecated query object fields in schema before QueryObject construction (#41056)
     add e16bb29faf9 fix(embedded): allow guests to apply a Time Grain native filter (#32768) (#41017)
     add c1b5d05f83b fix(bigquery): set default dataset from schema in adjust_engine_params (#40776)
     add 4ae9980e4cd chore(ci): remove unused Claude PR Assistant workflow (#41081)
     add f56524bb710 chore(frontend): remove unused modules flagged by knip (#41072)
     add 28aedc82c3a fix(upload): database field shows validation warning after selecting a database (#41078)
     add 6e2db42d980 chore(lint): convert dashboard components to function components (#39460)
     add 1311d040bac feat(deckgl): add point radius controls for GeoJSON layer (#33247)
     add a69f9eb00d0 chore(deps-dev): bump oxlint from 1.68.0 to 1.69.0 in /superset-frontend (#41094)
     add fe625a917ed chore(deps-dev): bump @typescript-eslint/parser from 8.60.1 to 8.61.0 in /docs (#41093)
     add 0c696cea7ed chore(deps): bump google-auth-library from 10.6.2 to 10.7.0 in /superset-frontend (#41091)
     add 9d8287e1bd7 chore(deps-dev): bump @typescript-eslint/parser from 8.60.1 to 8.61.0 in /superset-websocket (#41090)
     add 0ec7e7df997 chore(deps): bump dompurify from 3.4.8 to 3.4.9 in /superset-frontend (#41089)
     add d839cca9958 chore(deps-dev): update pyocient requirement from <2,>=1.0.15 to >=1.0.15,<4 (#40941)
     add 1a4941eee5a chore(deps-dev): bump hdbcli from 2.28.20 to 2.28.21 (#41084)
     add c90b2571d70 chore(deps-dev): bump xlrd from 2.0.1 to 2.0.2 (#41083)
     add 7cb4990403f feat(mcp): add create_dataset tool to register physical tables as datasets (#40340)
     add 7b4efacbc2e fix(charts): add default padding to match other charts (#36895)
     add 01ed81785e5 fix(dashboard): required filters reliably apply default + Apply enables on change (#40470)
     add 6d08e79259a feat(security): Add extension hooks for custom access control, ownership, and asset lifecycle (#40707)
     add 257dafeec51 fix(query): don't mutate ad-hoc ORDER BY expressions when building queries (#40993)
     add 1a8d08152df chore(deps): bump fuse.js from 7.4.1 to 7.4.2 in /superset-frontend (#41110)
     add 77d7483f273 chore(deps-dev): bump @formatjs/intl-durationformat from 0.10.13 to 0.10.14 in /superset-frontend (#41109)
     add 387c62919ea chore(deps): bump hot-shots from 15.0.0 to 16.0.0 in /superset-websocket (#41107)
     add 81c1181519b chore(deps-dev): bump typescript-eslint from 8.60.1 to 8.61.0 in /docs (#41092)
     add dca8af770c8 chore(deps-dev): bump typescript-eslint from 8.60.1 to 8.61.0 in /superset-websocket (#41087)
     add e93cbd6c389 chore(deps): bump croniter from 6.0.0 to 6.2.2 (#41086)
     add 1f95a6c4865 chore(deps): bump simplejson from 3.20.1 to 4.1.1 (#41082)
     add d51d98891e6 chore(deps): bump flask-migrate from 3.1.0 to 4.1.0 (#41011)
     add f1ae6839237 fix(deps): replace deprecated np.NaN with np.nan (#41118)
     add b0c5f990070 fix(oracle): replace deprecated cx-Oracle extra with oracledb (#41122)
     add 8e82b6b2c39 fix(translation): loading translations in menu (#35640)
     add 6a1091d5761 fix(sql): broaden mutating-statement detection in SQL Lab parser (#40421)
     add eeac76146c3 fix(helm): add host alias to init job (#33968)
     add 2ea75854907 chore(i18n): update German (de) translation (#40431)
     add 5b66443d48c fix(cli): inconsistent options for set-database-uri (#34893)
     add 3e2174b50f5 fix(database): enable superset_app_root override for databaseview link (#33508)
     add a27ec1923e5 chore(export): Added ability to export chart YAML files with Unicode characters, fix #20331 (#28008)
     add 3d4327ea116 Merge branch 'master' into ivanti-translations

No new revisions were added by this update.

Summary of changes:
 .github/ISSUE_TEMPLATE/bug-report.yml              |     2 +-
 .github/dependabot.yml                             |    32 -
 .github/workflows/bump-python-package.yml          |     3 +-
 .github/workflows/check-python-deps.yml            |     2 +-
 .github/workflows/check_db_migration_confict.yml   |     2 +-
 .github/workflows/claude.yml                       |    88 -
 .github/workflows/codeql-analysis.yml              |     8 +-
 .github/workflows/dependency-review.yml            |     4 +-
 .github/workflows/docker.yml                       |     8 +-
 .github/workflows/embedded-sdk-release.yml         |     6 +-
 .github/workflows/embedded-sdk-test.yml            |     6 +-
 .github/workflows/generate-FOSSA-report.yml        |     2 +-
 .github/workflows/github-action-validator.yml      |     5 +-
 .github/workflows/issue_creation.yml               |     3 +-
 .github/workflows/latest-release-tag.yml           |    46 +-
 .github/workflows/license-check.yml                |     6 +-
 .github/workflows/pr-lint.yml                      |     5 +-
 .github/workflows/pre-commit.yml                   |    10 +-
 .github/workflows/release.yml                      |     4 +-
 .github/workflows/showtime-trigger.yml             |     6 +-
 .github/workflows/superset-app-cli.yml             |     2 +-
 .github/workflows/superset-docs-deploy.yml         |     8 +-
 .github/workflows/superset-docs-verify.yml         |    14 +-
 .github/workflows/superset-e2e.yml                 |    38 +-
 .github/workflows/superset-extensions-cli.yml      |     4 +-
 .github/workflows/superset-frontend.yml            |     6 +-
 .github/workflows/superset-helm-lint.yml           |     4 +-
 .github/workflows/superset-helm-release.yml        |     2 +-
 .github/workflows/superset-playwright.yml          |    22 +-
 .../workflows/superset-python-integrationtest.yml  |    14 +-
 .github/workflows/superset-python-presto-hive.yml  |    10 +-
 .github/workflows/superset-python-unittest.yml     |     6 +-
 .github/workflows/superset-translations.yml        |    10 +-
 .github/workflows/superset-websocket.yml           |     2 +-
 .github/workflows/supersetbot.yml                  |     4 +-
 .github/workflows/tag-release.yml                  |    15 +-
 .github/workflows/tech-debt.yml                    |     4 +-
 Dockerfile                                         |     9 +-
 UPDATING.md                                        |   121 +
 docs/.nvmrc                                        |     2 +-
 docs/package.json                                  |    10 +-
 docs/sip/authenticated-encryption-at-rest.md       |   136 +
 docs/src/data/databases.json                       |     4 +-
 docs/src/styles/main.css                           |     6 +
 docs/yarn.lock                                     |   361 +-
 helm/superset/Chart.yaml                           |     4 +-
 helm/superset/README.md                            |     2 +-
 helm/superset/templates/init-job.yaml              |     3 +
 pyproject.toml                                     |    59 +-
 requirements/base.in                               |     2 +-
 requirements/base.txt                              |    24 +-
 requirements/development.txt                       |    34 +-
 scripts/translations/babel_update.sh               |    13 +-
 .../translations/check_translation_regression.py   |    29 +-
 superset-embedded-sdk/.nvmrc                       |     2 +-
 superset-embedded-sdk/README.md                    |   116 +-
 superset-embedded-sdk/package-lock.json            |   288 +-
 .../src/guestTokenRefresh.test.ts                  |     8 +
 superset-embedded-sdk/src/guestTokenRefresh.ts     |     1 +
 superset-embedded-sdk/src/index.ts                 |    81 +-
 .../src/withTimeout.test.ts                        |    28 +-
 .../src/withTimeout.ts                             |    37 +-
 .../src/superset_extensions_cli/cli.py             |    24 +-
 superset-extensions-cli/tests/test_cli_build.py    |   150 +
 superset-frontend/.eslintignore                    |    34 -
 superset-frontend/.eslintrc.js                     |   523 -
 superset-frontend/.eslintrc.minimal.js             |   124 -
 superset-frontend/.nvmrc                           |     2 +-
 superset-frontend/.storybook/{main.js => main.mjs} |    38 +-
 superset-frontend/.storybook/preview.jsx           |     6 +-
 .../.storybook/shared/ResizableChartDemo.tsx       |     2 +-
 superset-frontend/babel.config.js                  |     1 +
 .../cypress/e2e/dashboard/actions.test.js          |    67 -
 .../cypress-base/cypress/e2e/dashboard/utils.ts    |    12 -
 superset-frontend/cypress-base/package-lock.json   |    88 +-
 .../eslint-plugin-i18n-strings/index.ts            |    80 +
 .../no-eager-t-in-config.test.ts                   |    86 +
 .../no-template-vars.test.ts                       |     7 +-
 .../eslint-plugin-icons/no-fontawesome.test.ts     |     5 +-
 superset-frontend/eslint.config.minimal.js         |   137 +
 superset-frontend/jest.config.js                   |     2 +-
 superset-frontend/oxlint.json                      |    12 +-
 superset-frontend/package-lock.json                | 14300 ++++++----------
 superset-frontend/package.json                     |    82 +-
 .../packages/superset-core/src/menus/index.ts      |    36 +-
 .../packages/superset-core/src/theme/types.ts      |     6 +
 .../src/translation/TranslatorSingleton.test.ts    |    69 +-
 .../src/translation/TranslatorSingleton.ts         |    31 +-
 .../packages/superset-core/src/views/index.ts      |    32 +-
 .../src/shared-controls/matrixifyControls.tsx      |     1 -
 .../superset-ui-chart-controls/src/types.ts        |    10 +-
 .../packages/superset-ui-core/package.json         |    14 +-
 .../Matrixify/MatrixifyGridGenerator.test.ts       |    49 +
 .../components/Matrixify/MatrixifyGridGenerator.ts |     1 +
 .../src/chart/components/reactify.tsx              |   147 +-
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |    13 +
 .../src/components/AsyncAceEditor/index.tsx        |    17 +-
 .../AutoComplete/AutoComplete.stories.tsx          |     2 +-
 .../components/Breadcrumb/Breadcrumb.stories.tsx   |     2 +-
 .../components/CachedLabel/CachedLabel.stories.tsx |     4 +-
 .../src/components/Checkbox/Checkbox.stories.tsx   |     2 +-
 .../DynamicEditableTitle.regression.test.tsx       |    39 +-
 .../src/components/DynamicEditableTitle/index.tsx  |    29 +-
 .../components/EmptyState/EmptyState.stories.tsx   |     2 +-
 .../src/components/FaveStar/FaveStar.stories.tsx   |     2 +-
 .../src/components/Grid/Grid.stories.tsx           |     2 +-
 .../components/IconButton/IconButton.stories.tsx   |     2 +-
 .../src/components/Input/Input.stories.tsx         |     2 +-
 .../src/components/Label/Label.stories.tsx         |     4 +-
 .../src/components/Layout/Layout.stories.tsx       |     2 +-
 .../ListViewCard/ListViewCard.stories.tsx          |     2 +-
 .../src/components/Modal/Modal.tsx                 |    22 +-
 .../superset-ui-core/src/components/Modal/types.ts |     2 +-
 .../src/components/Radio/Radio.stories.tsx         |     2 +-
 .../SafeMarkdown/SafeMarkdown.stories.tsx          |     2 +-
 .../src/components/Skeleton/Skeleton.stories.tsx   |     2 +-
 .../src/components/Switch/Switch.stories.tsx       |     2 +-
 .../src/components/Table/Table.stories.tsx         |     4 +-
 .../ActionCell/ActionCell.stories.tsx              |     2 +-
 .../Table/cell-renderers/ActionCell/fixtures.ts    |     2 +-
 .../BooleanCell/BooleanCell.stories.tsx            |     2 +-
 .../ButtonCell/ButtonCell.stories.tsx              |     4 +-
 .../cell-renderers/NullCell/NullCell.stories.tsx   |     2 +-
 .../NumericCell/NumericCell.stories.tsx            |     2 +-
 .../cell-renderers/TimeCell/TimeCell.stories.tsx   |     2 +-
 .../src/components/Table/index.tsx                 |     2 +
 .../TableCollection/TableCollection.stories.tsx    |     2 +-
 .../src/components/TableCollection/index.tsx       |     5 +-
 .../TimezoneSelector/TimezoneSelector.stories.tsx  |     2 +-
 .../src/components/Tree/Tree.stories.tsx           |     2 +-
 .../components/TreeSelect/TreeSelect.stories.tsx   |     2 +-
 .../components/Typography/Typography.stories.tsx   |     2 +-
 .../src/components/Upload/Upload.stories.tsx       |     2 +-
 .../packages/superset-ui-core/src/utils/index.ts   |     1 +
 .../superset-ui-core/src/utils/mapStyles.test.ts   |   295 +
 .../superset-ui-core/src/utils/mapStyles.ts        |   251 +
 .../test/chart/components/reactify.test.tsx        |    89 +-
 .../factories/createDurationFormatter.test.ts      |     2 +-
 superset-frontend/playwright/pages/ExplorePage.ts  |    21 +
 .../tests/chart/handlebars-format-date.spec.ts     |   104 +
 .../tests/dashboard/gauge-interval-colors.spec.ts  |   202 +
 ...ec.ts => mixed-chart-dashboard-filters.spec.ts} |   175 +-
 .../tests/embedded/pivot-collapse-state.spec.ts    |   309 +
 .../plugins/legacy-plugin-chart-chord/package.json |     2 +-
 .../src/CountryMap.ts                              |    27 +-
 .../src/ReactCountryMap.tsx                        |     5 +
 .../plugins/legacy-preset-chart-nvd3/package.json  |     2 +-
 .../src/Radar/transformProps.ts                    |     5 +-
 .../plugin-chart-echarts/src/Radar/utils.ts        |     7 +-
 .../src/utils/tooltip.test.tsx                     |    87 +
 .../plugin-chart-echarts/src/utils/tooltip.ts      |    75 +-
 .../test/Pie/transformProps.test.ts                |    43 +
 .../plugin-chart-echarts/test/Radar/utils.test.ts  |    55 +
 .../src/components/Handlebars/HandlebarsViewer.tsx |    19 +
 .../test/components/formatDateHelper.test.ts       |    70 +
 .../src/react-pivottable/utilities.ts              |   173 +-
 .../test/react-pivottable/tableRenders.test.tsx    |   193 +
 .../plugin-chart-point-cluster-map/package.json    |     2 +-
 .../src/MapLibre.tsx                               |     9 +-
 .../src/controlPanel.ts                            |    53 +-
 .../src/transformProps.ts                          |    16 +-
 .../src/utils/mapControls.ts                       |    60 +
 .../src/utils/mapbox.ts                            |    24 +-
 .../test/MapLibre.test.tsx                         |    67 +-
 .../test/controlPanel.test.ts                      |    83 +
 .../test/transformProps.test.ts                    |    37 +
 .../plugins/plugin-chart-table/src/Styles.tsx      |     1 +
 .../plugins/plugin-chart-table/src/TableChart.tsx  |    11 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |    77 +
 .../plugins/preset-chart-deckgl/package.json       |     2 +-
 .../src/CategoricalDeckGLContainer.tsx             |    17 +-
 .../src/DeckGLContainer.test.tsx                   |   240 +
 .../preset-chart-deckgl/src/DeckGLContainer.tsx    |    11 +-
 .../preset-chart-deckgl/src/Multi/Multi.tsx        |    15 +-
 .../plugins/preset-chart-deckgl/src/factory.tsx    |    17 +-
 .../src/layers/Geojson/Geojson.test.ts             |   122 -
 .../src/layers/Geojson/Geojson.test.tsx            |   457 +
 .../src/layers/Geojson/Geojson.tsx                 |    46 +-
 .../src/layers/Geojson/controlPanel.ts             |    50 +-
 .../src/layers/Polygon/Polygon.test.tsx            |   115 +-
 .../src/layers/Polygon/Polygon.tsx                 |    12 +-
 .../src/utilities/Shared_DeckGL.test.ts            |   161 +
 .../src/utilities/Shared_DeckGL.tsx                |   136 +-
 .../preset-chart-deckgl/src/utils/mapbox.test.ts}  |    27 +-
 .../preset-chart-deckgl/src/utils/mapbox.ts        |    24 +-
 superset-frontend/scripts/check-custom-rules.js    |    57 +
 .../scripts/oxlint-metrics-uploader.js             |     6 +-
 .../spec/fixtures/mockNativeFilters.ts             |    20 +
 superset-frontend/spec/helpers/testing-library.tsx |     7 +
 .../src/SqlLab/components/AppLayout/index.tsx      |     4 +-
 .../src/SqlLab/components/EditorWrapper/index.tsx  |     5 -
 .../src/SqlLab/components/ResultSet/index.tsx      |     1 +
 .../src/SqlLab/components/SouthPane/index.tsx      |     4 +-
 .../src/SqlLab/components/StatusBar/index.tsx      |     4 +-
 .../SqlLab/components/TabbedSqlEditors/index.tsx   |    19 +-
 .../Chart/urlParamsForwarding.integration.test.ts  |   113 +
 .../src/components/CrudThemeProvider.test.tsx      |    55 +
 .../src/components/CrudThemeProvider.tsx           |    19 +-
 .../components/ErrorMessage/ErrorAlert.stories.tsx |     2 +-
 .../src/components/ListView/ListView.tsx           |    16 +-
 .../MessageToasts/ToastPresenter.test.tsx          |    10 +
 .../components/MessageToasts/ToastPresenter.tsx    |     4 +-
 .../src/components/PanelToolbar/index.tsx          |     5 +-
 .../RowCountLabel/RowCountLabel.stories.tsx        |     4 +-
 .../useStreamingExport.test.ts                     |   171 +-
 .../StreamingExportModal/useStreamingExport.ts     |    28 +-
 .../src/components/Tag/Tag.stories.tsx             |     2 +-
 .../src/components/TagsList/TagsList.stories.tsx   |     2 +-
 .../src/core/editors/EditorHost.test.tsx           |     3 +-
 superset-frontend/src/core/editors/EditorHost.tsx  |    53 +-
 .../src/core/editors/EditorProviders.ts            |    14 +
 superset-frontend/src/core/editors/index.ts        |    18 +
 superset-frontend/src/core/menus/index.ts          |    53 +
 superset-frontend/src/core/views/index.ts          |    55 +-
 .../actions/dashboardState.certification.test.ts   |   127 +
 .../src/dashboard/components/Dashboard.tsx         |   369 +-
 .../DashboardBuilder/DashboardBuilder.test.tsx     |    56 +
 .../DashboardBuilder/DashboardWrapper.test.tsx     |    53 +-
 .../dashboard/components/DashboardBuilder/utils.ts |     9 +-
 .../src/dashboard/components/DashboardGrid.tsx     |   468 +-
 .../dashboard/components/Header/Header.test.tsx    |    29 +
 .../dashboard/components/PublishedStatus/index.tsx |    96 +-
 .../src/dashboard/components/SliceAdder.tsx        |   579 +-
 .../UndoRedoKeyListeners.test.tsx                  |    34 +
 .../components/UndoRedoKeyListeners/index.tsx      |    70 +-
 .../src/dashboard/components/dnd/DragDroppable.tsx |    21 +-
 .../components/filterscope/FilterScopeModal.tsx    |    62 +-
 .../filterscope/FilterScopeSelector.test.tsx       |   265 +
 .../components/filterscope/FilterScopeSelector.tsx |   825 +-
 .../components/gridComponents/Chart/Chart.tsx      |     8 +-
 .../components/gridComponents/Divider/Divider.tsx  |    82 +-
 .../components/gridComponents/Header/Header.tsx    |   263 +-
 .../gridComponents/Markdown/Markdown.tsx           |   530 +-
 .../gridComponents/new/DraggableNewComponent.tsx   |    68 +-
 .../components/menu/BackgroundStyleDropdown.tsx    |    31 +-
 .../src/dashboard/components/menu/HoverMenu.tsx    |    71 +-
 .../components/menu/MarkdownModeDropdown.tsx       |    30 +-
 .../components/menu/WithPopoverMenu.test.tsx       |     8 +-
 .../dashboard/components/menu/WithPopoverMenu.tsx  |   293 +-
 .../nativeFilters/ConfigModal/BaseConfigModal.tsx  |   148 -
 .../nativeFilters/FilterBar/FilterBar.test.tsx     |   147 +
 .../FilterControls.overflow.test.tsx               |   305 +
 .../FilterBar/FilterControls/FilterValue.test.tsx  |   228 +
 .../FilterBar/FilterControls/FilterValue.tsx       |     5 +-
 .../FilterBar/HorizontalFilterBar.test.tsx         |   155 +-
 .../nativeFilters/FilterBar/utils.test.ts          |     7 +-
 .../components/nativeFilters/FilterBar/utils.ts    |    10 +-
 .../FiltersConfigModal/FiltersConfigModal.test.tsx |   149 +-
 .../FiltersConfigModal/NativeFiltersModal.test.tsx |    28 +-
 .../components/nativeFilters/state.test.ts         |   504 +-
 .../dashboard/components/nativeFilters/state.ts    |    76 +-
 .../dashboard/containers/DashboardPage.test.tsx    |   191 +-
 .../src/dashboard/containers/DashboardPage.tsx     |    24 +-
 .../src/dashboard/util/charts/useAllChartIds.ts    |    29 -
 .../util/logging/findTopLevelComponentIds.ts       |   113 -
 .../logging/getLoadStatsPerTopLevelComponent.ts    |    59 -
 .../src/dashboard/util/permissionUtils.ts          |     4 +-
 .../src/dashboard/util/setPeriodicRunner.ts        |    42 -
 superset-frontend/src/dataMask/reducer.test.ts     |    32 +
 superset-frontend/src/dataMask/reducer.ts          |    64 +-
 .../src/embedded/EmbeddedContextProviders.tsx      |     5 +-
 .../src/embedded/getInitialThemeMode.test.ts       |    66 +
 .../embedded/getInitialThemeMode.ts}               |    27 +-
 .../src/explore/actions/hydrateExplore.ts          |     8 +-
 .../explore/components/ControlHeader.stories.tsx   |     4 +-
 .../DatasourcePanelDragOption.test.tsx             |    16 +-
 .../DatasourcePanelDragOption/index.tsx            |    44 +-
 .../ExploreContainer/ExploreContainer.test.tsx     |   120 +-
 .../ExploreContainer/ExploreDndContext.test.tsx    |   125 +
 .../ExploreContainer/ExploreDndContext.tsx         |   244 +
 .../explore/components/ExploreContainer/index.tsx  |    81 +-
 .../src/explore/components/SaveModal.test.tsx      |    16 +
 .../src/explore/components/SaveModal.tsx           |    12 +-
 .../AnnotationLayerControl/AnnotationLayer.tsx     |     3 +-
 .../components/controls/ContourControl/index.tsx   |     2 +
 .../DndColumnMetricSelect.test.tsx                 |   273 +-
 .../DndColumnSelect.test.tsx                       |    24 +-
 .../DndColumnSelectControl/DndColumnSelect.tsx     |     5 +
 .../DndFilterSelect.test.tsx                       |   329 +-
 .../DndColumnSelectControl/DndFilterSelect.tsx     |     2 +
 .../DndMetricSelect.test.tsx                       |   258 +-
 .../DndColumnSelectControl/DndMetricSelect.tsx     |     5 +
 .../DndColumnSelectControl/DndSelectLabel.test.tsx |     9 +-
 .../DndColumnSelectControl/DndSelectLabel.tsx      |    83 +-
 .../DndColumnSelectControl/OptionWrapper.test.tsx  |    55 +-
 .../DndColumnSelectControl/OptionWrapper.tsx       |    90 +-
 .../DndColumnSelectControl/dndTestUtils.ts         |   120 +
 .../AdhocFilterOption/AdhocFilterOption.test.tsx   |     2 +-
 .../OptionControls/OptionControls.test.tsx         |    21 +-
 .../components/controls/OptionControls/index.tsx   |   109 +-
 .../src/explore/exploreUtils/index.ts              |     2 +
 superset-frontend/src/explore/types.ts             |     1 +
 .../src/extensions/ExtensionsStartup.tsx           |    29 +-
 .../src/features/databases/DatabaseModal/index.tsx |     4 +-
 .../UploadDataModel/UploadDataModal.test.tsx       |    26 +
 .../features/databases/UploadDataModel/index.tsx   |     7 +-
 .../DatasetPanel/DatasetPanel.stories.tsx          |     2 +-
 .../datasets/AddDataset/LeftPanel/index.tsx        |     2 +-
 superset-frontend/src/features/home/Menu.tsx       |    13 +-
 .../reports/ReportModal/ReportModal.test.tsx       |    25 +
 .../src/features/reports/ReportModal/index.tsx     |     5 +-
 superset-frontend/src/features/tags/TagCard.tsx    |   126 -
 .../components/Range/RangeFilterPlugin.stories.tsx |     2 +-
 .../Select/SelectFilterPlugin.stories.tsx          |     2 +-
 superset-frontend/src/hooks/useMemoCompare.ts      |    39 -
 superset-frontend/src/hooks/useOpenerRef.ts        |    32 -
 superset-frontend/src/pages/SqlLab/index.tsx       |    40 +-
 superset-frontend/src/theme/ThemeController.ts     |    15 +
 superset-frontend/src/theme/ThemeProvider.tsx      |     9 +-
 .../src/theme/tests/ThemeController.test.ts        |    18 +
 .../src/theme/tests/ThemeProvider.test.tsx         |     1 +
 superset-frontend/src/types/Dashboard.ts           |     1 +
 .../src/utils/getBootstrapData.test.ts             |    28 +
 superset-frontend/src/utils/getBootstrapData.ts    |    29 +-
 .../src/utils/isDashboardVirtualizationEnabled.ts  |    30 -
 superset-websocket/.nvmrc                          |     2 +-
 superset-websocket/Dockerfile                      |    18 +-
 superset-websocket/package-lock.json               |   324 +-
 superset-websocket/package.json                    |    18 +-
 superset-websocket/spec/index.test.ts              |   312 +-
 superset-websocket/src/config.ts                   |    41 +
 superset-websocket/src/index.ts                    |   171 +-
 superset-websocket/src/logger.ts                   |     1 +
 superset-websocket/utils/client-ws-app/.nvmrc      |     2 +-
 .../utils/client-ws-app/package-lock.json          |   118 +-
 .../utils/client-ws-app/package.json               |     2 +-
 superset/async_events/async_query_manager.py       |    13 +-
 superset/charts/api.py                             |     9 +-
 superset/charts/client_processing.py               |    13 +-
 superset/charts/data/api.py                        |    16 +-
 superset/charts/filters.py                         |    18 +-
 superset/charts/schemas.py                         |    81 +-
 superset/cli/guest_token.py                        |    54 +
 superset/cli/update.py                             |    44 +-
 superset/commands/chart/create.py                  |     7 +-
 .../chart/data/create_async_job_command.py         |     5 +
 superset/commands/chart/export.py                  |     2 +-
 superset/commands/chart/update.py                  |    14 +-
 superset/commands/dashboard/create.py              |    16 +-
 superset/commands/dashboard/export.py              |     2 +-
 superset/commands/dashboard/export_example.py      |    70 +-
 superset/commands/dashboard/filter_state/create.py |     9 +-
 superset/commands/dashboard/importers/v1/utils.py  |     2 +-
 superset/commands/database/create.py               |     2 +
 superset/commands/database/exceptions.py           |     5 +
 superset/commands/database/export.py               |     7 +-
 .../commands/database/ssh_tunnel/exceptions.py     |     8 +
 superset/commands/database/test_connection.py      |    10 +-
 superset/commands/database/uploaders/base.py       |    41 +
 .../commands/database/uploaders/columnar_reader.py |     8 +
 superset/commands/dataset/export.py                |     7 +-
 superset/commands/dataset/importers/v1/utils.py    |    71 +-
 superset/commands/explore/form_data/create.py      |    11 +-
 superset/commands/explore/get.py                   |     7 +-
 superset/commands/export/assets.py                 |    18 +-
 superset/commands/security/create.py               |     2 +
 superset/commands/security/delete.py               |     9 +-
 superset/commands/security/exceptions.py           |    10 +-
 superset/commands/security/update.py               |     2 +
 superset/commands/security/utils.py                |    42 +
 superset/commands/sql_lab/estimate.py              |    98 +-
 superset/commands/streaming_export/base.py         |    67 +-
 superset/commands/temporary_cache/create.py        |     1 +
 superset/commands/temporary_cache/delete.py        |     1 +
 superset/commands/temporary_cache/update.py        |     1 +
 superset/commands/utils.py                         |     9 +-
 superset/common/query_context.py                   |     2 +-
 superset/common/query_context_processor.py         |    17 +-
 superset/common/utils/dataframe_utils.py           |    10 +-
 superset/config.py                                 |   153 +-
 superset/constants.py                              |     1 +
 superset/daos/base.py                              |    15 +-
 superset/daos/database.py                          |    75 +
 superset/dashboards/api.py                         |    10 +-
 superset/dashboards/filters.py                     |    12 +-
 superset/dashboards/permalink/schemas.py           |     8 +-
 superset/dashboards/schemas.py                     |    81 +-
 superset/databases/api.py                          |    61 +-
 superset/databases/schemas.py                      |    25 +-
 superset/databases/ssh_tunnel/models.py            |    10 +
 superset/datasets/api.py                           |    12 +-
 superset/db_engine_specs/__init__.py               |     8 +
 superset/db_engine_specs/base.py                   |    25 +
 superset/db_engine_specs/bigquery.py               |    35 +-
 superset/db_engine_specs/impala.py                 |    29 +-
 superset/db_engine_specs/mysql.py                  |     5 +
 superset/db_engine_specs/ocient.py                 |     8 +-
 superset/db_engine_specs/odps.py                   |   201 +
 superset/db_engine_specs/oracle.py                 |     4 +-
 superset/db_engine_specs/postgres.py               |     5 +
 superset/db_engine_specs/redshift.py               |     5 +
 superset/db_engine_specs/singlestore.py            |     5 +
 superset/db_engine_specs/snowflake.py              |     5 +
 superset/db_engine_specs/trino.py                  |     6 +
 superset/embedded/view.py                          |    14 +
 superset/extensions/ssh.py                         |   134 +-
 superset/extensions/utils.py                       |     6 +-
 superset/initialization/__init__.py                |    78 +-
 superset/jinja_context.py                          |    33 +-
 superset/key_value/shared_entries.py               |    13 +
 superset/key_value/types.py                        |     3 +
 superset/key_value/utils.py                        |    31 +-
 superset/mcp_service/__init__.py                   |    13 +
 superset/mcp_service/__main__.py                   |    26 +-
 superset/mcp_service/action_log/schemas.py         |   302 -
 superset/mcp_service/action_log/tool/__init__.py   |    24 -
 .../action_log/tool/get_action_log_info.py         |    97 -
 .../action_log/tool/list_action_logs.py            |   152 -
 superset/mcp_service/app.py                        |    77 +-
 superset/mcp_service/auth.py                       |   178 +-
 superset/mcp_service/chart/chart_utils.py          |     3 +
 superset/mcp_service/chart/schemas.py              |    42 +
 .../chart/tool/get_chart_type_schema.py            |     8 +
 superset/mcp_service/chart/tool/update_chart.py    |   142 +-
 superset/mcp_service/common/schema_discovery.py    |    85 +-
 superset/mcp_service/constants.py                  |     4 +-
 superset/mcp_service/css_template/schemas.py       |   280 -
 superset/mcp_service/css_template/tool/__init__.py |    24 -
 .../css_template/tool/get_css_template_info.py     |   108 -
 .../css_template/tool/list_css_templates.py        |   150 -
 superset/mcp_service/dataset/schemas.py            |    76 +-
 superset/mcp_service/dataset/tool/__init__.py      |     4 +-
 .../mcp_service/dataset/tool/create_dataset.py     |   171 +
 superset/mcp_service/jwt_verifier.py               |   135 +-
 superset/mcp_service/mcp_core.py                   |    12 +
 superset/mcp_service/plugin/dao.py                 |    23 -
 superset/mcp_service/plugin/schemas.py             |   213 -
 superset/mcp_service/plugin/tool/__init__.py       |    24 -
 .../mcp_service/plugin/tool/get_plugin_info.py     |   101 -
 superset/mcp_service/plugin/tool/list_plugins.py   |   123 -
 superset/mcp_service/server.py                     |    64 +-
 superset/mcp_service/system/tool/get_schema.py     |    55 +-
 superset/mcp_service/theme/__init__.py             |    16 -
 superset/mcp_service/theme/schemas.py              |   305 -
 superset/mcp_service/theme/tool/__init__.py        |    24 -
 superset/mcp_service/theme/tool/get_theme_info.py  |   116 -
 superset/mcp_service/theme/tool/list_themes.py     |   147 -
 superset/migrations/shared/catalogs.py             |    18 +-
 ...00-00_ce6bd21901ab_migrate_deckgl_and_mapbox.py |    70 +-
 ...ae2559c05_replay_user_favorite_tag_migration.py |    81 +
 ...00-00_b7c9d1e2f3a4_add_password_must_change.py} |    28 +-
 ...c8d2e3f4a5b6_add_guest_token_revoked_before.py} |    26 +-
 ...-00_f7a1c93e0b21_add_sessions_invalidated_at.py |   177 +
 ...0c08b4be_add_server_host_key_to_ssh_tunnels.py} |    31 +-
 superset/models/core.py                            |    26 +-
 superset/models/embedded_dashboard.py              |     4 +
 superset/models/helpers.py                         |    11 +-
 superset/models/slice.py                           |     6 +
 superset/models/sql_lab.py                         |    17 +-
 superset/models/user_attributes.py                 |    22 +-
 superset/queries/saved_queries/api.py              |     3 +-
 superset/reports/filters.py                        |    11 +-
 superset/reports/notifications/webhook.py          |    60 +-
 superset/result_set.py                             |    34 +-
 superset/row_level_security/api.py                 |    21 +-
 superset/security/guest_token.py                   |    60 +
 superset/security/manager.py                       |   383 +-
 superset/security/password_change.py               |   211 +
 superset/security/password_complexity.py           |   125 +
 superset/security/session_invalidation.py          |   205 +
 superset/semantic_layers/mapper.py                 |     7 +-
 superset/sql/parse.py                              |   169 +-
 superset/sql_lab.py                                |    13 +
 superset/templates/superset/spa.html               |     2 +-
 superset/themes/api.py                             |     3 +-
 superset/translations/ar/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/de/LC_MESSAGES/messages.po   |  8646 +++++-----
 superset/translations/en/LC_MESSAGES/messages.po   |    12 +-
 superset/translations/es/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |    15 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/it/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/messages.pot                 |    12 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |    13 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |    13 +-
 superset/translations/ro/LC_MESSAGES/messages.po   | 16267 +++++++++++++++++++
 superset/translations/ru/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/th/LC_MESSAGES/messages.po   |    15 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |    13 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |    13 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |    13 +-
 superset/utils/core.py                             |    38 +-
 superset/utils/csv.py                              |    15 +-
 superset/utils/encrypt.py                          |   330 +-
 superset/utils/json.py                             |    31 +-
 superset/utils/network.py                          |    51 +
 superset/utils/pandas_postprocessing/boxplot.py    |     5 +-
 superset/utils/pandas_postprocessing/histogram.py  |     2 +-
 superset/utils/schema.py                           |    34 +-
 superset/views/base.py                             |     7 +-
 superset/views/core.py                             |    11 +-
 superset/viz.py                                    |    62 +-
 tests/integration_tests/charts/api_tests.py        |     5 +-
 tests/integration_tests/charts/commands_tests.py   |    65 +
 tests/integration_tests/cli_tests.py               |   102 +
 tests/integration_tests/core_tests.py              |    30 +-
 tests/integration_tests/dashboards/api_tests.py    |   143 +
 .../integration_tests/dashboards/commands_tests.py |    30 +
 .../integration_tests/databases/commands_tests.py  |    24 +
 tests/integration_tests/datasets/api_tests.py      |     3 +
 tests/integration_tests/datasets/commands_tests.py |    37 +
 .../db_engine_specs/base_engine_spec_tests.py      |     7 +-
 .../db_engine_specs/bigquery_tests.py              |     7 +
 tests/integration_tests/embedded/test_view.py      |    33 +
 ...ce6bd21901ab_migrate_deckgl_and_mapbox__test.py |   233 +-
 .../queries/saved_queries/api_tests.py             |    39 +
 .../security/password_complexity_tests.py          |    70 +
 .../security/session_invalidation_tests.py         |    79 +
 tests/integration_tests/sql_lab/commands_tests.py  |    29 +
 .../test_database_password_encoding.py             |   108 +
 .../async_events/async_query_manager_tests.py      |    67 +
 .../unit_tests/charts/data}/__init__.py            |     0
 .../charts/data/streaming_filename_test.py         |    59 +
 tests/unit_tests/charts/test_client_processing.py  |   157 +
 tests/unit_tests/charts/test_schemas.py            |   268 +
 .../unit_tests/cli}/__init__.py                    |     0
 tests/unit_tests/cli/guest_token_test.py           |    58 +
 .../chart/create_async_job_command_test.py         |    51 +
 tests/unit_tests/commands/chart/update_test.py     |    62 +-
 .../commands/dashboard/export_example_test.py      |   102 +
 .../commands/dashboard/filter_state_create_test.py |    72 +
 .../commands/databases/columnar_reader_test.py     |    36 +-
 .../commands/databases/upload_command_test.py      |   147 +
 .../commands/explore/form_data/test_create.py      |    39 +
 tests/unit_tests/commands/export_test.py           |     9 +
 .../commands/importers/v1/assets_test.py           |     6 +-
 tests/unit_tests/commands/report/update_test.py    |    37 +
 .../unit_tests/commands/security}/__init__.py      |     0
 tests/unit_tests/commands/security/rls_test.py     |   196 +
 .../sql_lab/streaming_export_command_test.py       |   194 +
 tests/unit_tests/commands/sql_lab/test_estimate.py |   212 +
 .../commands/temporary_cache_create_test.py        |    63 +
 tests/unit_tests/common/test_dataframe_utils.py    |    25 +
 .../common/test_query_context_processor.py         |    40 +-
 tests/unit_tests/dao/base_dao_test.py              |    51 +
 tests/unit_tests/daos/test_report_dao.py           |    37 +
 .../commands/importers/v1/import_test.py           |    49 +
 tests/unit_tests/dashboards/schema_tests.py        |   195 +
 tests/unit_tests/databases/api_test.py             |    49 +-
 tests/unit_tests/databases/filters_test.py         |     2 +-
 tests/unit_tests/databases/schema_tests.py         |    31 +
 .../datasets/commands/importers/v1/import_test.py  |   143 +-
 tests/unit_tests/db_engine_specs/test_bigquery.py  |    87 +-
 .../test_cancel_query_validation.py                |   476 +
 tests/unit_tests/db_engine_specs/test_impala.py    |    73 +-
 tests/unit_tests/db_engine_specs/test_odps.py      |   174 +
 tests/unit_tests/extension_tests.py                |     2 +-
 tests/unit_tests/extensions/ssh_test.py            |   233 +-
 tests/unit_tests/fixtures/assets_configs.py        |     2 +
 .../unit_tests/initialization}/__init__.py         |     0
 .../check_async_query_secret_test.py               |   140 +
 tests/unit_tests/jinja_context_test.py             |    35 +
 .../key_value/test_shared_entries_migration.py     |    47 +
 tests/unit_tests/key_value/utils_test.py           |    45 +
 .../unit_tests/mcp_service/action_log/__init__.py  |    16 -
 .../mcp_service/action_log/tool/__init__.py        |    16 -
 .../action_log/tool/test_action_log_tools.py       |   401 -
 .../mcp_service/chart/test_big_number_chart.py     |    87 +
 .../mcp_service/chart/tool/test_update_chart.py    |   293 +-
 .../mcp_service/css_template/__init__.py           |    16 -
 .../mcp_service/css_template/tool/__init__.py      |    16 -
 .../css_template/tool/test_css_template_tools.py   |   280 -
 .../database/tool/test_database_tools.py           |    42 +
 .../dataset/tool/test_create_dataset.py            |   585 +
 tests/unit_tests/mcp_service/plugin/__init__.py    |    16 -
 .../unit_tests/mcp_service/plugin/tool/__init__.py |    16 -
 .../mcp_service/plugin/tool/test_plugin_tools.py   |   172 -
 .../mcp_service/system/tool/test_get_schema.py     |   149 +-
 .../mcp_service/system/tool/test_mcp_core.py       |    76 +
 tests/unit_tests/mcp_service/test_auth_api_key.py  |    50 +
 tests/unit_tests/mcp_service/test_auth_rbac.py     |   135 +
 .../mcp_service/test_auth_user_resolution.py       |    92 +
 tests/unit_tests/mcp_service/test_jwt_verifier.py  |   302 +
 .../mcp_service/test_mcp_tool_registration.py      |    53 +-
 .../mcp_service/test_tool_search_transform.py      |   126 +
 tests/unit_tests/mcp_service/theme/__init__.py     |    16 -
 .../unit_tests/mcp_service/theme/tool/__init__.py  |    16 -
 .../mcp_service/theme/tool/test_theme_tools.py     |   267 -
 tests/unit_tests/models/helpers_test.py            |   115 +-
 .../models/test_core_database_password_encoding.py |   196 +
 tests/unit_tests/reports/filters_test.py           |    44 +
 .../reports/notifications/webhook_tests.py         |    46 +
 tests/unit_tests/result_set_test.py                |    67 +-
 tests/unit_tests/security/audit_log_test.py        |     8 +-
 .../security/guest_token_revocation_test.py        |   242 +
 tests/unit_tests/security/manager_test.py          |   436 +-
 .../security/test_guest_token_revocation.py        |   157 +
 tests/unit_tests/security/test_password_change.py  |   223 +
 .../security/test_password_complexity.py           |   113 +
 tests/unit_tests/security/test_permission_hooks.py |   204 +
 .../security/test_session_invalidation.py          |   214 +
 tests/unit_tests/sql/parse_tests.py                |   262 +
 tests/unit_tests/sql_lab_test.py                   |     3 +
 tests/unit_tests/test_mcp_stdio_entrypoint.py      |   108 +
 tests/unit_tests/test_viz_get_df_payload.py        |   133 +
 tests/unit_tests/utils/csv_tests.py                |    23 +
 tests/unit_tests/utils/encrypt_test.py             |   373 +
 tests/unit_tests/utils/test_core.py                |    55 +
 tests/unit_tests/utils/test_network.py             |   133 +
 tests/unit_tests/utils/test_split.py               |    81 +
 tests/unit_tests/views/test_base.py                |     6 +
 613 files changed, 52544 insertions(+), 25143 deletions(-)
 delete mode 100644 .github/workflows/claude.yml
 create mode 100644 docs/sip/authenticated-encryption-at-rest.md
 copy superset-frontend/src/explore/components/controls/ColumnConfigControl/ColumnConfigConstants.test.tsx => superset-embedded-sdk/src/withTimeout.test.ts (56%)
 copy superset-frontend/packages/superset-ui-core/test/currency-format/hasMixedCurrencies.test.ts => superset-embedded-sdk/src/withTimeout.ts (57%)
 delete mode 100644 superset-frontend/.eslintignore
 delete mode 100644 superset-frontend/.eslintrc.js
 delete mode 100644 superset-frontend/.eslintrc.minimal.js
 rename superset-frontend/.storybook/{main.js => main.mjs} (83%)
 delete mode 100644 superset-frontend/cypress-base/cypress/e2e/dashboard/actions.test.js
 create mode 100644 superset-frontend/eslint-rules/eslint-plugin-i18n-strings/no-eager-t-in-config.test.ts
 create mode 100644 superset-frontend/eslint.config.minimal.js
 create mode 100644 superset-frontend/packages/superset-ui-core/src/utils/mapStyles.test.ts
 create mode 100644 superset-frontend/packages/superset-ui-core/src/utils/mapStyles.ts
 create mode 100644 superset-frontend/playwright/tests/chart/handlebars-format-date.spec.ts
 create mode 100644 superset-frontend/playwright/tests/dashboard/gauge-interval-colors.spec.ts
 copy superset-frontend/playwright/tests/dashboard/{clear-all-filters.spec.ts => mixed-chart-dashboard-filters.spec.ts} (55%)
 create mode 100644 superset-frontend/playwright/tests/embedded/pivot-collapse-state.spec.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/src/utils/tooltip.test.tsx
 create mode 100644 superset-frontend/plugins/plugin-chart-echarts/test/Radar/utils.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-handlebars/test/components/formatDateHelper.test.ts
 create mode 100644 superset-frontend/plugins/plugin-chart-point-cluster-map/src/utils/mapControls.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/DeckGLContainer.test.tsx
 delete mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/Geojson.test.ts
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/layers/Geojson/Geojson.test.tsx
 create mode 100644 superset-frontend/plugins/preset-chart-deckgl/src/utilities/Shared_DeckGL.test.ts
 copy superset-frontend/{packages/superset-ui-core/src/components/Switch/Switch.test.tsx => plugins/preset-chart-deckgl/src/utils/mapbox.test.ts} (60%)
 create mode 100644 superset-frontend/src/components/Chart/urlParamsForwarding.integration.test.ts
 create mode 100644 superset-frontend/src/dashboard/actions/dashboardState.certification.test.ts
 create mode 100644 superset-frontend/src/dashboard/components/filterscope/FilterScopeSelector.test.tsx
 delete mode 100644 superset-frontend/src/dashboard/components/nativeFilters/ConfigModal/BaseConfigModal.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterControls.overflow.test.tsx
 create mode 100644 superset-frontend/src/dashboard/components/nativeFilters/FilterBar/FilterControls/FilterValue.test.tsx
 delete mode 100644 superset-frontend/src/dashboard/util/charts/useAllChartIds.ts
 delete mode 100644 superset-frontend/src/dashboard/util/logging/findTopLevelComponentIds.ts
 delete mode 100644 superset-frontend/src/dashboard/util/logging/getLoadStatsPerTopLevelComponent.ts
 delete mode 100644 superset-frontend/src/dashboard/util/setPeriodicRunner.ts
 create mode 100644 superset-frontend/src/embedded/getInitialThemeMode.test.ts
 copy superset-frontend/{packages/superset-ui-core/src/hooks/useChangeEffect/useChangeEffect.ts => src/embedded/getInitialThemeMode.ts} (55%)
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.test.tsx
 create mode 100644 superset-frontend/src/explore/components/ExploreContainer/ExploreDndContext.tsx
 create mode 100644 superset-frontend/src/explore/components/controls/DndColumnSelectControl/dndTestUtils.ts
 delete mode 100644 superset-frontend/src/features/tags/TagCard.tsx
 delete mode 100644 superset-frontend/src/hooks/useMemoCompare.ts
 delete mode 100644 superset-frontend/src/hooks/useOpenerRef.ts
 delete mode 100644 superset-frontend/src/utils/isDashboardVirtualizationEnabled.ts
 create mode 100644 superset/cli/guest_token.py
 create mode 100644 superset/commands/security/utils.py
 create mode 100644 superset/db_engine_specs/odps.py
 delete mode 100644 superset/mcp_service/action_log/schemas.py
 delete mode 100644 superset/mcp_service/action_log/tool/__init__.py
 delete mode 100644 superset/mcp_service/action_log/tool/get_action_log_info.py
 delete mode 100644 superset/mcp_service/action_log/tool/list_action_logs.py
 delete mode 100644 superset/mcp_service/css_template/schemas.py
 delete mode 100644 superset/mcp_service/css_template/tool/__init__.py
 delete mode 100644 superset/mcp_service/css_template/tool/get_css_template_info.py
 delete mode 100644 superset/mcp_service/css_template/tool/list_css_templates.py
 create mode 100644 superset/mcp_service/dataset/tool/create_dataset.py
 delete mode 100644 superset/mcp_service/plugin/dao.py
 delete mode 100644 superset/mcp_service/plugin/schemas.py
 delete mode 100644 superset/mcp_service/plugin/tool/__init__.py
 delete mode 100644 superset/mcp_service/plugin/tool/get_plugin_info.py
 delete mode 100644 superset/mcp_service/plugin/tool/list_plugins.py
 delete mode 100644 superset/mcp_service/theme/__init__.py
 delete mode 100644 superset/mcp_service/theme/schemas.py
 delete mode 100644 superset/mcp_service/theme/tool/__init__.py
 delete mode 100644 superset/mcp_service/theme/tool/get_theme_info.py
 delete mode 100644 superset/mcp_service/theme/tool/list_themes.py
 create mode 100644 superset/migrations/versions/2026-04-22_19-00_31dae2559c05_replay_user_favorite_tag_migration.py
 copy superset/migrations/versions/{2025-03-03_20-52_94e7a3499973_add_folders_column_to_dataset.py => 2026-06-01_00-00_b7c9d1e2f3a4_add_password_must_change.py} (65%)
 copy superset/migrations/versions/{2024-09-25_17-59_7b17aa722e30_uuidmixin.py => 2026-06-01_00-10_c8d2e3f4a5b6_add_guest_token_revoked_before.py} (65%)
 create mode 100644 superset/migrations/versions/2026-06-02_10-00_f7a1c93e0b21_add_sessions_invalidated_at.py
 copy superset/migrations/versions/{2025-03-03_20-52_94e7a3499973_add_folders_column_to_dataset.py => 2026-06-03_10-00_78a40c08b4be_add_server_host_key_to_ssh_tunnels.py} (51%)
 create mode 100644 superset/security/password_change.py
 create mode 100644 superset/security/password_complexity.py
 create mode 100644 superset/security/session_invalidation.py
 create mode 100644 superset/translations/ro/LC_MESSAGES/messages.po
 create mode 100644 tests/integration_tests/security/password_complexity_tests.py
 create mode 100644 tests/integration_tests/security/session_invalidation_tests.py
 create mode 100644 tests/integration_tests/test_database_password_encoding.py
 rename {superset/mcp_service/action_log => tests/unit_tests/charts/data}/__init__.py (100%)
 create mode 100644 tests/unit_tests/charts/data/streaming_filename_test.py
 rename {superset/mcp_service/css_template => tests/unit_tests/cli}/__init__.py (100%)
 create mode 100644 tests/unit_tests/cli/guest_token_test.py
 create mode 100644 tests/unit_tests/commands/chart/create_async_job_command_test.py
 create mode 100644 tests/unit_tests/commands/dashboard/filter_state_create_test.py
 create mode 100644 tests/unit_tests/commands/databases/upload_command_test.py
 rename {superset/mcp_service/plugin => tests/unit_tests/commands/security}/__init__.py (100%)
 create mode 100644 tests/unit_tests/commands/security/rls_test.py
 create mode 100644 tests/unit_tests/commands/temporary_cache_create_test.py
 create mode 100644 tests/unit_tests/dashboards/schema_tests.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_cancel_query_validation.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_odps.py
 copy {superset-core/src/superset_core/common => tests/unit_tests/initialization}/__init__.py (100%)
 create mode 100644 tests/unit_tests/initialization/check_async_query_secret_test.py
 delete mode 100644 tests/unit_tests/mcp_service/action_log/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/action_log/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/action_log/tool/test_action_log_tools.py
 delete mode 100644 tests/unit_tests/mcp_service/css_template/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/css_template/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/css_template/tool/test_css_template_tools.py
 create mode 100644 tests/unit_tests/mcp_service/dataset/tool/test_create_dataset.py
 delete mode 100644 tests/unit_tests/mcp_service/plugin/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/plugin/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/plugin/tool/test_plugin_tools.py
 delete mode 100644 tests/unit_tests/mcp_service/theme/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/theme/tool/__init__.py
 delete mode 100644 tests/unit_tests/mcp_service/theme/tool/test_theme_tools.py
 create mode 100644 tests/unit_tests/models/test_core_database_password_encoding.py
 create mode 100644 tests/unit_tests/security/guest_token_revocation_test.py
 create mode 100644 tests/unit_tests/security/test_guest_token_revocation.py
 create mode 100644 tests/unit_tests/security/test_password_change.py
 create mode 100644 tests/unit_tests/security/test_password_complexity.py
 create mode 100644 tests/unit_tests/security/test_permission_hooks.py
 create mode 100644 tests/unit_tests/security/test_session_invalidation.py
 create mode 100644 tests/unit_tests/test_mcp_stdio_entrypoint.py
 create mode 100644 tests/unit_tests/utils/encrypt_test.py
 create mode 100644 tests/unit_tests/utils/test_network.py
 create mode 100644 tests/unit_tests/utils/test_split.py