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 && (