diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/corpgroup/mappers/CorpGroupPropertiesMapper.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/corpgroup/mappers/CorpGroupPropertiesMapper.java index 858342b15631d8..266d8be67cb061 100644 --- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/corpgroup/mappers/CorpGroupPropertiesMapper.java +++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/types/corpgroup/mappers/CorpGroupPropertiesMapper.java @@ -1,5 +1,6 @@ package com.linkedin.datahub.graphql.types.corpgroup.mappers; +import com.linkedin.data.template.GetMode; import com.linkedin.datahub.graphql.generated.CorpGroupProperties; import com.linkedin.datahub.graphql.types.mappers.ModelMapper; @@ -24,6 +25,7 @@ public CorpGroupProperties apply(@Nonnull final com.linkedin.identity.CorpGroupI result.setEmail(info.getEmail()); result.setDescription(info.getDescription()); result.setDisplayName(info.getDisplayName()); + result.setSlack(info.getSlack(GetMode.DEFAULT)); return result; } } diff --git a/datahub-graphql-core/src/main/resources/entity.graphql b/datahub-graphql-core/src/main/resources/entity.graphql index 7a52abc35a0280..b5e7d1fecb94de 100644 --- a/datahub-graphql-core/src/main/resources/entity.graphql +++ b/datahub-graphql-core/src/main/resources/entity.graphql @@ -3224,6 +3224,11 @@ type CorpGroupProperties { email of this group """ email: String + + """ + Slack handle for the group + """ + slack: String } """ diff --git a/datahub-web-react/src/app/entity/group/GroupProfile.tsx b/datahub-web-react/src/app/entity/group/GroupProfile.tsx index 616236ead2ac59..8fb37b3d58c9b2 100644 --- a/datahub-web-react/src/app/entity/group/GroupProfile.tsx +++ b/datahub-web-react/src/app/entity/group/GroupProfile.tsx @@ -103,7 +103,7 @@ export default function GroupProfile() { data?.corpGroup?.info?.displayName || undefined, email: data?.corpGroup?.editableProperties?.email || data?.corpGroup?.properties?.email || undefined, - slack: data?.corpGroup?.editableProperties?.slack || undefined, + slack: data?.corpGroup?.editableProperties?.slack || data?.corpGroup?.properties?.slack || undefined, aboutText: data?.corpGroup?.editableProperties?.description || data?.corpGroup?.properties?.description || undefined, groupMemberRelationships: groupMemberRelationships as EntityRelationshipsResult, diff --git a/datahub-web-react/src/graphql/group.graphql b/datahub-web-react/src/graphql/group.graphql index a992187f2a0c89..9aa6e2b005f16c 100644 --- a/datahub-web-react/src/graphql/group.graphql +++ b/datahub-web-react/src/graphql/group.graphql @@ -21,6 +21,7 @@ query getGroup($urn: String!, $membersCount: Int!) { displayName description email + slack } ownership { ...ownershipFields @@ -217,4 +218,4 @@ mutation updateCorpGroupProperties($urn: String!, $input: CorpGroupUpdateInput!) updateCorpGroupProperties(urn: $urn, input: $input) { urn } -} \ No newline at end of file +} diff --git a/metadata-ingestion/examples/mce_files/bootstrap_mce.json b/metadata-ingestion/examples/mce_files/bootstrap_mce.json index fcbf7cb9937597..3ba208366caa8a 100644 --- a/metadata-ingestion/examples/mce_files/bootstrap_mce.json +++ b/metadata-ingestion/examples/mce_files/bootstrap_mce.json @@ -83,7 +83,8 @@ "email": "jdoe@linkedin.com", "admins": ["urn:li:corpuser:jdoe", "urn:li:corpuser:datahub"], "members": ["urn:li:corpuser:jdoe", "urn:li:corpuser:datahub"], - "groups": [] + "groups": [], + "slack": "bfoo-squad" } } ] diff --git a/metadata-models/src/main/pegasus/com/linkedin/identity/CorpGroupInfo.pdl b/metadata-models/src/main/pegasus/com/linkedin/identity/CorpGroupInfo.pdl index f1427cc8fa01c8..83259962ad07fd 100644 --- a/metadata-models/src/main/pegasus/com/linkedin/identity/CorpGroupInfo.pdl +++ b/metadata-models/src/main/pegasus/com/linkedin/identity/CorpGroupInfo.pdl @@ -73,4 +73,8 @@ record CorpGroupInfo { } description: optional string + /** + * Slack channel for the group + */ + slack: optional string } \ No newline at end of file diff --git a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.aspects.snapshot.json b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.aspects.snapshot.json index 19517d9694ec13..a3abf91684306b 100644 --- a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.aspects.snapshot.json +++ b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.aspects.snapshot.json @@ -380,7 +380,7 @@ }, { "name" : "message", "type" : "string", - "doc" : "Additional message to keep track of in the event", + "doc" : "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually.", "optional" : true } ] }, @@ -1891,6 +1891,11 @@ "Searchable" : { "fieldType" : "TEXT_PARTIAL" } + }, { + "name" : "slack", + "type" : "string", + "doc" : "Slack channel for the group", + "optional" : true } ], "Aspect" : { "EntityUrns" : [ "com.linkedin.common.CorpGroupUrn" ], diff --git a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entities.snapshot.json b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entities.snapshot.json index 3e287c09deff2f..dbaaed845079c7 100644 --- a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entities.snapshot.json +++ b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entities.snapshot.json @@ -139,7 +139,7 @@ }, { "name" : "message", "type" : "string", - "doc" : "Additional message to keep track of in the event", + "doc" : "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually.", "optional" : true } ] }, @@ -2139,6 +2139,11 @@ "Searchable" : { "fieldType" : "TEXT_PARTIAL" } + }, { + "name" : "slack", + "type" : "string", + "doc" : "Slack channel for the group", + "optional" : true } ], "Aspect" : { "EntityUrns" : [ "com.linkedin.common.CorpGroupUrn" ], diff --git a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesV2.snapshot.json b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesV2.snapshot.json index d6efbb364dbb0c..de65aa841876f2 100644 --- a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesV2.snapshot.json +++ b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesV2.snapshot.json @@ -32,7 +32,7 @@ }, { "name" : "message", "type" : "string", - "doc" : "Additional message to keep track of in the event", + "doc" : "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually.", "optional" : true } ] }, "com.linkedin.common.Time", "com.linkedin.common.Urn", { diff --git a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesVersionedV2.snapshot.json b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesVersionedV2.snapshot.json index 865fbf7f49c2e2..b7bcd8db99691e 100644 --- a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesVersionedV2.snapshot.json +++ b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.entitiesVersionedV2.snapshot.json @@ -32,7 +32,7 @@ }, { "name" : "message", "type" : "string", - "doc" : "Additional message to keep track of in the event", + "doc" : "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually.", "optional" : true } ] }, "com.linkedin.common.Time", "com.linkedin.common.Urn", { diff --git a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.runs.snapshot.json b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.runs.snapshot.json index 7e24e534635a10..5bd6c623126b0e 100644 --- a/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.runs.snapshot.json +++ b/metadata-service/restli-api/src/main/snapshot/com.linkedin.entity.runs.snapshot.json @@ -139,7 +139,7 @@ }, { "name" : "message", "type" : "string", - "doc" : "Additional message to keep track of in the event", + "doc" : "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually.", "optional" : true } ] }, @@ -1642,6 +1642,11 @@ "Searchable" : { "fieldType" : "TEXT_PARTIAL" } + }, { + "name" : "slack", + "type" : "string", + "doc" : "Slack channel for the group", + "optional" : true } ], "Aspect" : { "EntityUrns" : [ "com.linkedin.common.CorpGroupUrn" ], diff --git a/metadata-service/restli-api/src/main/snapshot/com.linkedin.lineage.relationships.snapshot.json b/metadata-service/restli-api/src/main/snapshot/com.linkedin.lineage.relationships.snapshot.json index 640a4809cb0946..519af7d1a9e1d6 100644 --- a/metadata-service/restli-api/src/main/snapshot/com.linkedin.lineage.relationships.snapshot.json +++ b/metadata-service/restli-api/src/main/snapshot/com.linkedin.lineage.relationships.snapshot.json @@ -32,7 +32,7 @@ }, { "name" : "message", "type" : "string", - "doc" : "Additional message to keep track of in the event", + "doc" : "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually.", "optional" : true } ] }, { diff --git a/metadata-service/restli-api/src/main/snapshot/com.linkedin.platform.platform.snapshot.json b/metadata-service/restli-api/src/main/snapshot/com.linkedin.platform.platform.snapshot.json index 4b175b2643ea03..535db128dd16c0 100644 --- a/metadata-service/restli-api/src/main/snapshot/com.linkedin.platform.platform.snapshot.json +++ b/metadata-service/restli-api/src/main/snapshot/com.linkedin.platform.platform.snapshot.json @@ -139,7 +139,7 @@ }, { "name" : "message", "type" : "string", - "doc" : "Additional message to keep track of in the event", + "doc" : "Additional context around how DataHub was informed of the particular change. For example: was the change created by an automated process, or manually.", "optional" : true } ] }, @@ -2133,6 +2133,11 @@ "Searchable" : { "fieldType" : "TEXT_PARTIAL" } + }, { + "name" : "slack", + "type" : "string", + "doc" : "Slack channel for the group", + "optional" : true } ], "Aspect" : { "EntityUrns" : [ "com.linkedin.common.CorpGroupUrn" ],