diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/GlossaryNodeType.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/GlossaryNodeType.java index 05ebbab481..f65da65f15 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/GlossaryNodeType.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/GlossaryNodeType.java @@ -5,6 +5,7 @@ import static com.linkedin.metadata.Constants.FORMS_ASPECT_NAME; import static com.linkedin.metadata.Constants.GLOSSARY_NODE_ENTITY_NAME; import static com.linkedin.metadata.Constants.GLOSSARY_NODE_INFO_ASPECT_NAME; import static com.linkedin.metadata.Constants.GLOSSARY_NODE_KEY_ASPECT_NAME; +import static com.linkedin.metadata.Constants.INSTITUTIONAL_MEMORY_ASPECT_NAME; import static com.linkedin.metadata.Constants.OWNERSHIP_ASPECT_NAME; import static com.linkedin.metadata.Constants.STRUCTURED_PROPERTIES_ASPECT_NAME; @@ -50,7 +51,8 @@ public class GlossaryNodeType OWNERSHIP_ASPECT_NAME, STRUCTURED_PROPERTIES_ASPECT_NAME, FORMS_ASPECT_NAME, - APPLICATION_MEMBERSHIP_ASPECT_NAME); + APPLICATION_MEMBERSHIP_ASPECT_NAME, + INSTITUTIONAL_MEMORY_ASPECT_NAME); private final EntityClient _entityClient; diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/mappers/GlossaryNodeMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/mappers/GlossaryNodeMapper.java index df636eb27c..4ae0d728bb 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/mappers/GlossaryNodeMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/glossary/mappers/GlossaryNodeMapper.java @@ -5,6 +5,7 @@ import static com.linkedin.metadata.Constants.*; import com.linkedin.common.DisplayProperties; import com.linkedin.common.Forms; +import com.linkedin.common.InstitutionalMemory; import com.linkedin.common.Ownership; import com.linkedin.common.urn.Urn; import com.linkedin.data.DataMap; @@ -16,6 +17,7 @@ import com.linkedin.datahub.graphql.generated.GlossaryNodeProperties; import com.linkedin.datahub.graphql.generated.ResolvedAuditStamp; import com.linkedin.datahub.graphql.types.common.mappers.CustomPropertiesMapper; import com.linkedin.datahub.graphql.types.common.mappers.DisplayPropertiesMapper; +import com.linkedin.datahub.graphql.types.common.mappers.InstitutionalMemoryMapper; import com.linkedin.datahub.graphql.types.common.mappers.OwnershipMapper; import com.linkedin.datahub.graphql.types.common.mappers.util.MappingHelper; import com.linkedin.datahub.graphql.types.form.FormsMapper; @@ -65,6 +67,12 @@ public class GlossaryNodeMapper implements ModelMapper glossaryNode.setOwnership( OwnershipMapper.map(context, new Ownership(dataMap), entityUrn))); + mappingHelper.mapToResult( + INSTITUTIONAL_MEMORY_ASPECT_NAME, + (glossaryNode, dataMap) -> + glossaryNode.setInstitutionalMemory( + InstitutionalMemoryMapper.map( + context, new InstitutionalMemory(dataMap), entityUrn))); mappingHelper.mapToResult( STRUCTURED_PROPERTIES_ASPECT_NAME, ((entity, dataMap) -> diff --git a/datahub-graphql-core/src/main/resources/entity.graphql b/datahub-graphql-core/src/main/resources/entity.graphql index db0fd2c47c..ae3d8b85d3 100644 --- a/datahub-graphql-core/src/main/resources/entity.graphql +++ b/datahub-graphql-core/src/main/resources/entity.graphql @@ -2639,6 +2639,11 @@ type GlossaryNode implements Entity { """ parentNodes: ParentNodesResult + """ + References to internal resources related to the Glossary Node + """ + institutionalMemory: InstitutionalMemory + """ Privileges given to a user relevant to this entity """ diff --git a/datahub-web-react/src/graphql/glossaryNode.graphql b/datahub-web-react/src/graphql/glossaryNode.graphql index 31ef4cc667..25a05cc17b 100644 --- a/datahub-web-react/src/graphql/glossaryNode.graphql +++ b/datahub-web-react/src/graphql/glossaryNode.graphql @@ -35,6 +35,9 @@ fragment glossaryNodeFields on GlossaryNode { autoRenderAspects: aspects(input: { autoRenderOnly: true }) { ...autoRenderAspectFields } + institutionalMemory { + ...institutionalMemoryFields + } structuredProperties { properties { ...structuredPropertiesFields