From 40a0489a801e8d3749c06268aa0d0a4f0da16682 Mon Sep 17 00:00:00 2001
From: Ellie O'Neil <110510035+eboneil@users.noreply.github.com>
Date: Tue, 9 Apr 2024 02:46:44 -0700
Subject: [PATCH] feat(api): add description parameter to editable dataset
change entity event (#10237)
---
.../datahub-api/entity-events-api.md | 64 +++++++++++++++++++
...DatasetPropertiesChangeEventGenerator.java | 4 ++
...DatasetPropertiesChangeEventGenerator.java | 4 ++
3 files changed, 72 insertions(+)
diff --git a/docs/managed-datahub/datahub-api/entity-events-api.md b/docs/managed-datahub/datahub-api/entity-events-api.md
index 23499904d5505..ebc3bb97f9554 100644
--- a/docs/managed-datahub/datahub-api/entity-events-api.md
+++ b/docs/managed-datahub/datahub-api/entity-events-api.md
@@ -346,6 +346,70 @@ This event is emitted when an existing owner has been removed from an entity on
}
```
+### Add Description Event
+
+This event is emitted when a description has been added to an entity on DataHub.
+
+#### Header
+
+
Category | Operation | Entity Types | |
---|
DOCUMENTATION | ADD | dataset , dashboard , chart , dataJob , dataFlow , container , glossaryTerm , domain , tag | |
+
+#### Parameters
+
+| Name | Type | Description | Optional |
+|-------------| ------ |--------------------------------------------------------------------------------------------------------------| -------- |
+| description | String | The description that has been added. | False |
+
+#### Sample Event
+
+```
+{
+ "entityUrn": "urn:li:dataset:abc",
+ "entityType": "dataset",
+ "category": "DOCUMENTATION",
+ "operation": "ADD",
+ "parameters": {
+ "description": "This is a new description"
+ },
+ "auditStamp": {
+ "actor": "urn:li:corpuser:jdoe",
+ "time": 1706646452982
+ }
+}
+```
+
+### Remove Description Event
+
+This event is emitted when an existing description has been removed from an entity on DataHub.
+
+#### Header
+
+Category | Operation | Entity Types | |
---|
DOCUMENTATION | REMOVE | dataset , dashboard , chart , dataJob , container ,dataFlow , glossaryTerm , domain , tag | |
+
+#### Parameters
+
+| Name | Type | Description | Optional |
+|-------------| ------ |----------------------------------------| -------- |
+| description | String | The description that has been removed. | False |
+
+#### Sample Event
+
+```
+{
+ "entityUrn": "urn:li:dataset:abc",
+ "entityType": "dataset",
+ "category": "DOCUMENTATION",
+ "operation": "REMOVE",
+ "parameters": {
+ "description": "This is the removed description"
+ },
+ "auditStamp": {
+ "actor": "urn:li:corpuser:jdoe",
+ "time": 1706646452982
+ }
+}
+```
+
### Modify Deprecation Event
This event is emitted when the deprecation status of an entity has been modified on DataHub.
diff --git a/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/DatasetPropertiesChangeEventGenerator.java b/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/DatasetPropertiesChangeEventGenerator.java
index 850df81675b8c..27ccb777a6677 100644
--- a/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/DatasetPropertiesChangeEventGenerator.java
+++ b/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/DatasetPropertiesChangeEventGenerator.java
@@ -5,6 +5,7 @@
import com.datahub.util.RecordUtils;
import com.github.fge.jsonpatch.JsonPatch;
+import com.google.common.collect.ImmutableMap;
import com.linkedin.common.AuditStamp;
import com.linkedin.common.urn.Urn;
import com.linkedin.dataset.DatasetProperties;
@@ -42,6 +43,7 @@ private static List computeDiffs(
.operation(ChangeOperation.ADD)
.semVerChange(SemanticChangeType.MINOR)
.description(String.format(DESCRIPTION_ADDED, entityUrn, targetDescription))
+ .parameters(ImmutableMap.of("description", targetDescription))
.auditStamp(auditStamp)
.build());
} else if (baseDescription != null && targetDescription == null) {
@@ -53,6 +55,7 @@ private static List computeDiffs(
.operation(ChangeOperation.REMOVE)
.semVerChange(SemanticChangeType.MINOR)
.description(String.format(DESCRIPTION_REMOVED, entityUrn, baseDescription))
+ .parameters(ImmutableMap.of("description", baseDescription))
.auditStamp(auditStamp)
.build());
} else if (baseDescription != null
@@ -67,6 +70,7 @@ private static List computeDiffs(
.semVerChange(SemanticChangeType.MINOR)
.description(
String.format(DESCRIPTION_CHANGED, entityUrn, baseDescription, targetDescription))
+ .parameters(ImmutableMap.of("description", targetDescription))
.auditStamp(auditStamp)
.build());
}
diff --git a/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/EditableDatasetPropertiesChangeEventGenerator.java b/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/EditableDatasetPropertiesChangeEventGenerator.java
index 1ffcd3cfc2ba4..ed52b1df99981 100644
--- a/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/EditableDatasetPropertiesChangeEventGenerator.java
+++ b/metadata-io/src/main/java/com/linkedin/metadata/timeline/eventgenerator/EditableDatasetPropertiesChangeEventGenerator.java
@@ -4,6 +4,7 @@
import com.datahub.util.RecordUtils;
import com.github.fge.jsonpatch.JsonPatch;
+import com.google.common.collect.ImmutableMap;
import com.linkedin.common.AuditStamp;
import com.linkedin.common.urn.Urn;
import com.linkedin.dataset.EditableDatasetProperties;
@@ -57,6 +58,7 @@ private static ChangeEvent getDescriptionChangeEvent(
.operation(ChangeOperation.ADD)
.semVerChange(SemanticChangeType.MINOR)
.description(String.format(DESCRIPTION_ADDED, entityUrn, targetDescription))
+ .parameters(ImmutableMap.of("description", targetDescription))
.auditStamp(auditStamp)
.build();
} else if (baseDescription != null && targetDescription == null) {
@@ -67,6 +69,7 @@ private static ChangeEvent getDescriptionChangeEvent(
.operation(ChangeOperation.REMOVE)
.semVerChange(SemanticChangeType.MINOR)
.description(String.format(DESCRIPTION_REMOVED, entityUrn, baseDescription))
+ .parameters(ImmutableMap.of("description", baseDescription))
.auditStamp(auditStamp)
.build();
} else if (baseDescription != null
@@ -80,6 +83,7 @@ private static ChangeEvent getDescriptionChangeEvent(
.semVerChange(SemanticChangeType.MINOR)
.description(
String.format(DESCRIPTION_CHANGED, entityUrn, baseDescription, targetDescription))
+ .parameters(ImmutableMap.of("description", targetDescription))
.auditStamp(auditStamp)
.build();
}