diff --git a/backend/dataall/modules/s3_datasets/services/dataset_profiling_service.py b/backend/dataall/modules/s3_datasets/services/dataset_profiling_service.py index 7839ca9d1..7b8e5f0f8 100644 --- a/backend/dataall/modules/s3_datasets/services/dataset_profiling_service.py +++ b/backend/dataall/modules/s3_datasets/services/dataset_profiling_service.py @@ -1,5 +1,6 @@ import json +from dataall.base.feature_toggle_checker import is_feature_enabled from dataall.core.permissions.services.resource_policy_service import ResourcePolicyService from dataall.core.tasks.service_handlers import Worker from dataall.base.context import get_context @@ -22,6 +23,7 @@ class DatasetProfilingService: @staticmethod @ResourcePolicyService.has_resource_permission(PROFILE_DATASET_TABLE) + @is_feature_enabled('modules.s3_datasets.features.metrics_data') def start_profiling_run(uri, table_uri, glue_table_name): context = get_context() with context.db_engine.scoped_session() as session: @@ -55,6 +57,7 @@ def start_profiling_run(uri, table_uri, glue_table_name): return run @staticmethod + @is_feature_enabled('modules.s3_datasets.features.metrics_data') def resolve_profiling_run_status(run_uri): context = get_context() with context.db_engine.scoped_session() as session: @@ -64,11 +67,13 @@ def resolve_profiling_run_status(run_uri): @staticmethod @ResourcePolicyService.has_resource_permission(GET_DATASET) + @is_feature_enabled('modules.s3_datasets.features.metrics_data') def list_profiling_runs(uri): with get_context().db_engine.scoped_session() as session: return DatasetProfilingRepository.list_profiling_runs(session, uri) @classmethod + @is_feature_enabled('modules.s3_datasets.features.metrics_data') def get_dataset_table_profiling_run(cls, uri: str): with get_context().db_engine.scoped_session() as session: cls._check_preview_permissions_if_needed(session, table_uri=uri) @@ -94,6 +99,7 @@ def get_dataset_table_profiling_run(cls, uri: str): return run @classmethod + @is_feature_enabled('modules.s3_datasets.features.metrics_data') def list_table_profiling_runs(cls, uri: str): with get_context().db_engine.scoped_session() as session: cls._check_preview_permissions_if_needed(session=session, table_uri=uri) diff --git a/config.json b/config.json index e0e193c59..26d0891b4 100644 --- a/config.json +++ b/config.json @@ -57,6 +57,7 @@ "aws_actions": true, "preview_data": true, "glue_crawler": true, + "metrics_data": true, "show_stack_logs": "enabled" } }, diff --git a/frontend/src/modules/Tables/views/TableView.js b/frontend/src/modules/Tables/views/TableView.js index a7f0fb028..85ce3c0a6 100644 --- a/frontend/src/modules/Tables/views/TableView.js +++ b/frontend/src/modules/Tables/views/TableView.js @@ -42,6 +42,7 @@ import { isFeatureEnabled } from 'utils'; import config from '../../../generated/config.json'; const previewDataEnabled = isFeatureEnabled('s3_datasets', 'preview_data'); +const metricsEnabled = isFeatureEnabled('s3_datasets', 'metrics_data'); const confidentialityOptionsDict = config.modules.datasets_base.features.confidentiality_dropdown === true && @@ -195,7 +196,7 @@ const TableView = () => { if (!tabs.find((t) => t.value === 'columns')) { tabs.push({ label: 'Columns', value: 'columns' }); } - if (!tabs.find((t) => t.value === 'metrics')) { + if (metricsEnabled && !tabs.find((t) => t.value === 'metrics')) { tabs.push({ label: 'Metrics', value: 'metrics' }); } if ( @@ -310,7 +311,7 @@ const TableView = () => { {currentTab === 'columns' && ( )} - {currentTab === 'metrics' && ( + {metricsEnabled && currentTab === 'metrics' && ( )} {currentTab === 'datafilters' && isAdmin && (