diff --git a/UPDATING.md b/UPDATING.md index 82894a9aa936c..83909708f55f5 100644 --- a/UPDATING.md +++ b/UPDATING.md @@ -23,6 +23,10 @@ assists people when migrating to a new version. ## 0.35.0 +* [8512](https://github.com/apache/incubator-superset/pull/8512): `DRUID_IS_ACTIVE` now +defaults to False. To enable Druid-API-based functionality, override the +`DRUID_IS_ACTIVE` configuration variable by setting it to `True` for your deployment. + * [8450](https://github.com/apache/incubator-superset/pull/8450): The time ranger picker now uses UTC for the tooltips and default placeholder timestamps (sans timezone). diff --git a/superset/config.py b/superset/config.py index 1e6ff616044df..7391e284e98fc 100644 --- a/superset/config.py +++ b/superset/config.py @@ -170,10 +170,15 @@ def _try_json_readsha(filepath): # [TimeZone List] # See: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones # other tz can be overridden by providing a local_config -DRUID_IS_ACTIVE = True DRUID_TZ = tz.tzutc() DRUID_ANALYSIS_TYPES = ["cardinality"] +# Legacy Druid connector +# Druid supports a SQL interface in its newer versions. +# Setting this flag to True enables the deprecated, API-based Druid +# connector. This feature may be removed at a future date. +DRUID_IS_ACTIVE = False + # ---------------------------------------------------- # AUTHENTICATION CONFIG # ---------------------------------------------------- diff --git a/tests/druid_tests.py b/tests/druid_tests.py index c5ab02895a31d..73c621d2cc505 100644 --- a/tests/druid_tests.py +++ b/tests/druid_tests.py @@ -21,6 +21,7 @@ from unittest.mock import Mock, patch from superset import db, security_manager +from tests.test_app import app from .base_tests import SupersetTestCase @@ -297,6 +298,7 @@ def check(): @unittest.skipUnless( SupersetTestCase.is_module_installed("pydruid"), "pydruid not installed" ) + @unittest.skipUnless(app.config["DRUID_IS_ACTIVE"], "DRUID_IS_ACTIVE is false") def test_filter_druid_datasource(self): CLUSTER_NAME = "new_druid" cluster = self.get_or_create( diff --git a/tests/security_tests.py b/tests/security_tests.py index 0391d0d51e7ba..47c2b1405f8bd 100644 --- a/tests/security_tests.py +++ b/tests/security_tests.py @@ -55,9 +55,6 @@ def assert_can_all(self, view_menu, permissions_set): self.assert_can_read(view_menu, permissions_set) self.assert_can_write(view_menu, permissions_set) - def assert_cannot_gamma(self, perm_set): - self.assert_cannot_write("DruidColumnInlineView", perm_set) - def assert_can_gamma(self, perm_set): self.assert_can_read("DatabaseAsync", perm_set) self.assert_can_read("TableModelView", perm_set) @@ -86,12 +83,8 @@ def assert_can_alpha(self, perm_set): self.assert_can_all("SqlMetricInlineView", perm_set) self.assert_can_all("TableColumnInlineView", perm_set) self.assert_can_all("TableModelView", perm_set) - self.assert_can_all("DruidColumnInlineView", perm_set) - self.assert_can_all("DruidDatasourceModelView", perm_set) - self.assert_can_all("DruidMetricInlineView", perm_set) self.assertIn(("all_datasource_access", "all_datasource_access"), perm_set) - self.assertIn(("muldelete", "DruidDatasourceModelView"), perm_set) def assert_cannot_alpha(self, perm_set): if app.config["ENABLE_ACCESS_REQUEST"]: @@ -104,7 +97,6 @@ def assert_cannot_alpha(self, perm_set): def assert_can_admin(self, perm_set): self.assert_can_read("DatabaseAsync", perm_set) self.assert_can_all("DatabaseView", perm_set) - self.assert_can_all("DruidClusterModelView", perm_set) self.assert_can_all("RoleModelView", perm_set) self.assert_can_all("UserDBModelView", perm_set) @@ -185,13 +177,6 @@ def test_is_alpha_only(self): ) ) ) - self.assertTrue( - security_manager._is_alpha_only( - security_manager.find_permission_view_menu( - "can_delete", "DruidMetricInlineView" - ) - ) - ) self.assertTrue( security_manager._is_alpha_only( security_manager.find_permission_view_menu( @@ -209,7 +194,6 @@ def test_is_gamma_pvm(self): def test_gamma_permissions_basic(self): self.assert_can_gamma(get_perm_tuples("Gamma")) - self.assert_cannot_gamma(get_perm_tuples("Gamma")) self.assert_cannot_alpha(get_perm_tuples("Alpha")) @unittest.skipUnless( @@ -234,7 +218,6 @@ def test_sql_lab_permissions(self): self.assertIn(("can_csv", "Superset"), sql_lab_set) self.assertIn(("can_search_queries", "Superset"), sql_lab_set) - self.assert_cannot_gamma(sql_lab_set) self.assert_cannot_alpha(sql_lab_set) def test_granter_permissions(self): @@ -242,7 +225,6 @@ def test_granter_permissions(self): self.assertIn(("can_override_role_permissions", "Superset"), granter_set) self.assertIn(("can_approve", "Superset"), granter_set) - self.assert_cannot_gamma(granter_set) self.assert_cannot_alpha(granter_set) def test_gamma_permissions(self): @@ -273,7 +255,6 @@ def assert_can_all(view_menu): # check read only perms assert_can_read("TableModelView") - assert_cannot_write("DruidColumnInlineView") # make sure that user can create slices and dashboards assert_can_all("SliceModelView")