diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/mlmodel/mappers/MLFeatureTablePropertiesMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/mlmodel/mappers/MLFeatureTablePropertiesMapper.java index bf8dc11a44..578b7d0731 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/mlmodel/mappers/MLFeatureTablePropertiesMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/mlmodel/mappers/MLFeatureTablePropertiesMapper.java @@ -3,6 +3,7 @@ package com.linkedin.datahub.graphql.types.mlmodel.mappers; import com.linkedin.datahub.graphql.generated.MLFeature; import com.linkedin.datahub.graphql.generated.MLFeatureTableProperties; import com.linkedin.datahub.graphql.generated.MLPrimaryKey; +import com.linkedin.datahub.graphql.types.common.mappers.StringMapMapper; import com.linkedin.datahub.graphql.types.mappers.ModelMapper; import lombok.NonNull; @@ -41,6 +42,10 @@ public class MLFeatureTablePropertiesMapper implements ModelMapper { name: 'Sources', component: Sources, }, + { + name: 'Properties', + component: PropertiesTab, + }, { name: 'Documentation', component: DocumentationTab, diff --git a/datahub-web-react/src/graphql/fragments.graphql b/datahub-web-react/src/graphql/fragments.graphql index 0989e18b22..b5e1ddfd62 100644 --- a/datahub-web-react/src/graphql/fragments.graphql +++ b/datahub-web-react/src/graphql/fragments.graphql @@ -498,6 +498,10 @@ fragment nonRecursiveMLFeatureTable on MLFeatureTable { mlPrimaryKeys { ...nonRecursiveMLPrimaryKey } + customProperties { + key + value + } } ownership { ...ownershipFields diff --git a/smoke-test/tests/cypress/cypress/integration/ml/feature_table.js b/smoke-test/tests/cypress/cypress/integration/ml/feature_table.js index c4aa9e3d92..229bc86cf3 100644 --- a/smoke-test/tests/cypress/cypress/integration/ml/feature_table.js +++ b/smoke-test/tests/cypress/cypress/integration/ml/feature_table.js @@ -18,6 +18,14 @@ describe('features', () => { // feature & primary key sources are visible cy.contains('SampleCypressHdfsDataset'); cy.contains('SampleCypressKafkaDataset'); + + // navigate to properties + cy.contains('Properties').click(); + + // custom properties are visible + cy.contains('status'); + cy.contains('Created'); + }); it('can visit feature page', () => {