Skip to content

Asset export (basic)

Source code Sample CSV file

The asset export (basic) package identifies all assets that could have been enriched in some way through Atlan's UI and extracts them. The resulting CSV file can be modified or enriched, and then loaded back using the asset import package.

Use cases

  • Backup any manual enrichment users have done through the UI
  • Migrate manual enrichment done to one set of data assets to another (for example, when migrating from one data warehouse to another but retaining the same data structures)

Configuration

Intentionally limited

The configurable options of this package are intentionally limited, to make using it as simple as possible. For more extensive options, see the asset export (advanced) package.

Scope

  • Export scope: which assets you want to export

    Only glossaries, terms and categories will be exported.

    Only those assets that were enriched by users will be exported.

    • Qualified name prefix (for assets): starting value for a qualifiedName that will determine which assets to export, default: default (all data assets).
    • Include description?: whether to extract only any user-provided description (No) or include system-crawled descriptions as well (Yes).
    • Include glossaries?: whether glossaries (and their terms and categories) should be exported, too (Yes) or not (No).

    All assets, whether enriched by users or not, will be exported.

    • Qualified name prefix (for assets): starting value for a qualifiedName that will determine which assets to export, default: default (all data assets).
    • Include description?: whether to extract only any user-provided description (No) or include system-crawled descriptions as well (Yes).
    • Include glossaries?: whether glossaries (and their terms and categories) should be exported, too (Yes) or not (No).

Delivery

  • Email address(es): (optional) enter a list of email addresses, comma-separated, where you want the results to be sent as an attachment. The results will always be downloadable from the workflow run as well.

What it does

Assets CSV file

The assets that match the supplied input criteria will be extracted into a CSV file, one per row. Each row will contain:

  • The type of the asset
  • The qualifiedName of the asset
  • Values for all possible enrichment to that asset

Detailed information on the columns in the CSV file produced:

qualifiedName

Required. Unique name of the asset. This combined with typeName will be unique in Atlan.

typeName

Required. Type of the asset.

name

Required. Name of the asset. This will be the technical name, as crawled from a source system.

displayName

An optional name you can give to the asset to override how it is displayed in the Atlan UI. If present, this will be shown in the UI instead of name.

description

Explanation of the asset, possibly crawled from a source system.

userDescription

Explanation of the asset, as entered or confirmed by a user through the Atlan UI. If present, this will be shown in the UI instead of description.

ownerUsers

Individual users who are owners of the asset. Each user should be separated by a newline within the cell.

ownerGroups

Groups of users who are owners of the asset. Each group should be separated by a newline within the cell.

certificateStatus

Certificate on the asset. Must either be empty or one of:

  • VERIFIED
  • DRAFT
  • DEPRECATED

certificateStatusMessage

An optional message that can be associated with the certificate (only used if certificateStatus is non-empty).

announcementType

Type of announcement on the asset. Must either be empty or one of:

  • information
  • warning
  • issue

announcementTitle

Heading line for the announcement on the asset (only used if announcementType is non-empty).

announcementMessage

An optional detailed message that can be associated with the announcement (only used if announcementType is non-empty).

assignedTerms

Business terms that are assigned to the asset. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

atlanTags

Atlan tags that are assigned to the asset. Each tag should be separated by a newline within the cell, and formatted as one of:

  • Tag Name, for tags that should be directly assigned and should not be propagated
  • Tag Name>>FULL for tags that should be directly assigned to the asset and propagated down their hierarchy and through lineage
  • Tag Name>>HIERARCHY_ONLY for tags that should be directly assigned to the asset and only be propagated down their hierarchy (not through lineage)
  • Tag Name<<PROPAGATED for tags that have been propagated to the asset.

    Propagated tags will be ignored on import

    Any tag marked propagated (Tag Name<<PROPAGATED) will be ignored by an import. Only those tags that are directly applied will be imported, though of course any tags applied up-hierarchy or upstream that are marked to propagate will still propagate accordingly.

For source tags (with values), you can extend the tag name portion as follows:

  • Tag Name {{connectorType/connectorName@@sourceTagLocation??key=value}}, where:
    • connectorType is the type of the source tag (snowflake, dbt, etc)
    • connectorName is the name of the connection for the source the tag is synced from
    • sourceTagLocation is the path within that connection where the source tag exists
    • key is an optional key for the associated value for the tag
    • value is the value for the associated tag

For example, this will associate the Confidential Atlan tag, which is synced with the CONFIDENTIAL Snowflake tag in the ANALYTICS database's WIDE_WORLD_IMPORTERS schema and is synced through the development Snowflake connection. It has a value of Not Restricted in Snowflake, and the tag itself should be fully-propagated.

Confidential {{snowflake/development@@ANALYTICS/WIDE_WORLD_IMPORTERS/CONFIDENTIAL??=Not Restricted}}>>FULL

List of resources (links) assigned to the asset. Each link should be separated by a newline within the cell, and formatted as embedded JSON:

{"typeName":"Link","attributes":{"name":"linkName","link":"https://www.example.com"}}

readme

Richly-formatted, detailed documentation for the asset. This should be an HTML-formatted string containing everything that would be inside <body></body>, without the <body></body> wrapping.

starredDetails

Details about users who have starred the asset. Each starred asset detail entry should be separated by a newline within the cell, and formatted as embedded JSON:

