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

(superset) branch tdd/issue-32768-guest-time-grain updated (36d892e0f25 -> 1df007a70f4)

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

rusackas pushed a change to branch tdd/issue-32768-guest-time-grain
in repository https://gitbox.apache.org/repos/asf/superset.git


 discard 36d892e0f25 fix(embedded): strip guest-overridable keys nested in orderby tuples
 discard cc8c6dcf926 test(security): guard time-grain relaxation against column tampering
 discard 381f89e4a49 fix(embedded): allow guests to apply a Time Grain native filter (#32768)
     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 8aab49c3270 fix(embedded): allow guests to apply a Time Grain native filter (#32768)
     add e88f06d7c59 test(security): guard time-grain relaxation against column tampering
     add 1df007a70f4 fix(embedded): strip guest-overridable keys nested in orderby tuples

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   (36d892e0f25)
            \
             N -- N -- N   refs/heads/tdd/issue-32768-guest-time-grain (1df007a70f4)

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/superset-extensions-cli.yml      |   2 +-
 .github/workflows/superset-frontend.yml            |   2 +-
 .../workflows/superset-python-integrationtest.yml  |   6 +-
 .github/workflows/superset-python-presto-hive.yml  |   4 +-
 .github/workflows/superset-python-unittest.yml     |   2 +-
 UPDATING.md                                        |  56 +++
 docs/package.json                                  |   4 +-
 docs/sip/authenticated-encryption-at-rest.md       | 136 ++++++
 docs/yarn.lock                                     |  22 +-
 pyproject.toml                                     |  10 +-
 requirements/base.txt                              |   2 +-
 requirements/development.txt                       |   8 +-
 superset-frontend/package-lock.json                | 415 ++++++++----------
 superset-frontend/package.json                     |  12 +-
 .../packages/superset-ui-core/package.json         |   4 +-
 .../AsyncAceEditor/AsyncAceEditor.test.tsx         |  13 +
 .../src/components/AsyncAceEditor/index.tsx        |  17 +-
 .../DynamicEditableTitle.regression.test.tsx       |  39 +-
 .../src/components/DynamicEditableTitle/index.tsx  |  29 +-
 superset-frontend/playwright/pages/ExplorePage.ts  |  21 +
 .../tests/chart/handlebars-format-date.spec.ts     | 104 +++++
 .../tests/dashboard/gauge-interval-colors.spec.ts  | 202 +++++++++
 .../tests/embedded/pivot-collapse-state.spec.ts    | 309 +++++++++++++
 .../src/CountryMap.ts                              |  27 +-
 .../src/ReactCountryMap.tsx                        |   5 +
 .../src/utils/tooltip.test.tsx                     |  87 ++++
 .../plugin-chart-echarts/src/utils/tooltip.ts      |  75 +++-
 .../test/Pie/transformProps.test.ts                |  43 ++
 .../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 +++++++++
 .../plugins/plugin-chart-table/src/TableChart.tsx  |   7 +-
 .../plugin-chart-table/test/TableChart.test.tsx    |  77 ++++
 .../src/SqlLab/components/EditorWrapper/index.tsx  |   5 -
 .../src/SqlLab/components/ResultSet/index.tsx      |   1 +
 .../Chart/urlParamsForwarding.integration.test.ts  | 113 +++++
 .../useStreamingExport.test.ts                     | 171 +++++++-
 .../StreamingExportModal/useStreamingExport.ts     |  28 +-
 .../DashboardBuilder/DashboardBuilder.test.tsx     |  56 +++
 .../src/explore/components/SaveModal.test.tsx      |  16 +
 .../src/explore/components/SaveModal.tsx           |   8 +-
 .../src/explore/exploreUtils/index.ts              |   2 +
 .../src/features/databases/DatabaseModal/index.tsx |   4 +-
 .../reports/ReportModal/ReportModal.test.tsx       |  25 ++
 .../src/features/reports/ReportModal/index.tsx     |   5 +-
 superset-websocket/package-lock.json               |  14 +-
 superset-websocket/package.json                    |   2 +-
 superset/charts/api.py                             |   2 +-
 superset/charts/data/api.py                        |   7 +-
 superset/cli/update.py                             |  38 +-
 superset/commands/chart/update.py                  |  14 +-
 superset/commands/dashboard/export_example.py      |  70 +--
 superset/commands/dashboard/importers/v1/utils.py  |   2 +-
 superset/commands/database/exceptions.py           |   5 +
 superset/commands/database/uploaders/base.py       |  41 ++
 .../commands/database/uploaders/columnar_reader.py |  37 --
 superset/commands/dataset/importers/v1/utils.py    |  71 ++-
 superset/common/query_context.py                   |   2 +-
 superset/common/query_context_processor.py         |  17 +-
 superset/config.py                                 |  57 ++-
 superset/dashboards/api.py                         |   2 +-
 superset/databases/api.py                          |  19 +
 superset/datasets/api.py                           |   8 +-
 superset/db_engine_specs/base.py                   |  21 +
 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/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/jinja_context.py                          |  33 +-
 superset/mcp_service/__init__.py                   |  13 +
 superset/mcp_service/__main__.py                   |  26 +-
 superset/mcp_service/server.py                     |  64 ++-
 superset/models/core.py                            |  26 +-
 superset/models/helpers.py                         |   4 +-
 superset/reports/filters.py                        |  11 +-
 superset/reports/notifications/webhook.py          |  60 ++-
 superset/security/manager.py                       | 149 ++++++-
 superset/security/password_complexity.py           | 125 ++++++
 superset/translations/ar/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/ca/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/cs/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/de/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/en/LC_MESSAGES/messages.po   |   8 +-
 superset/translations/es/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/fa/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/fi/LC_MESSAGES/messages.po   |  11 +-
 superset/translations/fr/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/it/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/ja/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/ko/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/lv/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/messages.pot                 |   8 +-
 superset/translations/mi/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/nl/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/pl/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/pt/LC_MESSAGES/messages.po   |   9 +-
 .../translations/pt_BR/LC_MESSAGES/messages.po     |   9 +-
 superset/translations/ru/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/sk/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/sl/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/th/LC_MESSAGES/messages.po   |  11 +-
 superset/translations/tr/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/uk/LC_MESSAGES/messages.po   |   9 +-
 superset/translations/zh/LC_MESSAGES/messages.po   |   9 +-
 .../translations/zh_TW/LC_MESSAGES/messages.po     |   9 +-
 superset/utils/encrypt.py                          | 330 ++++++++++++--
 superset/utils/network.py                          |  51 +++
 superset/utils/pandas_postprocessing/boxplot.py    |   5 +-
 superset/utils/pandas_postprocessing/histogram.py  |   2 +-
 tests/integration_tests/charts/api_tests.py        |   3 +
 tests/integration_tests/charts/commands_tests.py   |  38 ++
 tests/integration_tests/cli_tests.py               | 102 +++++
 tests/integration_tests/dashboards/api_tests.py    |  67 +++
 tests/integration_tests/datasets/api_tests.py      |   3 +
 .../security/password_complexity_tests.py          |  70 +++
 .../test_database_password_encoding.py             | 108 +++++
 tests/unit_tests/commands/chart/update_test.py     |  62 ++-
 .../commands/dashboard/export_example_test.py      | 102 +++++
 .../commands/databases/columnar_reader_test.py     |  49 ---
 .../commands/databases/upload_command_test.py      | 147 +++++++
 tests/unit_tests/commands/report/update_test.py    |  37 ++
 .../common/test_query_context_processor.py         |  40 +-
 tests/unit_tests/daos/test_report_dao.py           |  37 ++
 .../commands/importers/v1/import_test.py           |  49 +++
 tests/unit_tests/databases/api_test.py             |  37 ++
 .../datasets/commands/importers/v1/import_test.py  | 143 ++++++-
 .../test_cancel_query_validation.py                | 476 +++++++++++++++++++++
 tests/unit_tests/db_engine_specs/test_impala.py    |  73 +++-
 tests/unit_tests/jinja_context_test.py             |  35 ++
 .../mcp_service/test_tool_search_transform.py      | 126 ++++++
 .../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/security/manager_test.py          | 187 +++++++-
 .../security/test_password_complexity.py           | 113 +++++
 tests/unit_tests/test_mcp_stdio_entrypoint.py      | 108 +++++
 tests/unit_tests/utils/encrypt_test.py             | 373 ++++++++++++++++
 tests/unit_tests/utils/test_network.py             | 133 ++++++
 143 files changed, 6538 insertions(+), 736 deletions(-)
 create mode 100644 docs/sip/authenticated-encryption-at-rest.md
 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
 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-handlebars/test/components/formatDateHelper.test.ts
 create mode 100644 superset-frontend/src/components/Chart/urlParamsForwarding.integration.test.ts
 create mode 100644 superset/security/password_complexity.py
 create mode 100644 tests/integration_tests/security/password_complexity_tests.py
 create mode 100644 tests/integration_tests/test_database_password_encoding.py
 create mode 100644 tests/unit_tests/commands/databases/upload_command_test.py
 create mode 100644 tests/unit_tests/db_engine_specs/test_cancel_query_validation.py
 create mode 100644 tests/unit_tests/models/test_core_database_password_encoding.py
 create mode 100644 tests/unit_tests/security/test_password_complexity.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