docs/managed-datahub/datahub-api/entity-events-api.md
import FeatureAvailability from '@site/src/components/FeatureAvailability';
The Events API allows you to integrate changes happening on the DataHub Metadata Graph in real time into a broader event-based architecture.
Real-time use cases broadly fall into the following categories:
Each entity event is serialized to JSON & follows a common base structure.
Common Fields
| Name | Type | Description | Optional |
|---|---|---|---|
| entityUrn | String | The unique identifier for the Entity being changed. For example, a Dataset's urn. | False |
| entityType | String | The type of the entity being changed. Supported values include dataset, chart, dashboard, dataFlow (Pipeline), dataJob (Task), domain, tag, glossaryTerm, corpGroup, & corpUser. | False |
| category | String | The category of the change, related to the kind of operation that was performed. Examples include TAG, GLOSSARY_TERM, DOMAIN, LIFECYCLE, and more. | False |
| operation | String | The operation being performed on the entity given the category. For example, ADD ,REMOVE, MODIFY. For the set of valid operations, see the full catalog below. | False |
| modifier | String | The modifier that has been applied to the entity. The value depends on the category. An example includes the URN of a tag being applied to a Dataset or Schema Field. | True |
| parameters | Dict | Additional key-value parameters used to provide specific context. The precise contents depends on the category + operation of the event. See the catalog below for a full summary of the combinations. | True |
| auditStamp.actor | String | The urn of the actor who triggered the change. | False |
| auditStamp.time | Number | The timestamp in milliseconds corresponding to the event. | False |
For example, an event indicating that a Tag has been added to a particular Dataset would populate each of these fields:
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "TAG",
"operation": "ADD",
"modifier": "urn:li:tag:PII",
"parameters": {
"tagUrn": "urn:li:tag:PII"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
In the following sections, we'll take a closer look at the purpose and structure of each supported event type.
Below, we will review the catalog of events available for consumption.
This event is emitted when a Tag has been added to an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| tagUrn | String | The urn of the tag that has been added. | False |
| fieldPath | String | The path of the schema field which the tag is being added to. This field is only present if the entity type is schemaField. | True |
| parentUrn | String | The urn of a parent entity. This field is only present if the entity type is schemaField, and will contain the parent Dataset to which the field belongs. | True |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "TAG",
"operation": "ADD",
"modifier": "urn:li:tag:PII"
"parameters": {
"tagUrn": "urn:li:tag:PII"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a Tag has been removed from an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| tagUrn | String | The urn of the tag that has been removed. | False |
| fieldPath | String | The path of the schema field which the tag is being removed from. This field is only present if the entity type is schemaField. | True |
| parentUrn | String | The urn of a parent entity. This field is only present if the entity type is schemaField, and will contain the parent Dataset to which the field belongs. | True |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "TAG",
"operation": "REMOVE",
"modifier": "urn:li:tag:PII",
"parameters": {
"tagUrn": "urn:li:tag:PII"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a Glossary Term has been added to an entity on DataHub.
Header
<table><thead><tr><th>Category</th><th>Operation</th><th>Entity Types</th><th data-hidden></th></tr></thead><tbody><tr><td>GLOSSARY_TERM</td><td>ADD</td><td><code>dataset</code>, <code>dashboard</code>, <code>chart</code>, <code>dataJob</code>, <code>container</code>, <code>dataFlow</code> , <code>schemaField</code></td><td></td></tr></tbody></table>| Name | Type | Description | Optional | |
|---|---|---|---|---|
| termUrn | String | The urn of the glossary term that has been added. | False | |
| fieldPath | String | The path of the schema field to which the term is being added. This field is only present if the entity type is schemaField. | True | |
| parentUrn | String | The urn of a parent entity. This field is only present if the entity type is schemaField, and will contain the parent Dataset to which the field belongs. | True |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "GLOSSARY_TERM",
"operation": "ADD",
"modifier": "urn:li:glossaryTerm:ExampleNode.ExampleTerm",
"parameters": {
"termUrn": "urn:li:glossaryTerm:ExampleNode.ExampleTerm"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a Glossary Term has been removed from an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| termUrn | String | The urn of the glossary term that has been removed. | False |
| fieldPath | String | The path of the schema field from which the term is being removed. This field is only present if the entity type is schemaField. | True |
| parentUrn | String | The urn of a parent entity. This field is only present if the entity type is schemaField, and will contain the parent Dataset to which the field belongs. | True |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "GLOSSARY_TERM",
"operation": "REMOVE",
"modifier": "urn:li:glossaryTerm:ExampleNode.ExampleTerm",
"parameters": {
"termUrn": "urn:li:glossaryTerm:ExampleNode.ExampleTerm"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when Domain has been added to an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| domainUrn | String | The urn of the domain that has been added. | False |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "DOMAIN",
"operation": "ADD",
"modifier": "urn:li:domain:ExampleDomain",
"parameters": {
"domainUrn": "urn:li:domain:ExampleDomain"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when Domain has been removed from an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| domainUrn | String | The urn of the domain that has been removed. | False |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "DOMAIN",
"operation": "REMOVE",
"modifier": "urn:li:domain:ExampleDomain",
"parameters": {
"domainUrn": "urn:li:domain:ExampleDomain"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a new owner has been assigned to an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| ownerUrn | String | The urn of the owner that has been added. | False |
| ownerType | String | The type of the owner that has been added. TECHNICAL_OWNER, BUSINESS_OWNER, DATA_STEWARD, NONE, etc. | False |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "OWNER",
"operation": "ADD",
"modifier": "urn:li:corpuser:jdoe",
"parameters": {
"ownerUrn": "urn:li:corpuser:jdoe",
"ownerType": "BUSINESS_OWNER"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when an existing owner has been removed from an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| ownerUrn | String | The urn of the owner that has been removed. | False |
| ownerType | String | The type of the owner that has been removed. TECHNICAL_OWNER, BUSINESS_OWNER, DATA_STEWARD, NONE, etc. | False |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "OWNER",
"operation": "REMOVE",
"modifier": "urn:li:corpuser:jdoe",
"parameters": {
"ownerUrn": "urn:li:corpuser:jdoe",
"ownerType": "BUSINESS_OWNER"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a description has been added to an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| description | String | The description that has been added. | False |
{
"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
}
}
This event is emitted when an existing description has been removed from an entity on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| description | String | The description that has been removed. | False |
{
"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
}
}
This event is emitted when the deprecation status of an entity has been modified on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| status | String | The new deprecation status of the entity, either DEPRECATED or ACTIVE. | False |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "DEPRECATION",
"operation": "MODIFY",
"modifier": "DEPRECATED",
"parameters": {
"status": "DEPRECATED"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a new field has been added to a Dataset Schema.
| Name | Type | Description | Optional |
|---|---|---|---|
| fieldUrn | String | The urn of the new schema field. | False |
| fieldPath | String | The path of the new field. For more information about field paths, check out Dataset Field Paths Explained | False |
| nullable | Boolean | Whether the new field is nullable. | False |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "TECHNICAL_SCHEMA",
"operation": "ADD",
"modifier": "urn:li:schemaField:(urn:li:dataset:abc,newFieldName)",
"parameters": {
"fieldUrn": "urn:li:schemaField:(urn:li:dataset:abc,newFieldName)",
"fieldPath": "newFieldName",
"nullable": false
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a new field has been remove from a Dataset Schema.
| Name | Type | Description | Optional |
|---|---|---|---|
| fieldUrn | String | The urn of the removed schema field. | False |
| fieldPath | String | The path of the removed field. For more information about field paths, check out Dataset Field Paths Explained | False |
| nullable | Boolean | Whether the removed field is nullable. | False |
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "TECHNICAL_SCHEMA",
"operation": "REMOVE",
"modifier": "urn:li:schemaField:(urn:li:dataset:abc,newFieldName)",
"parameters": {
"fieldUrn": "urn:li:schemaField:(urn:li:dataset:abc,newFieldName)",
"fieldPath": "newFieldName",
"nullable": false
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a new entity has been created on DataHub.
None
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "LIFECYCLE",
"operation": "CREATE",
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a new entity has been soft-deleted on DataHub.
None
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "LIFECYCLE",
"operation": "SOFT_DELETE",
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a new entity has been hard-deleted on DataHub.
None
{
"entityUrn": "urn:li:dataset:abc",
"entityType": "dataset",
"category": "LIFECYCLE",
"operation": "HARD_DELETE",
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when an Assertion has been run has succeeded on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| runResult | String | The result of the run, either SUCCESS or FAILURE. | False |
| runId | String | Native (platform-specific) identifier for this run. | False |
| aserteeUrn | String | Urn of entity on which the assertion is applicable. | False |
{
"entityUrn": "urn:li:assertion:abc",
"entityType": "assertion",
"category": "RUN",
"operation": "COMPLETED",
"parameters": {
"runResult": "SUCCESS",
"runId": "123",
"asserteeUrn": "urn:li:dataset:def"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a Data Process Instance Run has STARTED on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| attempt | Integer | The number of attempts that have been made. | True |
| dataFlowUrn | String | The urn of the associated Data Flow. Only filled in if this run is associated with a Data Flow. | True |
| dataJobUrn | String | The urn of the associated Data Flow. Only filled in if this run is associated with a Data Job. | True |
| parentInstanceUrn | String | Urn of the parent DataProcessInstance (if there is one). | True |
{
"entityUrn": "urn:li:dataProcessInstance:abc",
"entityType": "dataProcessInstance",
"category": "RUN",
"operation": "STARTED",
"parameters": {
"dataFlowUrn": "urn:li:dataFlow:def",
"attempt": "1",
"parentInstanceUrn": ""urn:li:dataProcessInstance:ghi"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a Data Process Instance Run has been COMPLETED on DataHub.
| Name | Type | Description | Optional |
|---|---|---|---|
| runResult | String | The result of the run, one of SUCCESS , FAILURE, SKIPPED, or UP_FOR_RETRY . | False |
| attempt | Integer | The number of attempts that have been made. | True |
| dataFlowUrn | String | The urn of the associated Data Flow. Only filled in if this run is associated with a Data Flow. | True |
| dataJobUrn | String | The urn of the associated Data Flow. Only filled in if this run is associated with a Data Job. | True |
| parentInstanceUrn | String | Urn of the parent DataProcessInstance. | True |
{
"entityUrn": "urn:li:dataProcessInstance:abc",
"entityType": "dataProcessInstance",
"category": "RUN",
"operation": "COMPLETED",
"parameters": {
"runResult": "SUCCESS"
"attempt": "2",
"dataFlowUrn": "urn:li:dataFlow:def",
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when a new Action Request (Metadata Proposal) has been created.
These are the common parameters for all Action Request create events.
| Name | Type | Description | Optional |
|---|---|---|---|
| actionRequestType | String | The type of Action Request. One of TAG_ASSOCIATION, TERM_ASSOCIATION, CREATE_GLOSSARY_NODE, CREATE_GLOSSARY_TERM, or UPDATE_DESCRIPTION. | False |
| resourceType | String | The type of entity this Action Request is applied on, such as dataset. | True |
| resourceUrn | String | The entity this Action Request is applied on. | True |
| subResourceType | String | Filled if this Action Request is applied on a sub-resource, such as a schemaField. | True |
| subResource | String | Identifier of the sub-resource if this proposal is applied on one. | True |
Parameters specific to different proposal types are listed below.
| Name | Type | Description | Optional |
|---|---|---|---|
| tagUrn | String | The urn of the Tag that would be applied. | False |
{
"entityUrn": "urn:li:actionRequest:abc",
"entityType": "actionRequest",
"category": "LIFECYCLE",
"operation": "CREATED",
"parameters": {
"actionRequestType": "TAG_ASSOCIATION",
"resourceType": "dataset",
"resourceUrn": "urn:li:dataset:snowflakeDataset,
"tagUrn": "urn:li:tag:Classification"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
| Name | Type | Description | Optional |
|---|---|---|---|
| termUrn | String | The urn of the Glossary Term that would be applied. | False |
{
"entityUrn": "urn:li:actionRequest:abc",
"entityType": "actionRequest",
"category": "LIFECYCLE",
"operation": "CREATED",
"parameters": {
"actionRequestType": "TERM_ASSOCIATION",
"resourceType": "dataset",
"resourceUrn": "urn:li:dataset:snowflakeDataset,
"termUrn": "urn:li:glossaryTerm:Classification"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
| Name | Type | Description | Optional |
|---|---|---|---|
| glossaryEntityName | String | The name of the Glossary Entity that would be created. | False |
| parentNodeUrn | String | The urn of the Parent Node that would be associated with the new Glossary Entity. | True |
| description | String | The description of the new Glossary Entity. | True |
{
"entityUrn": "urn:li:actionRequest:abc",
"entityType": "actionRequest",
"category": "LIFECYCLE",
"operation": "CREATED",
"parameters": {
"actionRequestType": "CREATE_GLOSSARY_TERM",
"resourceType": "glossaryNode",
"glossaryEntityName": "PII",
"parentNodeUrn": "urn:li:glossaryNode:Classification",
"description": "Personally Identifiable Information"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
| Name | Type | Description | Optional |
|---|---|---|---|
| description | String | The proposed updated description. | False |
{
"entityUrn": "urn:li:actionRequest:abc",
"entityType": "actionRequest",
"category": "LIFECYCLE",
"operation": "CREATED",
"parameters": {
"actionRequestType": "UPDATE_DESCRIPTION",
"resourceType": "glossaryNode",
"description": "Personally Identifiable Information"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when an existing Action Request (proposal) changes status. For example, this event will be emitted when an Action Request transitions from pending to completed.
These are the common parameters for all parameters.
| Name | Type | Description | Optional |
|---|---|---|---|
| actionRequestStatus | String | The status of the Action Request. | False |
| actionRequestResult | String | Only filled if the actionRequestStatus is COMPLETED. Either ACCEPTED or REJECTED. | True |
{
"entityUrn": "urn:li:actionRequest:abc",
"entityType": "actionRequest",
"category": "LIFECYCLE",
"operation": "COMPLETED",
"parameters": {
"actionRequestStatus": "COMPLETED",
"actionRequestResult": "ACCEPTED"
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}
This event is emitted when an Incident has been created or it's status changes.
| Name | Type | Description | Optional |
|---|---|---|---|
| entities | String | The list of entities associated with the incident | False |
{
"entityUrn": "urn:li:incident:16ff200a-0ac5-4a7d-bbab-d4bdb4f831f9",
"entityType": "incident",
"category": "INCIDENT",
"operation": "ACTIVE",
"parameters": {
"entities": "[urn:li:dataset:abc, urn:li:dataset:abc2]",
},
"auditStamp": {
"actor": "urn:li:corpuser:jdoe",
"time": 1649953100653
}
}