{"assetStarredBy":"someone","assetStarredAt":1698769268966}

{CM}::{attribute}

Any number of columns using a :: separator in their heading represent custom metadata.

  • The {CM} portion must give the name of the custom metadata
  • The {attribute} portion must give the name of an attribute within the custom metadata.

Both are the human-readable names.

For multi-valued custom metadata attributes, each value should be separated by a newline within the cell. Date values should be provided as an epoch-style timestamp (purely numeric).

Glossaries CSV file

If requested, the glossaries, categories and terms will all be extracted into a separate CSV file, one per row. Each row will contain:

  • The type of the asset
  • The qualifiedName of the asset
  • Values for all possible enrichment to that asset

Detailed information on the columns in the CSV file produced:

qualifiedName

Purely for your own reference, this is ignored during any import (and can therefore be empty).

typeName

Required. Type of the asset.

name

Required. Name of the asset.

anchor

Required. Name of the glossary in which the term or category is contained.

parentCategory

Parent category when the category on the row is a subcategory. The categories should use @ as a path-delimiter, and should have @@@ followed by the glossary name at the end. For example, if the parent category is called Lowest, which itself is a subcategory of Middle, itself a subcategory of Top:

Top@Middle@Lowest@@@Glossary Name

categories

Categories in which a term is organized. Each category should be separated by a newline within the cell, and formatted as indicated above: @ as a path-delimiter and @@@ as the glossary delimiter.

displayName

An optional name you can give to the asset to override how it is displayed in the Atlan UI. If present, this will be shown in the UI instead of name.

description

Explanation of the asset, as a fallback. For example, if you want to pre-populate the description for the asset but allow users to override it through Atlan's UI.

userDescription

Explanation of the asset, as entered or confirmed by a user through the Atlan UI. If present, this will be shown in the UI instead of description.

ownerUsers

Individual users who are owners of the asset. Each user should be separated by a newline within the cell.

ownerGroups

Groups of users who are owners of the asset. Each group should be separated by a newline within the cell.

certificateStatus

Certificate on the asset. Must either be empty or one of:

  • VERIFIED
  • DRAFT
  • DEPRECATED

certificateStatusMessage

An optional message that can be associated with the certificate (only used if certificateStatus is non-empty).

announcementType

Type of announcement on the asset. Must either be empty or one of:

  • information
  • warning
  • issue

announcementTitle

Heading line for the announcement on the asset (only used if announcementType is non-empty).

announcementMessage

An optional detailed message that can be associated with the announcement (only used if announcementType is non-empty).

atlanTags

Atlan tags that are assigned to the asset. Each tag should be separated by a newline within the cell, and formatted as one of:

  • Tag Name, for tags that should be directly assigned and should not be propagated
  • Tag Name>>FULL for tags that should be directly assigned to the asset and propagated down their hierarchy and through lineage
  • Tag Name>>HIERARCHY_ONLY for tags that should be directly assigned to the asset and only be propagated down their hierarchy (not through lineage)
  • Tag Name<<PROPAGATED for tags that have been propagated to the asset.

    Propagated tags will be ignored on import

    Any tag marked propagated (Tag Name<<PROPAGATED) will be ignored by an import. Only those tags that are directly applied will be imported, though of course any tags applied up-hierarchy or upstream that are marked to propagate will still propagate accordingly.

    No source tags for glossaries

    Note that source tags can only be related to physical assets, so you should not attempt to assign them to glossary objects.

List of resources (links) assigned to the asset. Each link should be separated by a newline within the cell, and formatted as embedded JSON:

{"typeName":"Link","attributes":{"name":"linkName","link":"https://www.example.com"}}

readme

Richly-formatted, detailed documentation for the asset. This should be an HTML-formatted string containing everything that would be inside <body></body>, without the <body></body> wrapping.

starredDetails

Details about users who have starred the asset. Each starred asset detail entry should be separated by a newline within the cell, and formatted as embedded JSON:

{"assetStarredBy":"someone","assetStarredAt":1698769268966}

seeAlso

Business terms that will show as related terms in the UI. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

preferredTerms

Business terms that will show as recommended terms in the UI. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

synonyms

Business terms that will show as synonyms in the UI. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

antonyms

Business terms that will show as antonyms in the UI. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

translatedTerms

Business terms that will show as translations for a term in the UI. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

validValuesFor

Business terms that will show as valid values for a term in the UI. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

classifies

Business terms that will show as classified by a term in the UI. Each term should be separated by a newline within the cell, and formatted as:

Term Name@@@Glossary Name

{CM}::{attribute}

Any number of columns using a :: separator in their heading represent custom metadata.

  • The {CM} portion must give the name of the custom metadata
  • The {attribute} portion must give the name of an attribute within the custom metadata.

Both are the human-readable names.

For multi-valued custom metadata attributes, each value should be separated by a newline within the cell. Date values should be provided as an epoch-style timestamp (purely numeric).

How it works

Runs a search for all assets that match the supplied inputs:

  • Only assets whose qualifiedName starts with the supplied qualified name prefix.
  • Export scope:
    • Enriched only will only include assets that have at least one of the following:
      • system-provided description,
      • user-provided description,
      • owners,
      • assigned terms,
      • assigned tags, or
      • any custom metadata values.
    • All will include all assets with the supplied qualified name prefix.

  1. Note that propagated Atlan tags are not included in the extract, since they will be propagated automatically.