Tag (classify) assets¶
Atlan tags must exist before tagging assets
Remember that you must first create the Atlan tag before you will be able to tag any assets.
Cannot add tags when creating assets
Currently it is not possible to add tags when creating assets, other than via dbt.
Add to an existing asset¶
To add tags to an existing asset:
Add tags to an existing asset | |
---|---|
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 |
|
- You must of course give the name of the object.
- The simplest way to tag an asset, using the default values for propagation (those shown below), is to use the
meta
.atlan
.classificationNames
structure. - When using this simplified form, you can give the normal human-readable name of the tags rather than the hashed-string representation.
- Alternatively, if you want to override the propagation settings, you can use this more detailed structure.
- Each listed item must itself be a YAML object consisting of the human-readable
name
of the tag and the propagation setting overrides: - (Optional) You can decide whether to propagate this tag (true) or not (false). If you choose false, no propagation of this tag from the asset will occur — neither through lineage nor parent-child relationships.
- (Optional) If propagation is allowed, you can then define whether propagated tags should be removed if this asset is deleted (true) or not (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for lineage (true) or still allow it through lineage (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for hierarchy (true) or still allow it through hierarchy (false).
- Alternatively, you can specify tags nested within the
meta
.atlan
.classifications
structure. - In this structure, each tag you want to add must be given using its hashed-string representation. Its propagation settings can be overridden using the same options described above.
Replaces all tags
Unlike the examples for the SDKs and raw APIs, dbt will always replace all tags on the asset. Any tags that already exist on the asset that are not specified here will be removed.
Add tags to an existing asset | |
---|---|
1 2 3 |
|
- Use the
appendAtlanTags()
helper method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to add the tags all-in-one. - The
qualifiedName
of the asset. - A list of the tags (the names as you set them up in the UI) to add to the asset.
Add tags to an existing asset | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
- Use the
asset.add_atlan_tags()
method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to add the tags all-in-one. - A list of the tags (the names as you set them up in the UI) to add to the asset.
Add tags to an existing asset | |
---|---|
1 2 3 |
|
- Use the
appendAtlanTags()
helper method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to add the tags all-in-one. - The
qualifiedName
of the asset. - A list of the tags (the names as you set them up in the UI) to add to the asset.
POST /api/meta/entity/uniqueAttribute/type/Table/classifications?attr:qualifiedName=default%2Fsnowflake%2F1657037873%2FSAMPLE_DB%2FFOOD_BEV%2FTOP_BEVERAGE_USERS | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
- Each tag you want to add must be given using its hashed-string representation.
- (Optional) You can decide whether to propagate this tag (true) or not (false). If you choose false, no propagation of this tag from the asset will occur — neither through lineage nor parent-child relationships.
- (Optional) If propagation is allowed, you can then define whether propagated tags should be removed if this asset is deleted (true) or not (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for lineage (true) or still allow it through lineage (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for hierarchy (true) or still allow it through hierarchy (false).
Update on an existing asset¶
To update tags on an existing asset:
Not possible through dbt
In dbt, the tags will be replaced in their entirety. It is not possible to just update a single tag through dbt.
Update tags on an existing asset | |
---|---|
1 2 3 4 5 6 7 8 |
|
- Use the
updateAtlanTags()
helper method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to update tags for an asset, all-in-one. - The
qualifiedName
of the asset. - A list of the tags (the names as you set them up in the UI) to update for the asset.
- (Optional) You can decide whether to propagate these tags (true) or not (false). If you choose false, no propagation for these tags from the asset will occur — neither through lineage nor parent-child relationships.
- (Optional) If propagation is allowed, you can then define whether propagated tags should be removed if this asset is deleted (true) or not (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tags only for lineage (true) or still allow it through lineage (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for hierarchy (true) or still allow it through hierarchy (false).
Update tags on an existing asset | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
- Use the
asset.update_atlan_tags()
method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to update tags for an asset, all-in-one. - A list of the tags (the names as you set them up in the UI) to update for the asset.
- (Optional) You can decide whether to propagate these tags (True) or not (False). If you choose False, no propagation for these tags from the asset will occur — neither through lineage nor parent-child relationships.
- (Optional) If propagation is allowed, you can then define whether propagated tags should be removed if this asset is deleted (True) or not (False).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tags only for lineage (True) or still allow it through lineage (False).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for hierarchy (True) or still allow it through hierarchy (False).
Update tags on an existing asset | |
---|---|
1 2 3 4 5 6 7 8 |
|
- Use the
updateAtlanTags()
helper method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to update tags for an asset, all-in-one. - The
qualifiedName
of the asset. - A list of the tags (the names as you set them up in the UI) to update for the asset.
- (Optional) You can decide whether to propagate these tags (true) or not (false). If you choose false, no propagation for these tags from the asset will occur — neither through lineage nor parent-child relationships.
- (Optional) If propagation is allowed, you can then define whether propagated tags should be removed if this asset is deleted (true) or not (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tags only for lineage (true) or still allow it through lineage (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for hierarchy (true) or still allow it through hierarchy (false).
PUT /api/meta/entity/uniqueAttribute/type/Table/classifications?attr:qualifiedName=default%2Fsnowflake%2F1657037873%2FSAMPLE_DB%2FFOOD_BEV%2FTOP_BEVERAGE_USERS | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
- Each tag you want to update must be given using its hashed-string representation.
- (Optional) You can decide whether to propagate these tags (true) or not (false). If you choose false, no propagation for these tags from the asset will occur — neither through lineage nor parent-child relationships.
- (Optional) If propagation is allowed, you can then define whether propagated tags should be removed if this asset is deleted (true) or not (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tags only for lineage (true) or still allow it through lineage (false).
- (Optional) If propagation is allowed, you can also decide whether to disable propagation of the tag only for hierarchy (true) or still allow it through hierarchy (false).
Remove from existing assets¶
Remove a single tag¶
To remove a single tag from an existing asset:
Remove one tag from an existing asset | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
- You must of course give the name of the object.
- You can use the
meta
.atlan
.classificationNames
structure, as above. -
When using this simplified form, you can give the normal human-readable name of the tags you want to remain, rather than the hashed-string representation.
The tag being removed is no longer present
You are removing the tag by not specifying it anymore here in dbt.
-
The tags must be nested within the
meta
.atlan
.classifications
structure. -
Each tag you want to remain must be given using its hashed-string representation.
The tag being removed is no longer present
You are removing the tag by not specifying it anymore here in dbt.
Remove one tag from an existing asset | |
---|---|
1 2 3 |
|
- Use the
removeAtlanTag()
helper method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to remove a tag from an asset, all-in-one. - The
qualifiedName
of the asset. - The tag (the name you set up in the UI) to remove from the asset.
Remove one tag from an existing asset | |
---|---|
1 2 3 4 5 6 7 8 9 |
|
- Use the
asset.remove_atlan_tag()
method, which for most objects requires a minimal set of information. This method will construct the necessary request and call the necessary API(s) to remove a tag from an asset, all-in-one. - The tag (the name you set up in the UI) to remove from the asset.
Remove one tag from an existing asset | |
---|---|
1 2 3 |
|
- Use the
removeAtlanTag()
helper method, which for most objects requires a minimal set of information. This helper method will construct the necessary request and call the necessary API(s) to remove a tag from an asset, all-in-one. - The
qualifiedName
of the asset. - The tag (the name you set up in the UI) to remove from the asset.
DELETE /api/meta/entity/uniqueAttribute/type/Table/classification/WCVjmgKnW40G151dESXZ03?attr:qualifiedName=default%2Fsnowflake%2F1657037873%2FSAMPLE_DB%2FFOOD_BEV%2FTOP_BEVERAGE_USERS | |
---|---|
1 |
|
- Note that all of the details for the deletion are embedded in the URL or query parameters to the request. Once again the hashed-string representation of the tag is required. You would either need to first retrieve the list of tags via API to determine this value, or look through the development console of your browser while opening the tag in the Atlan UI.
Remove all tags¶
Could create a new asset
Remember that Atlan matches the provided qualifiedName
to determine whether to update or create the asset.
To remove all tags from an existing asset, you need to specify no tags in your object:
Remove all tags from an existing asset | |
---|---|
1 2 3 4 5 |
|
- You must of course give the name of the object.
- The tags must be nested within the
meta
.atlan
.classifications
structure. To remove all of them, send an explicit empty list.
Remove all tags from an existing asset | |
---|---|
1 2 3 4 5 |
|
- Use the
updater()
method to initialize the object with all necessary attributes for updating it(../advanced-examples/update.md#build-minimal-object-needed). (Removing the tags is still an update to the asset, we are not deleting the asset itself.) - Call the
save()
method to actually update the asset, usingtrue
as the first argument to overwrite tags. Since we have not provided any tags in our object, this will replace the existing tags on the asset with no tags. (In other words, it will remove all tags from the asset.) - The response will include that single asset that was updated (again, removing tags is an update to the asset — we are not deleting the asset itself).
Remove all tags from an existing asset | |
---|---|
1 2 3 4 5 6 7 8 9 10 |
|
- Use the
updater()
method to create an asset suitable for modifiaction i.e. with all the requisite attributes. - Call the
save()
method to actually update the asset, usingTrue
for the replace_atlan_tags argument will cause the tags to be overwritten. Since we have not provided any tags in our object, this will replace the existing tags on the asset with no tags. (In other words, it will remove all tags from the asset.) - The response should only include that single asset that was updated (again, removing tags is an update to the asset — we are not deleting the asset itself).
Remove all tags from an existing asset | |
---|---|
1 2 3 4 5 |
|
- Use the
updater()
method to initialize the object with all necessary attributes for updating it(../advanced-examples/update.md#build-minimal-object-needed). (Removing the tags is still an update to the asset, we are not deleting the asset itself.) - Call the
save()
method to actually update the asset, usingtrue
as the first argument to overwrite tags. Since we have not provided any tags in our object, this will replace the existing tags on the asset with no tags. (In other words, it will remove all tags from the asset.) - The response will include that single asset that was updated (again, removing tags is an update to the asset — we are not deleting the asset itself).
POST /api/meta/entity/bulk?replaceClassifications=true&replaceBusinessAttributes=false&overwriteBusinessAttributes=false | |
---|---|
1 2 3 4 5 6 7 8 9 10 11 |
|
- Note that the query parameter
replaceClassifications
is equal totrue
in the request. This is what causes the override behavior — so when you do not specify any tags in the request body those overwrite any existing tags on the asset. (The result being that there are then no tags on the asset.) - All assets must be wrapped in an
entities
array. - You must provide the exact type name for the asset (case-sensitive).
- You must provide the exact
qualifiedName
of the asset (case-sensitive). - You must provide the exact name of the asset (case-sensitive).
Find hashed-string names¶
When using either the raw APIs or dbt, you must provide the custom metadata names using Atlan's hashed-string representation.
Not necessary for SDKs
Note that this is not needed when using the SDKs, which translate these for you!
To look up the hashed-string representations:
The response will include displayName
and name
for each tag. The displayName
is what you see in Atlan's UI, and the name
is the hashed-string representation:
Simplified response | |
---|---|
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 |
|