Apache Superset is a Data Visualization and Data Exploration Platform
12433 matches across 19 categories. Click a row to expand file-level details.
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …erset-core/src/superset_core/semantic_layers/config.py | 25 | def build_configuration_schema( |
| LOW | superset-core/src/superset_core/semantic_layers/daos.py | 67 | def validate_update_uniqueness(cls, layer_uuid: str, name: str) -> bool: |
| LOW | superset-core/src/superset_core/semantic_layers/daos.py | 137 | def validate_update_uniqueness( |
| LOW | superset-core/src/superset_core/semantic_layers/view.py | 106 | def get_compatible_dimensions( |
| LOW | tests/conftest.py | 79 | def pandas_loader_configuration( |
| LOW | tests/unit_tests/conftest.py | 194 | def test_your_feature_enabled(self): |
| LOW | tests/unit_tests/conftest.py | 198 | def test_your_feature_disabled(self): |
| LOW | tests/unit_tests/core_tests.py | 60 | def test_get_metric_name_saved_metric(): |
| LOW | tests/unit_tests/core_tests.py | 65 | def test_get_metric_name_adhoc(): |
| LOW | tests/unit_tests/core_tests.py | 88 | def test_get_metric_name_invalid_metric(): |
| LOW | tests/unit_tests/core_tests.py | 130 | def test_get_column_name_physical_column(): |
| LOW | tests/unit_tests/core_tests.py | 135 | def test_get_column_name_adhoc(): |
| LOW | tests/unit_tests/core_tests.py | 159 | def test_get_column_name_invalid_metric(): |
| LOW | tests/unit_tests/core_tests.py | 173 | def test_get_time_filter_status_time_col(): |
| LOW | tests/unit_tests/core_tests.py | 181 | def test_get_time_filter_status_time_range(): |
| LOW | tests/unit_tests/core_tests.py | 189 | def test_get_time_filter_status_time_grain(): |
| LOW | tests/unit_tests/core_tests.py | 197 | def test_get_time_filter_status_no_temporal_col(): |
| LOW | tests/unit_tests/jinja_context_test.py | 120 | def test_filter_values_default() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 129 | def test_filter_values_remove_not_present() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 138 | def test_filter_values_no_default() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 146 | def test_get_filters_adhoc_filters() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 57 | def test_filter_values_adhoc_filters() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 104 | def test_filter_values_extra_filters() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 223 | def test_get_filters_is_null_operator() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 253 | def test_get_filters_remove_not_present() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 262 | def test_get_filters_query_context_filters() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 278 | def test_get_filters_query_context_filters_remove_filter() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 293 | def test_get_filters_query_context_filters_is_null() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 304 | def test_get_filters_query_context_filters_is_not_null() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 317 | def test_get_filters_adhoc_filters_take_precedence_over_query_context_filters() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 346 | def test_filter_values_query_context_filters() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 375 | def test_url_param_no_default() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 395 | def test_url_param_escaped_form_data() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 407 | def test_url_param_escaped_default_form_data() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 418 | def test_url_param_unescaped_form_data() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 430 | def test_url_param_unescaped_default_form_data() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 441 | def test_safe_proxy_primitive() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 476 | def test_safe_proxy_nested_lambda() -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 535 | def test_user_macros_without_user_info(mocker: MockerFixture): |
| LOW | tests/unit_tests/jinja_context_test.py | 549 | def test_current_user_rls_rules_with_no_table(mocker: MockerFixture): |
| LOW | tests/unit_tests/jinja_context_test.py | 570 | def test_current_user_rls_rules_guest_user(mocker: MockerFixture): |
| LOW | tests/unit_tests/jinja_context_test.py | 760 | def test_dataset_macro_mutator_with_comments(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 783 | def test_metric_macro_with_dataset_id(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 803 | def test_metric_macro_recursive(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 830 | def test_metric_macro_expansion(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 858 | def test_metric_macro_recursive_compound(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 888 | def test_metric_macro_recursive_cyclic(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 919 | def test_metric_macro_recursive_infinite(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 948 | def test_metric_macro_with_dataset_id_invalid_key(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 970 | def test_metric_macro_invalid_dataset_id(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 984 | def test_metric_macro_no_dataset_id_no_context(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 1002 | def test_metric_macro_no_dataset_id_with_context_missing_info( |
| LOW | tests/unit_tests/jinja_context_test.py | 1039 | def test_metric_macro_no_dataset_id_with_context_datasource_id( |
| LOW | tests/unit_tests/jinja_context_test.py | 1092 | def test_metric_macro_no_dataset_id_with_context_datasource_id_none( |
| LOW | tests/unit_tests/jinja_context_test.py | 1143 | def test_metric_macro_no_dataset_id_with_context_chart_id( |
| LOW | tests/unit_tests/jinja_context_test.py | 1201 | def test_metric_macro_no_dataset_id_with_context_slice_id_none( |
| LOW | tests/unit_tests/jinja_context_test.py | 1252 | def test_metric_macro_no_dataset_id_with_context_deleted_chart( |
| LOW | tests/unit_tests/jinja_context_test.py | 1305 | def test_metric_macro_no_dataset_id_available_in_request_form_data( |
| LOW | tests/unit_tests/jinja_context_test.py | 1350 | def test_metric_macro_regular_user_uses_base_filter(mocker: MockerFixture) -> None: |
| LOW | tests/unit_tests/jinja_context_test.py | 1377 | def test_metric_macro_regular_user_raises_no_access(mocker: MockerFixture) -> None: |
| 7418 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | .asf.yaml | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | docker-compose-image-tag.yml | 1 | # |
| LOW | pytest.ini | 1 | # |
| LOW | .pre-commit-config.yaml | 1 | # |
| LOW | .fossa.yml | 1 | # |
| LOW | pyproject.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | pyproject.toml | 421 | |
| LOW | lintconf.yaml | 1 | # |
| LOW | setup.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | docker-compose-non-dev.yml | 1 | # |
| LOW | docker-compose-light.yml | 1 | # |
| LOW | docker-compose-light.yml | 21 | # |
| LOW | docker-compose-light.yml | 41 | # |
| LOW | docker-compose.yml | 1 | # |
| LOW | superset_text.yml | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset_text.yml | 21 | # DB_IMAGES: |
| LOW | docker/frontend-mem-nag.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/tag_latest_release.sh | 1 | #! /bin/bash |
| LOW | docker/docker-bootstrap.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/docker-healthcheck.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/apt-install.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/docker-pytest-entrypoint.sh | 1 | #!/bin/bash |
| LOW | docker/pip-install.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/docker-init.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/docker-frontend.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/pythonpath_dev/superset_config_docker_light.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | docker/pythonpath_dev/superset_config.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | docker/pythonpath_dev/superset_test_config_light.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | docker/docker-entrypoint-initdb.d/examples-init.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/docker-entrypoint-initdb.d/cypress-init.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/entrypoints/run-server.sh | 1 | #!/usr/bin/env bash |
| LOW | docker/entrypoints/docker-ci.sh | 1 | #!/usr/bin/env bash |
| LOW | superset-core/pyproject.toml | 1 | |
| LOW | superset-core/src/superset_core/__init__.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/tasks/models.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/tasks/daos.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/tasks/__init__.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/tasks/types.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/tasks/decorators.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | …erset-core/src/superset_core/semantic_layers/config.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | …erset-core/src/superset_core/semantic_layers/models.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/semantic_layers/daos.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | …perset-core/src/superset_core/semantic_layers/types.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/semantic_layers/view.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | …perset-core/src/superset_core/semantic_layers/layer.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | …t-core/src/superset_core/semantic_layers/decorators.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/queries/models.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/queries/query.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/queries/daos.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/queries/__init__.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/queries/types.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/mcp/__init__.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/mcp/decorators.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/extensions/constants.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/extensions/__init__.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/extensions/types.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/common/models.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/common/daos.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/common/__init__.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| LOW | superset-core/src/superset_core/rest_api/__init__.py | 1 | # Licensed to the Apache Software Foundation (ASF) under one |
| 2034 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | docker-compose-image-tag.yml | 18 | # ----------------------------------------------------------------------- |
| MEDIUM | docker-compose-image-tag.yml | 26 | # ----------------------------------------------------------------------- |
| MEDIUM | pyproject.toml | 77 | # -------------------------- |
| MEDIUM | pyproject.toml | 81 | # -------------------------- |
| MEDIUM | pyproject.toml | 470 | # -------------------------------------------------------------- |
| MEDIUM | pyproject.toml | 475 | # -------------------------------------------------------------- |
| MEDIUM | docker-compose-non-dev.yml | 18 | # ----------------------------------------------------------------------- |
| MEDIUM | docker-compose-non-dev.yml | 26 | # ----------------------------------------------------------------------- |
| MEDIUM | docker-compose-light.yml | 18 | # ----------------------------------------------------------------------- |
| MEDIUM | docker-compose-light.yml | 61 | # ----------------------------------------------------------------------- |
| MEDIUM | docker-compose.yml | 18 | # ----------------------------------------------------------------------- |
| MEDIUM | docker-compose.yml | 26 | # ----------------------------------------------------------------------- |
| MEDIUM | docker/docker-entrypoint-initdb.d/examples-init.sh | 20 | # ------------------------------------------------------------------------ |
| MEDIUM | docker/docker-entrypoint-initdb.d/examples-init.sh | 23 | # ------------------------------------------------------------------------ |
| MEDIUM | docker/docker-entrypoint-initdb.d/cypress-init.sh | 20 | # ------------------------------------------------------------------------ |
| MEDIUM | docker/docker-entrypoint-initdb.d/cypress-init.sh | 23 | # ------------------------------------------------------------------------ |
| MEDIUM | superset-core/src/superset_core/extensions/types.py | 82 | # ============================================================================= |
| MEDIUM | superset-core/src/superset_core/extensions/types.py | 84 | # ============================================================================= |
| MEDIUM | superset-core/src/superset_core/extensions/types.py | 109 | # ============================================================================= |
| MEDIUM | superset-core/src/superset_core/extensions/types.py | 111 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 113 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 115 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 196 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 198 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 399 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 401 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 454 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 456 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 31 | # ============================================================================= |
| MEDIUM | tests/unit_tests/tasks/test_timeout.py | 33 | # ============================================================================= |
| MEDIUM | tests/unit_tests/dao/base_dao_test.py | 50 | # ============================================================================= |
| MEDIUM | tests/unit_tests/dao/base_dao_test.py | 52 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/mapper_test.py | 2914 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/unit_tests/semantic_layers/mapper_test.py | 2916 | # --------------------------------------------------------------------------- |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 43 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 45 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 107 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 109 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 153 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 155 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 206 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 208 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 819 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 821 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 843 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 845 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 952 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 954 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 1019 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 1021 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 1035 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 1037 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 1146 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 1148 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 259 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/models_test.py | 261 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/schemas_test.py | 87 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/schemas_test.py | 89 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/schemas_test.py | 163 | # ============================================================================= |
| MEDIUM | tests/unit_tests/semantic_layers/schemas_test.py | 165 | # ============================================================================= |
| 396 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/unit_tests/pandas_postprocessing/test_cum.py | 0 | count_metric sum_metric country uk us uk us dttm 2019-01-01 1 2 5 6 2019-01-02 3 4 7 8 |
| HIGH | tests/unit_tests/pandas_postprocessing/test_rolling.py | 0 | count_metric sum_metric country uk us uk us dttm 2019-01-01 1 2 5 6 2019-01-02 3 4 7 8 |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 0 | count_metric sum_metric country uk us uk us dttm 2019-01-01 1 2 5 6 2019-01-02 3 4 7 8 |
| HIGH | tests/unit_tests/security/manager_test.py | 0 | test that the security manager can raise an exception for chart access, when the user does not have access to the chart |
| HIGH | tests/unit_tests/security/manager_test.py | 0 | test that the security manager can raise an exception for chart access, when the user does not have access to the chart |
| HIGH | tests/unit_tests/security/manager_test.py | 0 | test that the security manager can raise an exception for chart access, when the user does not have access to the chart |
| HIGH | tests/unit_tests/charts/test_client_processing.py | 0 | pivot table when a single column and 2 metrics are selected. |
| HIGH | tests/unit_tests/charts/test_client_processing.py | 0 | pivot table when a single column and 2 metrics are selected. |
| HIGH | tests/unit_tests/charts/test_client_processing.py | 0 | pivot table when a single column and 2 metrics are selected. |
| HIGH | tests/unit_tests/charts/test_client_processing.py | 0 | pivot table when a single column and 2 metrics are selected. |
| HIGH | tests/unit_tests/models/core_test.py | 0 | a custom exception that is raised by the snowflake driver. |
| HIGH | tests/unit_tests/models/core_test.py | 0 | a custom exception that is raised by the snowflake driver. |
| HIGH | tests/unit_tests/models/core_test.py | 0 | a custom exception that is raised by the snowflake driver. |
| HIGH | tests/unit_tests/models/core_test.py | 0 | a custom exception that is raised by the snowflake driver. |
| HIGH | tests/unit_tests/models/core_test.py | 0 | a custom exception that is raised by the snowflake driver. |
| HIGH | …t_tests/mcp_service/dataset/tool/test_dataset_tools.py | 0 | test that minimal default columns are properly defined. |
| HIGH | …/unit_tests/mcp_service/chart/tool/test_list_charts.py | 0 | test that minimal default columns are properly defined. |
| HIGH | …sts/mcp_service/dashboard/tool/test_dashboard_tools.py | 0 | test that minimal default columns are properly defined. |
| HIGH | tests/unit_tests/db_engine_specs/test_snowflake.py | 0 | test the ``adjust_engine_params`` method when the url has catalog and schema. |
| HIGH | tests/unit_tests/db_engine_specs/test_presto.py | 0 | test the ``adjust_engine_params`` method when the url has catalog and schema. |
| HIGH | tests/unit_tests/db_engine_specs/test_trino.py | 0 | test the ``adjust_engine_params`` method when the url has catalog and schema. |
| HIGH | tests/unit_tests/db_engine_specs/test_snowflake.py | 0 | test the ``adjust_engine_params`` method when the url has only the catalog. |
| HIGH | tests/unit_tests/db_engine_specs/test_presto.py | 0 | test the ``adjust_engine_params`` method when the url has only the catalog. |
| HIGH | tests/unit_tests/db_engine_specs/test_trino.py | 0 | test the ``adjust_engine_params`` method when the url has only the catalog. |
| HIGH | tests/unit_tests/db_engine_specs/test_snowflake.py | 0 | test that the private key is masked when the database is edited. |
| HIGH | tests/unit_tests/db_engine_specs/test_bigquery.py | 0 | test that the private key is masked when the database is edited. |
| HIGH | tests/unit_tests/db_engine_specs/test_datastore.py | 0 | test that the private key is masked when the database is edited. |
| HIGH | tests/unit_tests/db_engine_specs/test_base.py | 0 | test that the private key is masked when the database is edited. |
| HIGH | tests/unit_tests/db_engine_specs/test_gsheets.py | 0 | test that the private key is masked when the database is edited. |
| HIGH | tests/unit_tests/db_engine_specs/test_databricks.py | 0 | test that the result from ``get_parameters_from_uri`` is json serializable. |
| HIGH | tests/unit_tests/db_engine_specs/test_bigquery.py | 0 | test that the result from ``get_parameters_from_uri`` is json serializable. |
| HIGH | tests/unit_tests/db_engine_specs/test_datastore.py | 0 | test that the result from ``get_parameters_from_uri`` is json serializable. |
| HIGH | tests/unit_tests/db_engine_specs/test_databricks.py | 0 | test that custom error messages are extracted correctly. |
| HIGH | tests/unit_tests/db_engine_specs/test_athena.py | 0 | test that custom error messages are extracted correctly. |
| HIGH | tests/unit_tests/db_engine_specs/test_mssql.py | 0 | test that custom error messages are extracted correctly. |
| HIGH | …ts/integration_tests/db_engine_specs/postgres_tests.py | 0 | test that custom error messages are extracted correctly. |
| HIGH | tests/integration_tests/db_engine_specs/mysql_tests.py | 0 | test that custom error messages are extracted correctly. |
| HIGH | …ts/integration_tests/db_engine_specs/redshift_tests.py | 0 | test that custom error messages are extracted correctly. |
| HIGH | …sts/integration_tests/db_engine_specs/gsheets_tests.py | 0 | test that custom error messages are extracted correctly. |
| HIGH | tests/unit_tests/db_engine_specs/test_bigquery.py | 0 | test that the private key can be reused from the previous `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_datastore.py | 0 | test that the private key can be reused from the previous `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_base.py | 0 | test that the private key can be reused from the previous `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_gsheets.py | 0 | test that the private key can be reused from the previous `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_bigquery.py | 0 | test that the private key is not reused when the field has changed. |
| HIGH | tests/unit_tests/db_engine_specs/test_datastore.py | 0 | test that the private key is not reused when the field has changed. |
| HIGH | tests/unit_tests/db_engine_specs/test_gsheets.py | 0 | test that the private key is not reused when the field has changed. |
| HIGH | tests/unit_tests/db_engine_specs/test_bigquery.py | 0 | test that a `none` value for the old field works for `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_datastore.py | 0 | test that a `none` value for the old field works for `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_gsheets.py | 0 | test that a `none` value for the old field works for `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_bigquery.py | 0 | test that a `none` value for the new field works for `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_datastore.py | 0 | test that a `none` value for the new field works for `encrypted_extra`. |
| HIGH | tests/unit_tests/db_engine_specs/test_gsheets.py | 0 | test that a `none` value for the new field works for `encrypted_extra`. |
| HIGH | tests/unit_tests/commands/semantic_layer/create_test.py | 0 | test that the command copies input data and does not mutate it. |
| HIGH | tests/unit_tests/commands/semantic_layer/update_test.py | 0 | test that the command copies input data and does not mutate it. |
| HIGH | tests/unit_tests/commands/semantic_layer/update_test.py | 0 | test that the command copies input data and does not mutate it. |
| HIGH | tests/unit_tests/reports/notifications/slack_tests.py | 0 | *test alert* <p>this is <a href="#">a test</a> alert</p><br /> <none|explore in superset> ``` | | a | b | c | |---:|---- |
| HIGH | tests/unit_tests/reports/notifications/slack_tests.py | 0 | *test alert* <p>this is <a href="#">a test</a> alert</p><br /> <none|explore in superset> ``` | | a | b | c | |---:|---- |
| HIGH | tests/unit_tests/reports/notifications/slack_tests.py | 0 | *test alert* <p>this is <a href="#">a test</a> alert</p><br /> <none|explore in superset> ``` | | a | b | c | |---:|---- |
| HIGH | tests/integration_tests/sqllab_tests.py | 0 | -- comment set @value = 42; select /*+ hint */ @value as foo; |
| HIGH | tests/integration_tests/sqllab_tests.py | 0 | -- comment set @value = 42; select /*+ hint */ @value as foo; |
| 110 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docker/pythonpath_dev/superset_config_docker_light.py | 23 | |
| LOW | docker/pythonpath_dev/superset_config.py | 134 | |
| LOW | docker/pythonpath_dev/superset_config.py | 144 | |
| LOW | docker/pythonpath_dev/superset_test_config_light.py | 26 | |
| LOW | superset-core/src/superset_core/tasks/models.py | 28 | |
| LOW | superset-core/src/superset_core/tasks/models.py | 37 | |
| LOW | superset-core/src/superset_core/tasks/types.py | 18 | |
| LOW | superset-core/src/superset_core/tasks/decorators.py | 18 | |
| LOW | superset-core/src/superset_core/tasks/decorators.py | 25 | |
| LOW | …erset-core/src/superset_core/semantic_layers/config.py | 18 | |
| LOW | …erset-core/src/superset_core/semantic_layers/models.py | 32 | |
| LOW | superset-core/src/superset_core/semantic_layers/daos.py | 32 | |
| LOW | …perset-core/src/superset_core/semantic_layers/types.py | 18 | |
| LOW | superset-core/src/superset_core/semantic_layers/view.py | 18 | |
| LOW | …perset-core/src/superset_core/semantic_layers/layer.py | 18 | |
| LOW | …perset-core/src/superset_core/semantic_layers/layer.py | 24 | |
| LOW | …t-core/src/superset_core/semantic_layers/decorators.py | 42 | |
| LOW | superset-core/src/superset_core/queries/models.py | 28 | |
| LOW | superset-core/src/superset_core/queries/query.py | 35 | |
| LOW | superset-core/src/superset_core/queries/types.py | 25 | |
| LOW | superset-core/src/superset_core/extensions/types.py | 26 | |
| LOW | superset-core/src/superset_core/common/models.py | 33 | |
| LOW | superset-core/src/superset_core/common/models.py | 43 | |
| LOW | superset-core/src/superset_core/common/models.py | 43 | |
| LOW | superset-core/src/superset_core/common/models.py | 43 | |
| LOW | superset-core/src/superset_core/rest_api/decorators.py | 36 | |
| LOW | tests/conftest.py | 26 | |
| LOW | tests/unit_tests/jinja_context_test.py | 18 | |
| LOW | tests/unit_tests/legacy_tests.py | 23 | |
| LOW | tests/unit_tests/databases/api_test.py | 20 | |
| LOW | tests/unit_tests/security/guest_rls_test.py | 25 | |
| LOW | tests/unit_tests/dao/user_test.py | 17 | |
| LOW | tests/unit_tests/dao/user_test.py | 27 | |
| LOW | tests/unit_tests/dao/key_value_test.py | 18 | |
| LOW | tests/unit_tests/dao/key_value_test.py | 41 | |
| LOW | tests/unit_tests/semantic_layers/decorators_test.py | 18 | |
| LOW | tests/unit_tests/semantic_layers/models_test.py | 20 | |
| LOW | tests/unit_tests/semantic_layers/dao_test.py | 20 | |
| LOW | tests/unit_tests/semantic_layers/types_test.py | 18 | |
| LOW | tests/unit_tests/charts/test_chart_data_api.py | 17 | |
| LOW | …sts/unit_tests/charts/test_dashboard_filter_context.py | 17 | |
| LOW | tests/unit_tests/models/test_no_filter_time_range.py | 19 | |
| LOW | tests/unit_tests/models/test_soft_delete_mixin.py | 26 | |
| LOW | tests/unit_tests/models/core_test.py | 1152 | |
| LOW | tests/unit_tests/models/helpers_test.py | 20 | |
| LOW | tests/unit_tests/models/helpers_test.py | 37 | |
| LOW | …s/unit_tests/models/test_double_rls_virtual_dataset.py | 25 | |
| LOW | …it_tests/models/test_time_filter_double_application.py | 19 | |
| LOW | tests/unit_tests/models/test_virtual_dataset_format.py | 33 | |
| LOW | tests/unit_tests/extensions/test_sqlalchemy.py | 286 | |
| LOW | …t_tests/mcp_service/dataset/tool/test_query_dataset.py | 20 | |
| LOW | tests/unit_tests/db_engine_specs/test_aurora.py | 20 | |
| LOW | tests/unit_tests/db_engine_specs/test_elasticsearch.py | 21 | |
| LOW | tests/unit_tests/db_engine_specs/test_datastore.py | 20 | |
| LOW | tests/unit_tests/db_engine_specs/test_redshift_iam.py | 20 | |
| LOW | tests/unit_tests/db_engine_specs/test_mysql.py | 39 | |
| LOW | tests/unit_tests/db_engine_specs/test_tdengine.py | 19 | |
| LOW | tests/unit_tests/db_engine_specs/test_aws_iam.py | 20 | |
| LOW | tests/unit_tests/db_engine_specs/test_ydb.py | 18 | |
| LOW | tests/unit_tests/db_engine_specs/utils.py | 17 | |
| 824 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | docker/docker-init.sh | 51 | # Create an admin user |
| MEDIUM | docker/pythonpath_dev/superset_config.py | 18 | # This file is included in the final Docker image and SHOULD be overridden when |
| MEDIUM | tests/unit_tests/connectors/sqla/models_test.py | 743 | # Create a Postgres-like engine to test proper quoting |
| MEDIUM | tests/unit_tests/connectors/sqla/models_test.py | 780 | # Create a PostgreSQL engine (doesn't support cross-catalog queries) |
| MEDIUM | tests/unit_tests/connectors/sqla/models_test.py | 931 | # Create a mock slice whose get_query_context raises DatasourceNotFound |
| MEDIUM | tests/unit_tests/pandas_postprocessing/test_compare.py | 194 | # Define a non-lexicographical column order |
| MEDIUM | tests/unit_tests/databases/api_test.py | 626 | # Create a mock object |
| MEDIUM | tests/unit_tests/databases/api_test.py | 2384 | # Create a database with a non-default configuration_method |
| MEDIUM | tests/unit_tests/security/manager_test.py | 1208 | # Create a mock table where .data raises an exception if accessed |
| MEDIUM | tests/unit_tests/dao/tag_test.py | 150 | # Define a list of objects to tag |
| MEDIUM | tests/unit_tests/semantic_layers/mapper_test.py | 1718 | # Create main dataframe |
| MEDIUM | tests/unit_tests/utils/test_date_parsing.py | 194 | # Create a DataFrame with string values representing dates that are |
| MEDIUM | tests/unit_tests/utils/test_date_parsing.py | 199 | # Create a mock type that raises ValueError when pd.Timestamp is called on it |
| MEDIUM | tests/unit_tests/utils/test_core.py | 475 | # Create a mock SQLAlchemy database object |
| MEDIUM | tests/unit_tests/utils/test_core.py | 478 | # Define the table name and constraint details |
| MEDIUM | tests/unit_tests/utils/test_core.py | 484 | # Create a mock table object with the same structure |
| MEDIUM | tests/unit_tests/utils/test_core.py | 489 | # Create a mock for the referred_table with a name attribute |
| MEDIUM | tests/unit_tests/utils/test_core.py | 493 | # Create a mock for the foreign key constraint with a name attribute |
| MEDIUM | tests/unit_tests/utils/test_core.py | 518 | # Create a mock SQLAlchemy database object |
| MEDIUM | tests/unit_tests/utils/test_core.py | 521 | # Define the table name and constraint details |
| MEDIUM | tests/unit_tests/utils/test_core.py | 526 | # Create a mock table object with the same structure but no matching constraint |
| MEDIUM | tests/unit_tests/utils/test_core.py | 407 | # Create a DataFrame with timestamp strings |
| MEDIUM | tests/unit_tests/utils/test_core.py | 550 | # Create a mock for the foreign key constraint as a dictionary |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 382 | # Create a mock table for testing |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 413 | # Create a condition factory that always returns True |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 474 | # Create a mock table for testing |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 491 | # Create a condition factory that always returns False |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 537 | # Create a real table instance |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 635 | # Create a table instance |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 900 | # Create a mock template processor |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1142 | # Create a mock template processor |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1272 | # Create a simple query |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1328 | # Create a simple query |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1378 | # Create a query with GROUP BY |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1439 | # Create a simple query |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1484 | # Create a simple query |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1646 | # Create a table with a temporal column |
| MEDIUM | tests/unit_tests/models/helpers_test.py | 1729 | # Create a mock SqlaTable with columns |
| MEDIUM | …it_tests/models/test_time_filter_double_application.py | 54 | # Create a virtual dataset that uses get_time_filter with |
| MEDIUM | …it_tests/models/test_time_filter_double_application.py | 93 | # Create a query object with a time filter |
| MEDIUM | tests/unit_tests/tags/models_test.py | 154 | # Create an existing tag |
| MEDIUM | tests/unit_tests/tags/commands/create_test.py | 77 | # Define a list of objects to tag |
| MEDIUM | tests/unit_tests/tags/commands/create_test.py | 120 | # Define a list of objects to tag |
| MEDIUM | tests/unit_tests/tags/commands/update_test.py | 237 | # Create a tag with multiple objects |
| MEDIUM | tests/unit_tests/mcp_service/chart/test_chart_utils.py | 1220 | # Create a time series chart configuration |
| MEDIUM | …it_tests/mcp_service/chart/tool/test_generate_chart.py | 145 | # Create a validation error with the correct structure |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 595 | # Create a dataframe for testing |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 604 | # Create a properly mocked datasource |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 1099 | # Create a mock query context |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 1104 | # Create a mock datasource |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 49 | # Create a processor instance |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 530 | # Create a dataframe for testing |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 944 | # Create a mock datasource |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 1118 | # Create a query object with unsanitized where clause |
| MEDIUM | tests/unit_tests/common/test_query_context_processor.py | 1185 | # Create a mock datasource |
| MEDIUM | tests/unit_tests/db_engine_specs/test_snowflake.py | 363 | # Create a mock SQLAlchemy column |
| MEDIUM | tests/unit_tests/db_engine_specs/test_athena.py | 101 | # Create a mock SQLAlchemy column |
| MEDIUM | tests/unit_tests/db_engine_specs/test_base.py | 492 | # Create a mock SQLAlchemy column |
| MEDIUM | tests/unit_tests/db_engine_specs/test_base.py | 511 | # Create a test engine spec that uses equality |
| MEDIUM | tests/unit_tests/examples/data_loading_test.py | 178 | # Create a simple example with data.parquet and dataset.yaml |
| 128 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | setup.py | 35 | except Exception: # pylint: disable=broad-except |
| MEDIUM | setup.py | 31 | def get_git_sha() -> str: |
| LOW | tests/unit_tests/utils/test_core.py | 1644 | except Exception: |
| LOW | tests/unit_tests/utils/test_core.py | 1651 | except Exception: |
| LOW | tests/unit_tests/models/core_test.py | 1079 | except Exception: |
| LOW | tests/unit_tests/extensions/test_sqlalchemy.py | 131 | except Exception as e: |
| LOW | tests/unit_tests/extensions/test_sqlalchemy.py | 172 | except Exception as e: |
| LOW | tests/unit_tests/extensions/test_sqlalchemy.py | 207 | except Exception as e: |
| LOW | tests/unit_tests/extensions/test_sqlalchemy.py | 251 | except Exception as e: |
| LOW | tests/unit_tests/extensions/test_sqlalchemy.py | 316 | except Exception as e: |
| LOW | tests/unit_tests/extensions/test_sqlalchemy.py | 350 | except Exception as e: |
| LOW | tests/unit_tests/commands/dataset/update_test.py | 675 | except Exception as e: |
| LOW | tests/unit_tests/commands/dataset/update_test.py | 719 | except Exception as e: |
| LOW | tests/unit_tests/commands/dataset/update_test.py | 778 | except Exception as e: |
| LOW | tests/unit_tests/commands/dataset/update_test.py | 841 | except Exception as e: |
| LOW | tests/unit_tests/commands/dataset/update_test.py | 882 | except Exception as e: |
| LOW | tests/unit_tests/commands/dataset/update_test.py | 930 | except Exception as e: |
| LOW | tests/unit_tests/commands/dataset/update_test.py | 955 | except Exception as e: |
| LOW | tests/integration_tests/conftest.py | 127 | except Exception: # noqa: S110 |
| LOW | tests/integration_tests/tasks/api_tests.py | 110 | except Exception: # noqa: S110 |
| LOW | tests/integration_tests/tasks/api_tests.py | 115 | except Exception: |
| LOW | …sts/integration_tests/tags/mysql_compatibility_test.py | 263 | except Exception as e: |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 82 | except Exception: |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 329 | except Exception: |
| MEDIUM | …/integration_tests/dashboards/superset_factory_util.py | 191 | def delete_all_inserted_dashboards(): |
| MEDIUM | …/integration_tests/dashboards/superset_factory_util.py | 242 | def delete_all_inserted_slices(): |
| MEDIUM | …/integration_tests/dashboards/superset_factory_util.py | 273 | def delete_all_inserted_tables(): |
| MEDIUM | …/integration_tests/dashboards/superset_factory_util.py | 308 | def delete_all_inserted_dbs(): |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 250 | except Exception: |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 256 | except Exception: |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 283 | except Exception: |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 289 | except Exception: |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 203 | except Exception: |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 209 | except Exception: |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 318 | except Exception: |
| LOW | …/integration_tests/dashboards/superset_factory_util.py | 324 | except Exception: |
| LOW | …integration_tests/themes/test_theme_api_permissions.py | 66 | except Exception: |
| LOW | …integration_tests/themes/test_theme_api_permissions.py | 71 | except Exception: |
| LOW | tests/integration_tests/reports/utils.py | 207 | except Exception as ex: # pylint: disable=broad-except |
| LOW | …rsion-6.1.0/guidelines/backend/dao-style-guidelines.md | 251 | except Exception: |
| LOW | …eloper_docs/guidelines/backend/dao-style-guidelines.md | 251 | except Exception: |
| MEDIUM | docs/scripts/fix-openapi-spec.py | 795 | print(f"Error: OpenAPI spec not found at {spec_path}", file=sys.stderr) |
| MEDIUM | docs/scripts/extract_custom_errors.py | 182 | print(f"Error parsing {filepath}: {e}", file=sys.stderr) |
| MEDIUM | docs/scripts/extract_custom_errors.py | 274 | print(f"Error: Engine specs directory not found: {specs_dir}", file=sys.stderr) |
| LOW | scripts/benchmark_migration.py | 202 | except Exception: |
| LOW | superset/config.py | 125 | except Exception: # pylint: disable=broad-except |
| LOW | superset/config.py | 133 | except Exception: # pylint: disable=broad-except |
| LOW | superset/config.py | 2609 | except Exception: |
| LOW | superset/config.py | 2624 | except Exception: |
| LOW | superset/stats_logger.py | 108 | except Exception as e: # pylint: disable=broad-except # noqa: S110 |
| LOW | superset/sql_lab.py | 158 | except Exception as ex: |
| LOW | superset/sql_lab.py | 194 | except Exception as ex: # pylint: disable=broad-except |
| LOW | superset/sql_lab.py | 311 | except Exception as ex: |
| LOW | superset/sql_lab.py | 511 | except Exception as ex: # pylint: disable=broad-except |
| LOW | superset/app.py | 94 | except Exception: |
| LOW | superset/app.py | 148 | except Exception as e: |
| LOW | superset/app.py | 186 | except Exception as e: |
| LOW | superset/result_set.py | 217 | except Exception as ex: # pylint: disable=broad-except |
| LOW | superset/result_set.py | 232 | except Exception as ex: # pylint: disable=broad-except |
| LOW | superset/viz.py | 567 | except Exception as ex: # pylint: disable=broad-except |
| 390 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | tests/unit_tests/sql_lab_test.py | 199 | app_context.push() |
| HIGH | tests/unit_tests/pandas_postprocessing/test_cum.py | 39 | assert _timeseries_df.equals(timeseries_df) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_cum.py | 122 | assert cum_and_flat_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_cum.py | 168 | assert flat_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_rolling.py | 40 | assert _timeseries_df.equals(timeseries_df) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_rolling.py | 161 | assert flat_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_rolling.py | 212 | assert flat_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_resample.py | 34 | assert _timeseries_df.equals(timeseries_df) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_resample.py | 49 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_resample.py | 72 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_resample.py | 95 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_resample.py | 120 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_resample.py | 194 | assert flat_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_resample.py | 241 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_sort.py | 49 | assert df.equals(timeseries_df) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_rename.py | 34 | assert _categories_df.equals(categories_df) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_rename.py | 54 | assert not new_categories_df.equals(categories_df) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_rename.py | 67 | assert _categories_df_inplaced.equals(_categories_df) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 36 | assert _timeseries_df2.equals(timeseries_df2) |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 54 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 74 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 100 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 128 | assert post_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 170 | assert flat_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 234 | assert flat_df.equals( |
| HIGH | tests/unit_tests/pandas_postprocessing/test_compare.py | 286 | assert flat_df.equals( |
| HIGH | …it_tests/datasets/commands/importers/v1/import_test.py | 188 | assert sqla_table.metrics[0].extra == '{"warning_markdown": null}' |
| HIGH | …it_tests/datasets/commands/importers/v1/import_test.py | 429 | assert sqla_table.metrics[0].extra == '{"warning_markdown": null}' |
| HIGH | …it_tests/datasets/commands/importers/v1/import_test.py | 491 | "extra": '{"warning_markdown": null}', |
| HIGH | …it_tests/datasets/commands/importers/v1/import_test.py | 519 | assert sqla_table.metrics[0].extra == '{"warning_markdown": null}' |
| HIGH | tests/unit_tests/charts/test_client_processing.py | 2790 | ) # Second data row should have empty last_name (NA converted to null) |
| HIGH | tests/unit_tests/examples/utils_test.py | 125 | # Verify schema normalization happened (main -> null) |
| HIGH | …s/scripts/translations/build_translation_index_test.py | 222 | """Empty plural forms across the board → null, not an empty dict.""" |
| HIGH | …ts/unit_tests/scripts/translations/backfill_po_test.py | 94 | Non-object JSON (list, string, null, number) must raise ValueError so |
| HIGH | tests/unit_tests/sql/dialects/vertica_tests.py | 69 | sql = "SELECT a::INT, b || c FROM t WHERE d ~ '^foo'" |
| HIGH | tests/unit_tests/sql/dialects/vertica_tests.py | 74 | assert regenerated == "SELECT CAST(a AS INT), b || c FROM t WHERE d ~ '^foo'" |
| HIGH | tests/integration_tests/model_tests.py | 475 | else "state || gender || '_test'" |
| HIGH | tests/integration_tests/sqla_models_tests.py | 1143 | assert df.equals(result.df) |
| HIGH | tests/integration_tests/result_set_tests.py | 272 | "metadata": '["test", [["foo", 123456, [[["test"], 3432546, 7657658766], [["fake"], 656756765, 324324324 |
| HIGH | tests/integration_tests/query_context_tests.py | 1299 | assert df.equals( |
| HIGH | tests/integration_tests/query_context_tests.py | 1351 | assert df.equals( |
| HIGH | tests/integration_tests/utils/hashing_tests.py | 166 | '{"company": "Gobias Industries", "price": null, "product": "Coffee"}' |
| HIGH | tests/integration_tests/utils/hashing_tests.py | 193 | '{"company": "Gobias Industries", "price": null, "product": "Coffee"}' |
| HIGH | tests/integration_tests/db_engine_specs/presto_tests.py | 370 | {"row_column": "[[null]]"}, |
| HIGH | tests/integration_tests/db_engine_specs/presto_tests.py | 371 | {"row_column": "[null]"}, |
| HIGH | scripts/translations/backfill_po.py | 263 | # response (list, scalar, null) must surface as ValueError rather than |
| HIGH | superset/charts/schemas.py | 401 | "metrics have a unique identifier. If undefined, a random name" |
| HIGH | superset/charts/schemas.py | 727 | "When metrics is undefined or null, the query is executed without a groupby. " # noqa: E501 |
| HIGH | superset/utils/encrypt.py | 312 | " %d null, %d failed", |
| HIGH | superset/utils/encrypt.py | 315 | stats.null, |
| HIGH | superset/utils/screenshot_utils.py | 160 | if (r.top < window.innerHeight && r.bottom > 0) { |
| HIGH | superset/utils/core.py | 1489 | current user (which may be undefined) to different one, execute some SQLAlchemy |
| HIGH | superset/utils/webdriver.py | 52 | "pip install playwright && playwright install chromium" |
| HIGH | superset/utils/pandas_postprocessing/select.py | 37 | If left undefined, all columns will be selected. If columns are |
| HIGH | superset/cli/update.py | 131 | f"{stats.skipped} skipped, {stats.null} null, {stats.failed} failed.", |
| HIGH | superset/mcp_service/chart/tool/get_chart_data.py | 437 | # Only use if it's actually a dict (not null, list, etc.) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …/unit_tests/distributed_lock/distributed_lock_tests.py | 63 | |
| LOW | …/unit_tests/distributed_lock/distributed_lock_tests.py | 93 | |
| LOW | tests/unit_tests/utils/date_parser_tests.py | 42 | |
| LOW | …ts/unit_tests/mcp_service/test_auth_user_resolution.py | 236 | |
| LOW | tests/unit_tests/mcp_service/test_mcp_caching.py | 158 | |
| LOW | tests/unit_tests/mcp_service/test_mcp_storage.py | 61 | |
| LOW | …it_tests/mcp_service/chart/tool/test_get_chart_data.py | 96 | |
| LOW | …t_tests/mcp_service/sql_lab/test_execute_sql_helper.py | 26 | |
| LOW | tests/unit_tests/common/test_query_context_processor.py | 524 | |
| LOW | tests/unit_tests/common/test_query_context_processor.py | 590 | |
| LOW | tests/unit_tests/common/test_query_context_processor.py | 1545 | |
| LOW | tests/unit_tests/common/test_query_context_processor.py | 1615 | |
| LOW | tests/unit_tests/common/test_query_context_processor.py | 1675 | |
| LOW | tests/unit_tests/commands/databases/csv_reader_test.py | 1260 | |
| LOW | tests/unit_tests/commands/dataset/test_create.py | 29 | |
| LOW | tests/unit_tests/commands/dataset/test_create.py | 78 | |
| LOW | tests/unit_tests/commands/dataset/test_create.py | 139 | |
| LOW | tests/integration_tests/base_tests.py | 639 | |
| LOW | tests/integration_tests/datasource_tests.py | 373 | |
| LOW | tests/integration_tests/tasks/commands/test_cancel.py | 342 | |
| LOW | tests/integration_tests/tasks/commands/test_cancel.py | 379 | |
| LOW | tests/integration_tests/tasks/commands/test_cancel.py | 453 | |
| LOW | tests/integration_tests/charts/data/api_tests.py | 1627 | |
| LOW | tests/integration_tests/dashboards/commands_tests.py | 773 | |
| LOW | docs/scripts/fix-openapi-spec.py | 327 | |
| LOW | docs/scripts/fix-openapi-spec.py | 548 | |
| LOW | docs/scripts/fix-openapi-spec.py | 652 | |
| LOW | docs/scripts/fix-openapi-spec.py | 711 | |
| LOW | docs/scripts/fix-openapi-spec.py | 746 | |
| LOW | docs/scripts/extract_custom_errors.py | 119 | |
| LOW | docs/scripts/extract_custom_errors.py | 139 | |
| LOW | scripts/cypress_run.py | 106 | |
| LOW | scripts/extract_feature_flags.py | 50 | |
| LOW | scripts/extract_feature_flags.py | 118 | |
| LOW | scripts/benchmark_migration.py | 73 | |
| LOW | scripts/benchmark_migration.py | 141 | |
| LOW | scripts/translations/build_translation_index.py | 76 | |
| LOW | superset/sql_lab.py | 249 | |
| LOW | superset/sql_lab.py | 374 | |
| LOW | superset/result_set.py | 66 | |
| LOW | superset/result_set.py | 135 | |
| LOW | superset/viz.py | 180 | |
| LOW | superset/viz.py | 216 | |
| LOW | superset/viz.py | 537 | |
| LOW | superset/viz.py | 791 | |
| LOW | superset/viz.py | 978 | |
| LOW | superset/viz.py | 1114 | |
| LOW | superset/viz.py | 1708 | |
| LOW | superset/viz.py | 2076 | |
| LOW | superset/viz.py | 2215 | |
| LOW | superset/viz.py | 2287 | |
| LOW | superset/viz.py | 2484 | |
| LOW | superset/viz.py | 2855 | |
| LOW | superset/jinja_context.py | 346 | |
| LOW | superset/jinja_context.py | 486 | |
| LOW | superset/connectors/sqla/models.py | 501 | |
| LOW | superset/connectors/sqla/models.py | 645 | |
| LOW | superset/connectors/sqla/models.py | 764 | |
| LOW | superset/connectors/sqla/models.py | 1567 | |
| LOW | superset/connectors/sqla/models.py | 1641 | |
| 212 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docker/frontend-mem-nag.sh | 26 | # Check if running in Codespaces first |
| LOW | docker/docker-pytest-entrypoint.sh | 89 | # Check if test database exists |
| LOW | tests/unit_tests/tasks/test_handlers.py | 562 | # Set task to SUCCESS (not aborting) so only cleanup handlers run |
| LOW | tests/unit_tests/tasks/test_handlers.py | 614 | # Set task to ABORTING so both abort and cleanup handlers run |
| LOW | tests/unit_tests/security/manager_test.py | 556 | # Check if Alpha role already exists |
| LOW | tests/unit_tests/security/manager_test.py | 563 | # Check if user already exists |
| LOW | tests/unit_tests/dao/base_dao_test.py | 205 | # Set model_cls to None but allow method to proceed past guard clause |
| LOW | tests/unit_tests/utils/test_screenshot_cache_fix.py | 249 | # Set TTL to 300 seconds |
| LOW | tests/unit_tests/utils/test_screenshot_cache_fix.py | 196 | # Set TTL to 300 seconds |
| LOW | tests/unit_tests/utils/test_screenshot_cache_fix.py | 211 | # Set TTL to 300 seconds |
| LOW | tests/unit_tests/utils/test_screenshot_cache_fix.py | 263 | # Set TTL to 300 seconds |
| LOW | …it_tests/models/test_time_filter_double_application.py | 135 | # Check if there's a WHERE clause after the subquery closes |
| LOW | …it_tests/models/test_time_filter_double_application.py | 358 | # Check if there's a WHERE clause after the subquery |
| LOW | …s/unit_tests/mcp_service/test_mcp_tool_registration.py | 104 | # Check if it has any .py files in it or its subdirectories |
| LOW | …t_tests/mcp_service/sql_lab/test_execute_sql_helper.py | 36 | # Check if it's a Pydantic model with model_dump |
| LOW | tests/unit_tests/db_engine_specs/test_trino.py | 409 | # Set stats to FINISHED so the progress loop exits immediately |
| LOW | tests/unit_tests/commands/databases/csv_reader_test.py | 262 | # Check if both values are NaN |
| LOW | …sts/unit_tests/commands/databases/excel_reader_test.py | 185 | # Check if both values are NaN |
| LOW | …/unit_tests/commands/databases/columnar_reader_test.py | 129 | # Check if both values are NaN |
| LOW | tests/unit_tests/sql/execution/test_celery_task.py | 84 | # Set end_time to trigger the branch skip |
| LOW | tests/integration_tests/tasks/test_event_handlers.py | 251 | # Set status to ABORTING (simulating CancelTaskCommand) |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 89 | # Assign theme to dashboard |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 100 | # Assign theme to dashboard |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 332 | # Set theme to None so tearDown doesn't try to delete it |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 157 | # Assign theme to dashboard |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 182 | # Assign theme to dashboard |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 211 | # Assign theme to dashboard |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 231 | # Set theme to None so tearDown doesn't try to delete it |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 251 | # Assign theme to both dashboards |
| LOW | …integration_tests/dashboards/test_theme_integration.py | 374 | # Assign theme to dashboard |
| LOW | docs/scripts/fix-openapi-spec.py | 467 | # Check if endpoint has a request body |
| LOW | docs/scripts/fix-openapi-spec.py | 504 | # Check if already configured |
| LOW | docs/scripts/fix-openapi-spec.py | 780 | # Check if this suffix is already in the summary |
| LOW | .devcontainer/start-superset.sh | 7 | # Check if MCP is enabled |
| LOW | .devcontainer/start-superset.sh | 21 | # Check if docker is running |
| LOW | scripts/docker-compose-up.sh | 131 | # Check if containers are running and get actual ports, otherwise use available ports |
| LOW | scripts/change_detector.py | 146 | # Output results |
| LOW | .github/workflows/claude.yml | 31 | # Check if user is in allowed list |
| LOW | .github/workflows/bashlib.sh | 337 | # Check if there are any test files in the specified path |
| LOW | superset/config.py | 2545 | # Set CACHE_TYPE to 'RedisCache' for standard Redis or 'RedisSentinelCache' for |
| LOW | superset/sql_lab.py | 487 | # Check if stopped |
| LOW | superset/app.py | 166 | # Check if database is up-to-date with migrations |
| LOW | superset/connectors/sqla/models.py | 270 | # Check if all requested columns are drillable |
| LOW | superset/databases/schemas.py | 1013 | # Check if any sensitive field is still masked |
| LOW | superset/tasks/context.py | 372 | # Check if task execution has already completed (late abort race). |
| LOW | superset/tasks/context.py | 433 | # Check if all abort handlers completed successfully |
| LOW | superset/tasks/context.py | 479 | # Check if task already has an error (preserve original context) |
| LOW | superset/tasks/context.py | 545 | # Check if task has abort handler (requires app context) |
| LOW | superset/tasks/context.py | 564 | # Set status to ABORTING (same as user abort) |
| LOW | superset/tasks/manager.py | 81 | # Check if thread is still running after timeout |
| LOW | superset/tasks/manager.py | 540 | # Check if stop was requested - if so, this may be expected |
| LOW | superset/tasks/manager.py | 591 | # Check if we were asked to stop - if so, this is expected |
| LOW | superset/tasks/decorators.py | 336 | # Check if already in terminal state |
| LOW | superset/security/manager.py | 884 | # Check if this is actually a multi-layer deck.gl chart |
| LOW | superset/security/manager.py | 1844 | # Check if database name has changed |
| LOW | superset/security/manager.py | 2157 | # Check if watched fields have changed |
| LOW | superset/semantic_layers/mapper.py | 791 | # Check if we need separate filters for the group limit subquery |
| LOW | superset/semantic_layers/mapper.py | 818 | # Check if inner time bounds are explicitly set and differ from outer bounds |
| LOW | superset/charts/client_processing.py | 365 | # Check if the DataFrame has a default RangeIndex, which should not be shown |
| LOW | superset/charts/data/api.py | 510 | # Check if we should use streaming for large datasets |
| 88 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | …t-core/src/superset_core/semantic_layers/decorators.py | 55 | Decorator to register a semantic layer implementation. Automatically detects extension context and applies app |
| HIGH | superset-core/src/superset_core/mcp/decorators.py | 62 | Decorator to register an MCP tool with optional authentication. This decorator combines FastMCP tool registrat |
| HIGH | superset-core/src/superset_core/mcp/decorators.py | 139 | Decorator to register an MCP prompt with optional authentication. This decorator combines FastMCP prompt regis |
| HIGH | superset-core/src/superset_core/rest_api/decorators.py | 48 | Unified API decorator for both host and extension APIs. Automatically detects context: - Host context: /ap |
| HIGH | superset/tasks/decorators.py | 560 | Schedule this task for asynchronous execution. The signature mirrors the original task function, with |
| HIGH | superset/utils/cache_manager.py | 59 | Create a hash object using the configured algorithm. Args: data: Optional initial data to |
| HIGH | superset/utils/date_parser.py | 186 | Generates a datetime expression for the start of a given unit (e.g., start of month, start of year). This |
| HIGH | superset/utils/date_parser.py | 216 | Generates a datetime expression for the end of a given unit (e.g., end of month, end of year). This funct |
| HIGH | superset/utils/date_parser.py | 251 | Handles "first" time expressions like "first of the month" or "first week of this year". This handler retu |
| HIGH | superset/utils/date_parser.py | 308 | Generates a datetime expression based on a modifier, scope, delta, unit, and relative base. This function h |
| HIGH | superset/utils/date_parser.py | 353 | Generates a datetime expression based on the scope, delta, unit, and relative base. This function handles queri |
| HIGH | superset/utils/hashing.py | 49 | Generate a hash from a string using the configured or specified algorithm. Args: val: String to hash |
| HIGH | superset/mcp_service/auth.py | 218 | Load a user with all relationships needed for permission checks. This function eagerly loads User.roles, User. |
| HIGH | superset/mcp_service/storage.py | 40 | Create a store instance with the specified prefix. Uses shared MCP_STORE_CONFIG for Redis URL and wrapper type |
| HIGH | superset/mcp_service/storage.py | 187 | Import a wrapper class from a dotted path. Args: class_path: Dotted path like 'key_value.a |
| HIGH | superset/mcp_service/utils/schema_utils.py | 53 | Parse a value that can be either a JSON string or a native Python object. This function handles the common pat |
| HIGH | superset/mcp_service/utils/schema_utils.py | 114 | Parse a value into a list, accepting JSON string, list, or comma-separated string. This function provides maxi |
| HIGH | superset/mcp_service/utils/schema_utils.py | 186 | Parse a value into a Pydantic model, accepting JSON string or dict. Args: value: Input value to parse |
| HIGH | superset/mcp_service/utils/schema_utils.py | 230 | Parse a value into a list of Pydantic models, accepting JSON string or list. Args: value: Input value |
| HIGH | superset/mcp_service/utils/sanitization.py | 344 | Centralized sanitization for user-provided text inputs. Uses nh3 to strip HTML tags and performs additional se |
| HIGH | superset/mcp_service/utils/sanitization.py | 408 | Sanitize filter values which can be strings or other types. For non-string values, returns as-is (no sanitizat |
| HIGH | superset/examples/helpers.py | 94 | Normalize example data URLs for consistency. This function ensures that example data URLs are properly formatted. |
| HIGH | superset/examples/helpers.py | 148 | Load data from local Parquet files. Examples are organized as: superset/examples/{example_name}/data.parque |
| HIGH | superset-extensions-cli/tests/utils.py | 106 | Load and parse a JSON file. Args: path: Path to the JSON file Returns: Parsed JSON conten |
| HIGH | …et-extensions-cli/src/superset_extensions_cli/utils.py | 258 | Validate and normalize display name format. Args: display_name: Human-readable extension name Ret |
| HIGH | …et-extensions-cli/src/superset_extensions_cli/utils.py | 337 | Generate all extension name variants from input. Args: display_name: Human-readable name (e.g., "Dashb |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | tests/unit_tests/models/helpers_test.py | 2203 | "val": ["John Doe", "Jane Doe"], |
| LOW | tests/unit_tests/models/helpers_test.py | 2203 | "val": ["John Doe", "Jane Doe"], |
| LOW | …ts/unit_tests/mcp_service/user/tool/test_user_tools.py | 206 | user = create_mock_user(email="admin@example.com", roles=["Admin"]) |
| LOW | …ts/unit_tests/mcp_service/user/tool/test_user_tools.py | 216 | assert data["users"][0]["email"] == "admin@example.com" |
| LOW | …ts/unit_tests/mcp_service/user/tool/test_user_tools.py | 224 | user = create_mock_user(email="admin@example.com") |
| LOW | …ts/unit_tests/mcp_service/user/tool/test_user_tools.py | 44 | email: str = "admin@example.com", |
| LOW | …sts/mcp_service/dashboard/tool/test_dashboard_tools.py | 524 | refreshed_user.email = "admin@example.com" |
| LOW | …sts/mcp_service/dashboard/tool/test_dashboard_tools.py | 528 | current_user.email = "admin@example.com" |
| LOW | …sts/mcp_service/dashboard/tool/test_dashboard_tools.py | 543 | email="admin@example.com" |
| LOW | …cp_service/dashboard/tool/test_dashboard_generation.py | 155 | mock_user.email = "admin@example.com" |
| LOW | …cp_service/dashboard/tool/test_dashboard_generation.py | 445 | email="admin@example.com", |
| LOW | …tests/mcp_service/system/test_serialize_user_object.py | 40 | user.email = "admin@example.com" |
| LOW | …tests/mcp_service/system/test_serialize_user_object.py | 51 | assert result.email == "admin@example.com" |
| LOW | …tests/mcp_service/system/test_serialize_user_object.py | 68 | user.email = "admin@example.com" |
| LOW | tests/unit_tests/db_engine_specs/test_gsheets.py | 144 | g.user.email = "admin@example.com" |
| LOW | tests/unit_tests/db_engine_specs/test_gsheets.py | 221 | subject="admin@example.com", |
| LOW | tests/unit_tests/db_engine_specs/test_gsheets.py | 234 | g.user.email = "admin@example.com" |
| LOW | tests/unit_tests/db_engine_specs/test_gsheets.py | 288 | subject="admin@example.com", |
| LOW | …s/unit_tests/commands/report/test_create_recipients.py | 33 | mock_user.email = "user@example.com" |
| LOW | …s/unit_tests/commands/report/test_create_recipients.py | 56 | == "user@example.com" |
| LOW | …s/unit_tests/commands/report/test_create_recipients.py | 95 | "recipient_config_json": {"target": "admin@example.com"}, |
| LOW | …s/unit_tests/commands/report/test_create_recipients.py | 166 | "recipient_config_json": {"target": "user@example.com"}, |
| LOW | tests/unit_tests/reports/schemas_test.py | 91 | "recipient_config_json": {"target": "user@example.com"}, |
| LOW | tests/unit_tests/reports/schemas_test.py | 94 | assert result["recipient_config_json"]["target"] == "user@example.com" |
| LOW | tests/unit_tests/reports/schemas_test.py | 118 | "target": "user@example.com", |
| LOW | tests/unit_tests/reports/schemas_test.py | 134 | "target": "user@example.com", |
| LOW | tests/unit_tests/reports/schemas_test.py | 149 | "target": "user@example.com", |
| LOW | tests/unit_tests/reports/schemas_test.py | 154 | assert result["recipient_config_json"]["target"] == "user@example.com" |
| LOW | tests/unit_tests/reports/schemas_test.py | 164 | "target": "user@example.com", |
| LOW | tests/unit_tests/reports/schemas_test.py | 169 | assert result["recipient_config_json"]["target"] == "user@example.com" |
| LOW | tests/integration_tests/charts/api_tests.py | 138 | certified_by="John Doe", |
| LOW | tests/integration_tests/charts/api_tests.py | 550 | "certified_by": "John Doe", |
| LOW | tests/integration_tests/dashboards/api_tests.py | 112 | certified_by="John Doe", |
| LOW | …/plugins/preset-chart-deckgl/src/layers/common.test.ts | 163 | object: { name: 'John Doe' }, |
| LOW | …/plugins/preset-chart-deckgl/src/layers/common.test.ts | 167 | expect(mockOnSelect).toHaveBeenCalledWith('John Doe'); |
| LOW | …s/superset-core/src/components/Alert/Alert.stories.tsx | 26 | const smallText = 'Lorem ipsum dolor sit amet'; |
| LOW | …s/superset-core/src/components/Alert/Alert.stories.tsx | 26 | const smallText = 'Lorem ipsum dolor sit amet'; |
| LOW | …s/superset-core/src/components/Alert/Alert.stories.tsx | 28 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' + |
| LOW | …s/superset-core/src/components/Alert/Alert.stories.tsx | 28 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. ' + |
| LOW | …umber-format/factories/createD3NumberFormatter.test.ts | 67 | description: 'lorem ipsum', |
| LOW | …umber-format/factories/createD3NumberFormatter.test.ts | 70 | expect(formatter.description).toEqual('lorem ipsum'); |
| LOW | …umber-format/factories/createD3NumberFormatter.test.ts | 76 | description: 'lorem ipsum', |
| LOW | …perset-ui-core/test/query/getClientErrorObject.test.ts | 69 | const htmlString = '<!doctype html><div>Foo bar Lorem Ipsum</div>'; |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 68 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id porta neque, a vehicula orci. Maecenas rhoncus |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 68 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id porta neque, a vehicula orci. Maecenas rhoncus |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 75 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id porta neque, a vehicula orci. Maecenas rhoncus |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 75 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id porta neque, a vehicula orci. Maecenas rhoncus |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 82 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id porta neque, a vehicula orci. Maecenas rhoncus |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 82 | 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam id porta neque, a vehicula orci. Maecenas rhoncus |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 141 | summary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 141 | summary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 167 | { id: 123, age: 27, name: 'Emily', summary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' }, |
| LOW | …ui-core/src/components/TableView/TableView.stories.tsx | 167 | { id: 123, age: 27, name: 'Emily', summary: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.' }, |
| LOW | …e/src/components/ListViewCard/ListViewCard.stories.tsx | 43 | description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit...', |
| LOW | …e/src/components/ListViewCard/ListViewCard.stories.tsx | 43 | description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit...', |
| LOW | …e/src/components/ListViewCard/ListViewCard.stories.tsx | 108 | description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit...', |
| LOW | …e/src/components/ListViewCard/ListViewCard.stories.tsx | 108 | description: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit...', |
| LOW | …ore/src/components/MetadataBar/MetadataBar.stories.tsx | 80 | owners: ['John Doe', 'Mary Wilson'], |
| LOW | …ore/src/components/MetadataBar/MetadataBar.stories.tsx | 124 | owners: ['John Doe', 'Mary Wilson'], |
| LOW | …ore/src/components/MetadataBar/MetadataBar.stories.tsx | 154 | owners: ['John Doe', 'Mary Wilson'], |
| 47 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | …commands/importers/v1/test_find_existing_for_import.py | 165 | # Step 1: find (pure). Caller now has the row to make decisions on. |
| LOW | …commands/importers/v1/test_find_existing_for_import.py | 170 | # Step 2: caller decides to clear (in real code, after overwrite + |
| LOW | …commands/importers/v1/test_find_existing_for_import.py | 174 | # Step 3: caller can now re-insert with the same UUID without |
| LOW | …ntegration_tests/tasks/test_subscription_visibility.py | 47 | # Step 1: Gamma submits a shared task |
| LOW | …ntegration_tests/tasks/test_subscription_visibility.py | 66 | # Step 2: Admin joins the same task |
| LOW | …ntegration_tests/tasks/test_subscription_visibility.py | 84 | # Step 3: Gamma cancels (unsubscribes) |
| LOW | …ntegration_tests/tasks/test_subscription_visibility.py | 96 | # Step 4: Verify gamma can no longer see the task |
| LOW | …ntegration_tests/tasks/test_subscription_visibility.py | 103 | # Step 5: Verify admin still sees the task |
| LOW | tests/integration_tests/utils/encrypt_tests.py | 170 | # Step 1: Encrypt with KEY_A |
| LOW | tests/integration_tests/utils/encrypt_tests.py | 175 | # Step 2: Verify decryption with KEY_A works |
| LOW | tests/integration_tests/utils/encrypt_tests.py | 179 | # Step 3: Rotate key to KEY_B |
| LOW | tests/integration_tests/utils/encrypt_tests.py | 182 | # Step 4: Re-encrypt with KEY_B (simulating SecretsMigrator logic) |
| LOW | tests/integration_tests/utils/encrypt_tests.py | 193 | # Step 5: Verify decryption with KEY_B works |
| LOW | tests/integration_tests/utils/encrypt_tests.py | 197 | # Step 6: Verify KEY_A can no longer decrypt the new ciphertext |
| LOW | tests/integration_tests/dashboards/commands_tests.py | 814 | # Step 1: Add an embedded dashboard |
| LOW | tests/integration_tests/dashboards/commands_tests.py | 821 | # Step 2: Assert that the embedded dashboard was added |
| LOW | tests/integration_tests/dashboards/commands_tests.py | 826 | # Step 3: Delete the embedded dashboard |
| LOW | tests/integration_tests/dashboards/commands_tests.py | 831 | # Step 4: Assert that the embedded dashboard was deleted |
| LOW | …gin-chart-echarts/src/utils/safeEChartOptionsParser.ts | 410 | // Step 1: Parse into AST |
| LOW | …gin-chart-echarts/src/utils/safeEChartOptionsParser.ts | 444 | // Step 2: Validate AST for security (no functions, eval, etc.) |
| LOW | …gin-chart-echarts/src/utils/safeEChartOptionsParser.ts | 452 | // Step 3: Convert AST to JavaScript object |
| LOW | …gin-chart-echarts/src/utils/safeEChartOptionsParser.ts | 455 | // Step 4: Validate against Zod schema with partial/lenient mode |
| LOW | …ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx | 45 | // Step 1: Simulate saved dashboard config |
| LOW | …ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx | 79 | // Step 2: Render the dashboard filter |
| LOW | …ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx | 85 | // Step 3: Verify only pre-filtered options appear |
| LOW | …ents/TimeGrain/TimeGrainPreFilter.integration.test.tsx | 101 | // Step 4: Selecting one allowed option should update runtime payload |
| LOW | …-frontend/src/dashboard/reducers/nativeFilters.test.ts | 474 | // Step 1: filter(Boolean) — as hydrate.ts does |
| LOW | …-frontend/src/dashboard/reducers/nativeFilters.test.ts | 476 | // Step 2: migrate — as hydrate.ts does |
| LOW | …-frontend/src/dashboard/reducers/nativeFilters.test.ts | 478 | // Step 3: combine with native filters and pass to getInitialState |
| LOW | superset/semantic_layers/mapper.py | 116 | # Step 1: Convert QueryObject to list of SemanticQuery objects |
| LOW | superset/semantic_layers/mapper.py | 120 | # Step 2: Execute the main query (first in the list) |
| LOW | superset/semantic_layers/mapper.py | 178 | # Step 5: Perform left join on dimension columns |
| LOW | superset/mcp_service/jwt_verifier.py | 404 | # Step 1: Decode header and check algorithm |
| LOW | superset/mcp_service/jwt_verifier.py | 424 | # Step 2: Get verification key (static or JWKS) |
| LOW | superset/mcp_service/jwt_verifier.py | 433 | # Step 3: Decode and verify signature |
| LOW | superset/mcp_service/jwt_verifier.py | 458 | # Step 4: Check expiration |
| LOW | superset/mcp_service/jwt_verifier.py | 466 | # Step 5: Validate issuer |
| LOW | superset/mcp_service/jwt_verifier.py | 484 | # Step 6: Validate audience |
| LOW | superset/mcp_service/jwt_verifier.py | 511 | # Step 7: Check required scopes |
| LOW | superset/mcp_service/dataset/tool/query_dataset.py | 155 | # Step 1: Check data-model metadata access BEFORE the dataset lookup. |
| LOW | superset/mcp_service/dataset/tool/query_dataset.py | 171 | # Step 2: Resolve dataset |
| LOW | superset/mcp_service/dataset/tool/query_dataset.py | 205 | # Step 2: Validate requested columns and metrics |
| LOW | superset/mcp_service/dataset/tool/query_dataset.py | 239 | # Step 3: Build filters and time range |
| LOW | superset/mcp_service/dataset/tool/query_dataset.py | 301 | # Step 4: Build query dict |
| LOW | superset/mcp_service/dataset/tool/query_dataset.py | 322 | # Step 5: Create QueryContext and execute |
| LOW | superset/mcp_service/dataset/tool/query_dataset.py | 355 | # Step 6: Format response |
| LOW | …erset/mcp_service/chart/prompts/create_chart_guided.py | 88 | ### Step 1: Find a Dataset |
| LOW | …erset/mcp_service/chart/prompts/create_chart_guided.py | 91 | ### Step 2: Examine Columns |
| LOW | …erset/mcp_service/chart/prompts/create_chart_guided.py | 94 | ### Step 3: Choose Chart Configuration |
| LOW | …erset/mcp_service/chart/prompts/create_chart_guided.py | 101 | ### Step 4: Create the Chart |
| LOW | …erset/mcp_service/chart/prompts/create_chart_guided.py | 133 | ### Step 5: Validate Results |
| LOW | superset/db_engine_specs/aws_iam.py | 481 | # Step 1: Assume the IAM role |
| LOW | superset/db_engine_specs/aws_iam.py | 489 | # Step 2: Generate the RDS auth token |
| LOW | superset/db_engine_specs/aws_iam.py | 498 | # Step 3: Update connection parameters |
| LOW | superset/db_engine_specs/aws_iam.py | 507 | # Step 4: Enable SSL (required for IAM authentication) |
| LOW | superset/db_engine_specs/aws_iam.py | 616 | # Step 1: Assume the IAM role |
| LOW | superset/db_engine_specs/aws_iam.py | 624 | # Step 2: Get Redshift credentials based on deployment type |
| LOW | superset/db_engine_specs/aws_iam.py | 652 | # Step 3: Update connection parameters |
| LOW | superset/db_engine_specs/aws_iam.py | 657 | # Step 4: Enable SSL (required for Redshift IAM authentication) |
| LOW | superset/db_engine_specs/base.py | 2068 | # signature, so we need to check if the method has the old signature. |
| 3 more matches not shown… | |||
| Severity | File | Line | Snippet |
|---|---|---|---|
| MEDIUM | tests/unit_tests/utils/webdriver_test.py | 278 | """Test comprehensive Playwright availability checking.""" |
| MEDIUM | …tegration_tests/tasks/commands/test_internal_update.py | 263 | """Test atomic conditional status transitions with comprehensive scenarios. |
| MEDIUM | tests/integration_tests/dao/base_dao_test.py | 51 | # Create a test model for comprehensive testing |
| LOW | tests/integration_tests/charts/commands_tests.py | 623 | # can just pass in chart as well |
| MEDIUM | …frontend/plugins/plugin-chart-table/src/TableChart.tsx | 1569 | // Use a ref to store previous clientViewRows and exportColumns for robust change detection |
| MEDIUM | …nd/src/pages/DatasetList/DatasetList.listview.test.tsx | 1797 | // Select row by dataset name (row-scoped query is more robust than array index) |
| MEDIUM | …nd/src/pages/DatasetList/DatasetList.listview.test.tsx | 1860 | // Select row by dataset name (row-scoped query is more robust than array index) |
| MEDIUM | …nd/src/pages/DatasetList/DatasetList.listview.test.tsx | 1934 | // Select first virtual dataset by name (row-scoped query is more robust than array index) |
| MEDIUM | …nd/src/pages/DatasetList/DatasetList.listview.test.tsx | 1980 | // Select first physical dataset by name (row-scoped query is more robust than array index) |
| MEDIUM | …nd/src/pages/DatasetList/DatasetList.listview.test.tsx | 2030 | // Select first dataset by name (row-scoped query is more robust than array index) |
| MEDIUM | superset/config.py | 1514 | # This is move involved example where depending on the database you can leverage data |
| MEDIUM | superset/viz.py | 258 | payload = self.get_df_payload(query_obj) # leverage caching logic |
| MEDIUM | superset/viz.py | 705 | df = self.get_df_payload()["df"] # leverage caching logic |
| LOW | superset/tasks/context.py | 501 | # No original error, just use handler failures |
| MEDIUM | superset/mcp_service/mcp_core.py | 673 | """Tool interface for generating comprehensive instance information.""" |
| MEDIUM | superset/mcp_service/mcp_core.py | 682 | """Generate comprehensive instance information.""" |
| MEDIUM | superset/mcp_service/mcp_core.py | 816 | """Execute schema discovery and return comprehensive schema info.""" |
| LOW | …vice/chart/validation/runtime/cardinality_validator.py | 90 | # but that requires DB access - for now just return OK |
| MEDIUM | superset/mcp_service/chart/tool/generate_chart.py | 207 | # Run comprehensive validation pipeline |
| MEDIUM | superset/mcp_service/chart/tool/get_chart_data.py | 761 | # Generate comprehensive summary with cache info |
| LOW | superset/db_engine_specs/lint_metadata.py | 364 | # f-strings - just return placeholder |
| MEDIUM | superset/views/redirect.py | 65 | # Block dangerous schemes using urlparse for robust detection |
| Severity | File | Line | Snippet |
|---|---|---|---|
| CRITICAL | …art-point-cluster-map/test/ScatterPlotOverlay.test.tsx | 885 | redrawParams.ctx.arc.mock.calls.forEach(call => { |
| CRITICAL | .github/workflows/check_db_migration_confict.yml | 40 | const opts = github.rest.pulls.list.endpoint.merge({ |
| CRITICAL | .github/workflows/check_db_migration_confict.yml | 54 | const listFilesOpts = await github.rest.pulls.listFiles.endpoint.merge({ |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | docker-compose-image-tag.yml | 20 | # If you choose to use this type of deployment make sure to |
| LOW | docker-compose-non-dev.yml | 20 | # If you choose to use this type of deployment make sure to |
| LOW | docker-compose.yml | 20 | # If you choose to use this type of deployment make sure to |
| LOW | tests/integration_tests/reports/utils.py | 210 | # make sure to clean up in case of yield exceptions |
| MEDIUM | superset/config.py | 84 | # Note that you can use `StdOutEventLogger` for debugging |
| MEDIUM | superset/config.py | 247 | # Note that you can use this to set the isolation level of your database, as in |
| MEDIUM | superset/config.py | 479 | # for adding your own map tiles, you can use the following format: |
| LOW | superset/config.py | 187 | # You should also make sure to configure your WSGI server |
| LOW | superset/constants.py | 18 | # ATTENTION: If you change any constants, make sure to also change utils/common.js |
| LOW | superset/utils/pandas_postprocessing/utils.py | 205 | # make sure to return a new DataFrame instead of changing the `base_df`. |
| LOW | helm/superset/values.yaml | 736 | # Make sure you are giving a strong password for the admin user creation( else make sure you are changing after setup) |
| Severity | File | Line | Snippet |
|---|---|---|---|
| HIGH | superset/mcp_service/jwt_verifier.py | 154 | ' "Authorization": "Bearer <your-api-key>"\n' |
| HIGH | superset/mcp_service/jwt_verifier.py | 190 | "and <code><your-api-key></code> with a valid API key or JWT token." |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | scripts/docker-compose-up.sh | 27 | # Usage: |
| Severity | File | Line | Snippet |
|---|---|---|---|
| LOW | superset/viz.py | 1040 | def process_data(self, df: pd.DataFrame, aggregate: bool = False) -> VizData: |
| LOW | superset/tasks/scheduler.py | 240 | def execute_task( # noqa: C901 |