Skip to content

BUSINESS_ATTRIBUTE_UPDATE event type

BUSINESS_ATTRIBUTE_UPDATE events are emitted whenever a custom metadata is changed on an asset in Atlan. This includes:

  • Adding custom metadata to an asset
  • Removing custom metadata from an asset
One BUSINESS_ATTRIBUTE_UPDATE event is emitted for each asset that is updated

So, for example, if you set 4 custom metadata attributes on an asset in Atlan, it will emit only 1 BUSINESS_ATTRIBUTE_UPDATE events.

The details of the updated asset will be in the message.entity portion of the event payload. The event payload shows the custom metadata that changed in the message.mutatedDetails portion of the event payload.

The custom metadata does not appear in message.entity

Note that the custom metadata does not appear in message.entity. You must look at the message.mutatedDetails to see the custom metadata.

Custom metadata uses internal Atlan IDs

Also note that the custom metadata values use Atlan's internal IDs in the event payload. You will need to translate these to the human-readable names you see in the Atlan UI. (The SDKs provide operations to do these lookups.)

Example BUSINESS_ATTRIBUTE_UPDATE event
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
{
  "source": {},
  "version": {
    "version": "1.0.0",
    "versionParts": [
      1
    ]
  },
  "msgCompressionKind": "NONE",
  "msgSplitIdx": 1,
  "msgSplitCount": 1,
  "msgSourceIP": "10.121.193.228",
  "msgCreatedBy": "",
  "msgCreationTime": 1667822461771,
  "spooled": false,
  "message": {
    "type": "ENTITY_NOTIFICATION_V2",
    "entity": {
      "typeName": "Table",
      "attributes": {
        "popularityScore": 1.17549435e-38,
        "lastSyncWorkflowName": "mabl-qa-006-crawler",
        "lastSyncRunAt": 1665132063880,
        "databaseName": "atlan_trial",
        "connectionQualifiedName": "default/postgres/1665131987",
        "assetDbtJobLastRunHasSourcesGenerated": false,
        "assetDbtJobLastRunHasDocsGenerated": false,
        "queryCount": 0,
        "isTemporary": false,
        "lastSyncRun": "atlan-postgres-1665131987-k9cds",
        "isPartitioned": false,
        "schemaName": "demo",
        "adminUsers": [],
        "partitionCount": 0,
        "queryUserCount": 0,
        "assetDbtJobLastRunUpdatedAt": 0,
        "ownerGroups": [],
        "sourceUpdatedAt": 0,
        "assetDbtJobLastRunArtifactsSaved": false,
        "isEditable": true,
        "announcementUpdatedAt": 0,
        "assetDbtJobLastRunStartedAt": 0,
        "isDiscoverable": true,
        "rowCount": 134,
        "isQueryPreview": true,
        "schemaQualifiedName": "default/postgres/1665131987/atlan_trial/demo",
        "sourceCreatedAt": 0,
        "assetDbtJobLastRunDequedAt": 0,
        "viewerUsers": [],
        "assetDbtTags": [],
        "adminRoles": [],
        "adminGroups": [],
        "assetDbtJobLastRunCreatedAt": 0,
        "qualifiedName": "default/postgres/1665131987/atlan_trial/demo/INSTACART_AISLES",
        "databaseQualifiedName": "default/postgres/1665131987/atlan_trial",
        "assetDbtJobNextRun": 0,
        "assetDbtJobLastRunNotificationsSent": false,
        "columnCount": 2,
        "sizeBytes": 0,
        "name": "INSTACART_AISLES",
        "certificateUpdatedAt": 0,
        "connectorName": "postgres",
        "viewerGroups": [],
        "assetDbtJobLastRun": 0,
        "ownerUsers": []
      },
      "guid": "31ee0651-b031-48c8-8927-ef9b1e949ad4",
      "status": "ACTIVE",
      "displayText": "INSTACART_AISLES",
      "isIncomplete": false,
      "createdBy": "autoqa",
      "updatedBy": "autoqa",
      "createTime": 1665132167750,
      "updateTime": 1665132175423
    },
    "operationType": "BUSINESS_ATTRIBUTE_UPDATE",
    "eventTime": 1667822461710,
    "mutatedDetails": {
      "UuPz0CjWHFuuKTCiTRwapk": {
        "jpf1oz5ux6MjmaOGPn9jMD": "ssjmdvddf\n"
      }
    }
  }
}