Event-driven interface for responding to real-time changes in the DataHub metadata graph. The Actions Framework consumes Metadata Change Log events and Platform Events from Kafka topics, enabling seamless integration of DataHub into a broader event-based architecture. Events are emitted when any aspect on the DataHub metadata graph is changed, including creates, updates, and removals of both versioned and time-series aspects.
View SpecView on GitHubData CatalogData DiscoveryData GovernanceData LineageMetadataAsyncAPIWebhooksEvents
Channels
MetadataChangeLog_Versioned_v1
subscribeonVersionedMetadataChange
Receive versioned metadata change log events
Kafka topic for versioned aspect changes. Emitted when any versioned aspect on the DataHub metadata graph is created, updated, or removed. Versioned aspects maintain numeric versions and are persisted in the relational database. Examples include ownership, tags, glossary terms, dataset properties, and schema metadata.
MetadataChangeLog_Timeseries_v1
subscribeonTimeseriesMetadataChange
Receive time-series metadata change log events
Kafka topic for time-series aspect changes. Emitted when any time-series aspect on the DataHub metadata graph is created or updated. Time-series aspects carry timestamps and are stored in search indexes. Examples include dataset profiles, data quality assertions, and usage statistics.
PlatformEvent_v1
subscribeonPlatformEvent
Receive platform events
Kafka topic for platform-level events. Contains semantic change events that represent higher-level operations on the DataHub platform, such as entity creation, tag additions, ownership changes, and glossary term assignments. The Entity Change Event is the most important platform event type and serves as a key component of the DataHub Actions Framework.
Messages
✉
MetadataChangeLogEvent
Metadata Change Log Event
Emitted when any aspect on the DataHub metadata graph is changed.
✉
EntityChangeEvent
Entity Change Event
Semantic change event representing a meaningful operation on an entity.
Servers
kafka
kafkaBroker{kafkaHost}:{kafkaPort}
Kafka broker for consuming DataHub metadata events. The default event source used by the DataHub Actions Framework subscribes to Kafka topics that stream metadata changes and platform events from the DataHub metadata service.
asyncapi: 2.6.0
info:
title: DataHub Actions Framework Events
description: >-
Event-driven interface for responding to real-time changes in the DataHub
metadata graph. The Actions Framework consumes Metadata Change Log events
and Platform Events from Kafka topics, enabling seamless integration of
DataHub into a broader event-based architecture. Events are emitted when
any aspect on the DataHub metadata graph is changed, including creates,
updates, and removals of both versioned and time-series aspects.
version: '1.4.0'
contact:
name: DataHub Project
url: https://datahubproject.io
license:
name: Apache License 2.0
url: https://github.com/datahub-project/datahub/blob/master/LICENSE
externalDocs:
description: DataHub Actions Framework Documentation
url: https://docs.datahub.com/docs/actions
servers:
kafkaBroker:
url: '{kafkaHost}:{kafkaPort}'
protocol: kafka
description: >-
Kafka broker for consuming DataHub metadata events. The default event
source used by the DataHub Actions Framework subscribes to Kafka topics
that stream metadata changes and platform events from the DataHub
metadata service.
variables:
kafkaHost:
default: localhost
description: Kafka broker hostname
kafkaPort:
default: '9092'
description: Kafka broker port
security:
- saslPlain: []
channels:
MetadataChangeLog_Versioned_v1:
description: >-
Kafka topic for versioned aspect changes. Emitted when any versioned
aspect on the DataHub metadata graph is created, updated, or removed.
Versioned aspects maintain numeric versions and are persisted in the
relational database. Examples include ownership, tags, glossary terms,
dataset properties, and schema metadata.
subscribe:
operationId: onVersionedMetadataChange
summary: Receive versioned metadata change log events
description: >-
Subscribe to versioned metadata change events emitted when entities
have their versioned aspects modified. These events contain the new
aspect value, the previous aspect value (if applicable), the change
type, and audit information about who made the change and when.
message:
$ref: '#/components/messages/MetadataChangeLogEvent'
MetadataChangeLog_Timeseries_v1:
description: >-
Kafka topic for time-series aspect changes. Emitted when any time-series
aspect on the DataHub metadata graph is created or updated. Time-series
aspects carry timestamps and are stored in search indexes. Examples
include dataset profiles, data quality assertions, and usage statistics.
subscribe:
operationId: onTimeseriesMetadataChange
summary: Receive time-series metadata change log events
description: >-
Subscribe to time-series metadata change events emitted when entities
have their time-series aspects modified. These events are useful for
tracking operational metadata such as profiling results, quality checks,
and usage patterns over time.
message:
$ref: '#/components/messages/MetadataChangeLogEvent'
PlatformEvent_v1:
description: >-
Kafka topic for platform-level events. Contains semantic change events
that represent higher-level operations on the DataHub platform, such as
entity creation, tag additions, ownership changes, and glossary term
assignments. The Entity Change Event is the most important platform event
type and serves as a key component of the DataHub Actions Framework.
subscribe:
operationId: onPlatformEvent
summary: Receive platform events
description: >-
Subscribe to platform events that represent semantic changes in the
DataHub metadata graph. These events provide a higher-level abstraction
over raw metadata changes and are useful for triggering actions based
on specific business-meaningful operations.
message:
$ref: '#/components/messages/EntityChangeEvent'
components:
securitySchemes:
saslPlain:
type: plain
description: >-
SASL/PLAIN authentication for Kafka broker connections. Configure
with the appropriate credentials for your Kafka deployment.
messages:
MetadataChangeLogEvent:
name: MetadataChangeLogEvent_v1
title: Metadata Change Log Event
summary: >-
Emitted when any aspect on the DataHub metadata graph is changed.
description: >-
A metadata change log event recording a modification to an entity's
aspect in the DataHub metadata graph. Contains the entity URN, entity
type, change type, aspect name, new aspect value, previous aspect
value, system metadata, and audit information. These events are the
primary mechanism for tracking all metadata modifications in DataHub.
contentType: application/json
payload:
$ref: '#/components/schemas/MetadataChangeLogEventPayload'
EntityChangeEvent:
name: EntityChangeEvent_v1
title: Entity Change Event
summary: >-
Semantic change event representing a meaningful operation on an entity.
description: >-
An entity change event representing a semantic change in the DataHub
metadata graph. Unlike raw metadata change log events, entity change
events provide higher-level abstractions that describe business-meaningful
operations such as tag additions, ownership assignments, and glossary
term linkages.
contentType: application/json
payload:
$ref: '#/components/schemas/EntityChangeEventPayload'
schemas:
MetadataChangeLogEventPayload:
type: object
description: >-
Payload of a Metadata Change Log event containing the full details
of a metadata change in the DataHub graph.
required:
- entityUrn
- entityType
- changeType
- aspectName
properties:
entityUrn:
type: string
description: >-
The unique URN identifier for the entity being changed.
example: urn:li:dataset:(urn:li:dataPlatform:hive,SampleHiveDataset,PROD)
entityType:
type: string
description: >-
The type of the entity being changed, such as dataset, chart,
dashboard, dataFlow, dataJob, corpUser, corpGroup, tag, domain,
glossaryTerm, or glossaryNode.
example: dataset
changeType:
type: string
description: >-
The type of change that occurred on the aspect.
enum:
- UPSERT
- DELETE
- CREATE
- RESTATE
aspectName:
type: string
description: >-
The name of the entity aspect that was changed, such as
datasetProperties, schemaMetadata, ownership, globalTags,
glossaryTerms, or status.
example: globalTags
aspect:
$ref: '#/components/schemas/SerializedAspect'
previousAspectValue:
$ref: '#/components/schemas/SerializedAspect'
systemMetadata:
$ref: '#/components/schemas/SystemMetadata'
created:
$ref: '#/components/schemas/AuditStamp'
EntityChangeEventPayload:
type: object
description: >-
Payload of an Entity Change Event representing a semantic change
in the DataHub metadata graph.
required:
- entityUrn
- entityType
- category
- operation
properties:
entityUrn:
type: string
description: >-
The unique URN identifier for the entity that was changed.
example: urn:li:dataset:(urn:li:dataPlatform:hive,SampleHiveDataset,PROD)
entityType:
type: string
description: >-
The type of the entity that was changed.
example: dataset
category:
type: string
description: >-
The category of the change, representing the semantic domain
of the modification.
enum:
- TAG
- GLOSSARY_TERM
- OWNERSHIP
- TECHNICAL_SCHEMA
- DOCUMENTATION
- DOMAIN
- DEPRECATION
- LIFECYCLE
operation:
type: string
description: >-
The semantic operation that was performed.
enum:
- ADD
- REMOVE
- MODIFY
modifier:
type: string
description: >-
Additional context about the change, such as the specific tag
URN or glossary term URN that was added or removed.
example: urn:li:tag:PII
parameters:
type: object
description: >-
Additional parameters providing context for the change event.
additionalProperties:
type: string
auditStamp:
$ref: '#/components/schemas/AuditStamp'
SerializedAspect:
type: object
description: >-
A serialized aspect value containing the content type and the
JSON-encoded aspect payload.
properties:
contentType:
type: string
description: >-
The content type of the serialized aspect value.
example: application/json
value:
type: string
description: >-
The JSON-serialized aspect value following the PDL schema
definition for the given aspect name.
SystemMetadata:
type: object
description: >-
System-level metadata associated with a metadata change, providing
provenance and tracking information.
properties:
runId:
type: string
description: >-
The identifier of the ingestion run that produced this change.
lastObserved:
type: integer
format: int64
description: >-
The timestamp when this metadata was last observed in epoch
milliseconds.
registryName:
type: string
description: >-
The name of the model registry associated with this change.
registryVersion:
type: string
description: >-
The version of the model registry.
AuditStamp:
type: object
description: >-
An audit stamp recording who made a change and when.
properties:
time:
type: integer
format: int64
description: >-
The timestamp of the change in epoch milliseconds.
actor:
type: string
description: >-
The URN of the actor who made the change.
example: urn:li:corpuser:datahub