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/10/19 23:04:07 UTC

(superset) branch fix/annotation-cache-scope updated (0b33f24004a -> 5b089c590ba)

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

rusackas pushed a change to branch fix/annotation-cache-scope
in repository https://gitbox.apache.org/repos/asf/superset.git


    omit 0b33f24004a fix(async-queries): type cancel-id sink with its database argument
    omit 4190cb49a53 fix(async-queries): scope cancel-id capture to task DB and surface cached read-back failures as 400
    omit 769aa5949a1 fix(charts): preserve validation error type for annotation layer failures
    omit e10abe8adae fix(charts): restore semantic filter protocol and test mocks after rebase
    omit 4466baa0d8d fix(charts): address annotation cache review feedback
    omit b9b295322b9 test(charts): narrow optional annotation cache context for mypy
    omit 82b316897b7 test(charts): fix mypy assignment typing in annotation cache test
    omit 69577da9b3d fix(charts): keep semantic version material in annotation source scope after rebase
    omit 38c96b2dbf3 fix(charts): resolve ruff failures and adapt semantic annotation tests to scoped keys
    omit 635059e3bd4 test: adapt semantic annotation versioning test to scoped annotation key
    omit 1d74777f73e fix(charts): never cache annotation data under an unresolved scope
    omit 57968f311e7 test(charts): annotate annotation-cache tests per review
    omit b8a007357aa fix(charts): key annotation access to the live-fetch authorization path
    omit f8af4162ea4 fix(tests): add missing type hints in annotation-cache regression tests
    omit c42273f4685 fix(charts): give the annotation cache its own force-nonce marker and resolve datasource correctly
    omit 8742880125f fix(common): fail closed on DAO/datasource lookup errors in annotation cache scope
    omit 93bbe8919c5 fix(charts): fail closed on any annotation-scope derivation error, not just SupersetException
    omit 56679868619 fix(charts): key annotation cache by access scope, not user or RLS clauses
    omit 7c1fe4aeae5 fix(charts): decouple annotation cache from the shared dataframe cache
     add 663d691c311 fix(embedded): apply the chart-data guest redaction to samples and the legacy query endpoint (#45273)
     add acdd2d27667 chore(deps-dev): bump oxlint-tsgolint in /docs (#45450)
     add b8a4a5e20ad chore(deps): bump the swc group across 2 directories with 1 update (#45449)
     add c812be8019f chore(deps): bump EnricoMi/publish-unit-test-result-action from 2.24.0 to 2.25.0 (#45448)
     add 22654af3337 chore(deps): bump express from 5.2.1 to 5.3.0 in /superset-websocket/utils/client-ws-app (#45447)
     add 118acbcde35 chore(deps): bump pydantic from 2.13.5 to 2.14.0 (#45417)
     add 56ff8920385 fix(security): don't let dataset editorship substitute for data access (#45266)
     add 99ecfe5801c chore(deps): bump sqlalchemy-utils from 0.42.1 to 0.43.0 (#45416)
     add f0cfaff7881 fix(sql): decode async SQLExecutor results from the results backend (#45348)
     add 8e6e91e4dc0 feat(semantic-layers): add the provider execution context contract (#45251)
     add 53f14e7b7b1 fix(semantic-layer): refuse a chart's own filter on a column the semantic view lacks (#45294)
     add 98d5fa50b4c fix(semantic-layer): validate views before creation (#45287)
     add d36febc96ec fix(versioning): don't record save-path defaults as user changes (#45352)
     add 5a1831000a9 fix: add dblink and pg_* state-mutating functions to SQL denylist (#45089)
     add fbca5e9d4c1 fix(charts): decouple annotation cache from the shared dataframe cache
     add c7f97715568 fix(charts): key annotation cache by access scope, not user or RLS clauses
     add b6da7a9aa7e fix(charts): fail closed on any annotation-scope derivation error, not just SupersetException
     add 9ccb07622e1 fix(common): fail closed on DAO/datasource lookup errors in annotation cache scope
     add d42c4313c22 fix(charts): give the annotation cache its own force-nonce marker and resolve datasource correctly
     add e475a83919d fix(tests): add missing type hints in annotation-cache regression tests
     add 14b113c4ad4 fix(charts): key annotation access to the live-fetch authorization path
     add dd0696793c3 test(charts): annotate annotation-cache tests per review
     add 449479a00b1 fix(charts): never cache annotation data under an unresolved scope
     add 7bd930ed3a5 test: adapt semantic annotation versioning test to scoped annotation key
     add 0d76725ce0c fix(charts): resolve ruff failures and adapt semantic annotation tests to scoped keys
     add f889b5593e7 fix(charts): keep semantic version material in annotation source scope after rebase
     add 6ab44526fd4 test(charts): fix mypy assignment typing in annotation cache test
     add 8d25b9c39b7 test(charts): narrow optional annotation cache context for mypy
     add ba4a45f9c5e fix(charts): address annotation cache review feedback
     add cbdc6c4fa01 fix(charts): restore semantic filter protocol and test mocks after rebase
     add c0c464c42dd fix(charts): preserve validation error type for annotation layer failures
     add 433330df8fa fix(async-queries): scope cancel-id capture to task DB and surface cached read-back failures as 400
     add 5b089c590ba fix(async-queries): type cancel-id sink with its database argument

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   (0b33f24004a)
            \
             N -- N -- N   refs/heads/fix/annotation-cache-scope (5b089c590ba)

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:
 .../workflows/superset-python-unittest-report.yml  |    2 +-
 UPDATING.md                                        |   26 +-
 .../extensions/contribution-types.md               |   26 +-
 docs/developer_docs/extensions/development.md      |   37 +
 .../extensions/semantic-execution-context.md       |  102 ++
 docs/developer_docs/semantic-layer-cache-clear.md  |   17 +-
 .../creating-your-first-dashboard.mdx              |    9 +-
 .../using-superset/semantic-layer-connections.mdx  |    6 +
 docs/package.json                                  |    4 +-
 docs/static/resources/openapi.json                 |    1 +
 docs/yarn.lock                                     |  230 +--
 pyproject.toml                                     |    4 +-
 requirements/base.txt                              |    8 +-
 requirements/development.in                        |    2 +-
 requirements/development.txt                       |    8 +-
 superset-core/pyproject.toml                       |    2 +-
 .../src/superset_core/semantic_layers/context.py   |   62 +
 .../src/superset_core/semantic_layers/layer.py     |   33 +-
 .../src/superset_core/semantic_layers/view.py      |    2 +-
 .../semantic_layers/test_execution_context.py      |   71 +
 superset-frontend/package-lock.json                |  104 +-
 superset-frontend/package.json                     |    2 +-
 .../ConditionalFormattingControl.test.tsx          |  112 +-
 .../ConditionalFormattingControl.tsx               |   12 +-
 superset-websocket/package-lock.json               |   56 +-
 superset-websocket/package.json                    |    2 +-
 .../utils/client-ws-app/package-lock.json          |  147 +-
 .../utils/client-ws-app/package.json               |    2 +-
 superset/app.py                                    |   28 +-
 superset/charts/data/api.py                        |   44 +-
 superset/charts/data/dashboard_filter_context.py   |   22 +
 superset/commands/dataset/create.py                |   69 +-
 superset/commands/dataset/duplicate.py             |   48 +-
 superset/commands/dataset/exceptions.py            |   46 +
 superset/commands/dataset/importers/v1/utils.py    |  194 ++-
 superset/commands/dataset/update.py                |  127 +-
 superset/commands/semantic_layer/create.py         |   44 +-
 superset/commands/semantic_layer/utils.py          |    2 +-
 superset/common/query_context_factory.py           |   20 +-
 superset/common/query_context_processor.py         |   21 +-
 superset/config.py                                 |   16 +
 superset/datasource/api.py                         |   47 +-
 superset/errors.py                                 |    1 +
 superset/extensions/metadb.py                      |    3 +-
 superset/jinja_context.py                          |   17 +
 superset/key_value/types.py                        |    3 +
 superset/mcp_service/chart/chart_helpers.py        |    7 +
 superset/models/helpers.py                         |   72 +
 superset/result_set.py                             |    5 +
 superset/security/manager.py                       |   65 +-
 superset/semantic_layers/api.py                    |    8 +-
 superset/semantic_layers/cache_host.py             |   19 +-
 superset/semantic_layers/execution.py              |  286 ++++
 superset/semantic_layers/mapper.py                 |   43 +-
 superset/semantic_layers/models.py                 |   63 +-
 superset/sql/execution/celery_task.py              |   79 +-
 superset/sql/execution/executor.py                 |  228 ++-
 superset/sql/execution/serialization.py            |  130 ++
 superset/sql/parse.py                              |   16 +
 superset/translations/messages.pot                 |   21 +-
 superset/utils/date_parser.py                      |    7 +-
 superset/utils/error_sanitization.py               |   38 +
 superset/versioning/diff.py                        |   68 +-
 superset/views/api.py                              |    5 +
 superset/views/datasource/views.py                 |   80 +-
 tests/integration_tests/security_tests.py          |  113 +-
 tests/unit_tests/commands/dataset/test_create.py   |  268 +++-
 .../unit_tests/commands/dataset/test_duplicate.py  |  136 +-
 tests/unit_tests/commands/dataset/update_test.py   |  475 ++++++-
 .../commands/semantic_layer/create_test.py         |  148 +-
 .../commands/semantic_layer/update_test.py         |   12 +-
 tests/unit_tests/commands/sql_lab/test_estimate.py |   27 +
 .../common/test_query_context_factory.py           |   35 +
 .../common/test_query_context_processor.py         |   41 +-
 .../datasets/commands/importers/v1/import_test.py  |  608 +++++++-
 tests/unit_tests/initialization_test.py            |    9 +-
 .../mcp_service/chart/test_chart_helpers.py        |   25 +
 .../test_compatibility_selection_validation.py     |    9 +-
 tests/unit_tests/models/template_params_test.py    |   68 +
 tests/unit_tests/security/manager_test.py          |  174 +++
 tests/unit_tests/semantic_layers/api_test.py       |  123 +-
 .../unit_tests/semantic_layers/cache_host_test.py  |    6 +
 tests/unit_tests/semantic_layers/conftest.py       |  107 ++
 .../semantic_layers/execution_context_test.py      | 1140 +++++++++++++++
 .../semantic_layers/grain_validation_test.py       |    6 +-
 .../semantic_layers/integer_precision_test.py      |   14 +-
 .../semantic_layers/metadata_contract_test.py      |   92 +-
 .../semantic_layers/metric_filter_test.py          |  136 +-
 tests/unit_tests/semantic_layers/models_test.py    |  161 ++-
 .../semantic_layers/query_errors_test.py           |  122 +-
 .../semantic_layers/simple_cache_clear_test.py     |   96 +-
 tests/unit_tests/sql/execution/conftest.py         |    5 +-
 .../unit_tests/sql/execution/test_async_results.py | 1498 ++++++++++++++++++++
 tests/unit_tests/sql/execution/test_celery_task.py |  129 +-
 tests/unit_tests/sql/parse_tests.py                |   15 +
 tests/unit_tests/utils/test_error_sanitization.py  |   94 ++
 .../versioning/test_diff_save_defaults.py          |  264 ++++
 tests/unit_tests/views/datasource/views_test.py    |  440 +++++-
 tests/unit_tests/views/test_base.py                |   72 +
 99 files changed, 8878 insertions(+), 871 deletions(-)
 create mode 100644 docs/developer_docs/extensions/semantic-execution-context.md
 create mode 100644 superset-core/src/superset_core/semantic_layers/context.py
 create mode 100644 superset-core/tests/semantic_layers/test_execution_context.py
 create mode 100644 superset/semantic_layers/execution.py
 create mode 100644 superset/sql/execution/serialization.py
 create mode 100644 tests/unit_tests/models/template_params_test.py
 create mode 100644 tests/unit_tests/semantic_layers/execution_context_test.py
 create mode 100644 tests/unit_tests/sql/execution/test_async_results.py
 create mode 100644 tests/unit_tests/versioning/test_diff_save_defaults.py