Skip to content

Other important concepts

Type definitions

Type definitions (or typedefs for short) describe the properties and relationships that each different type of asset can have in Atlan.

Type definitions are the structure for metadata

In an object-oriented programming sense, think of a type definition as the class itself. They describe the underlying data model of Atlan.

For example:

  • The model for database tables in Atlan is defined by the Table typedef.
  • The Table typedef describes characteristics unique to database tables, such as column counts and row counts.
  • The Table typedef inherits from an Asset typedef. (As do most other objects in Atlan.)
  • The Asset typedef describes characteristics that apply to all of these objects, such as certificates and announcements.
classDiagram
  class Asset {
    <<abstract>>
    name
    qualifiedName
    certificateStatus
    certificateStatusMessage
    announcementType
    announcementTitle
    announcementMessage
    ...
    assignedTerms()
  }
  class Table {
    columnCount
    rowCount
    atlanSchema()
    columns()
  }
  class Column {
    dataType
    isNullable
    table()
  }
  Asset <|-- Table : extends
  Asset <|-- Column : extends

Special assets

While all assets follow the above principles, there are two types of assets to be aware of that have further specific uses in Atlan.

Connections

classDiagram
  class Connection {
    ...
    connector[Name|Type]
    ...
  }

Connections play several important roles:

  • They form the basis of Atlan's access control policies.
  • Their connectorName property (renamed connectorType in some SDKs) decides the icon Atlan will use for assets contained within the connection.

Processes

Processes form the basis for Atlan's data lineage. They define how data inputs (sources) are translated into data outputs (targets).

Without a process asset to link these upstream and downstream assets, you cannot have data lineage in Atlan.

graph LR
  s1[(Source 1)]
  s2[(Source 2)]
  s3[(Source 3)]
  t1[(Target 1)]
  t2[(Target 2)]
  p([Process])
  s1 & s2 & s3-->|upstream|p-->|downstream|t1 & t2

Tags

Tags give you a way to classify and group assets in different ways, for example:

  • By industry standard information security or sensitivity schemes (for example: PII)
  • By department or business domain (for example: HR, Finance, Marketing, and so on)
  • By key characteristic for alerting (for example: data quality issue, load failure, or similar)
  • Really any other way you want to group together your assets

Propagation

What's special about tags?

Atlan can propagate tags for you automatically, to related assets:

  • From upstream assets to downstream assets (via lineage)
  • From parent assets to child assets (for example, from a table to all of its columns)
  • From a term to all of its linked assets

This becomes particularly powerful when using tags to represent key information you want to let your users know about. For example:

Tagging problematic assets

  • If you find a problem on an asset, you can tag that asset as having a known issue.
  • With propagation, Atlan will automatically tag all downstream (impacted) assets as having a known issue as well.
  • Even better, you can see from that propagated tag which upstream asset(s) are the source of that known issue.

Tagging sensitive assets

  • You can create a glossary of terms core to your business like customer details, accounts, etc.
  • You can assign the terms in that glossary to the data assets that hold that information.
  • You can then tag the terms with sensitivity ratings (like PII, Confidential, Public, etc).
  • With propagation, Atlan will automatically tag all related data assets with those same sensitivity ratings.
  • Even better, any assets or fields derived from those assets (even if named differently) will be propagated that sensitivity rating as well.

Branding

You can also "brand" tags to provide quick visual distinction:

  • Choose from a predefined list of icons
  • Apply a color to the tag
  • Or even upload your own image to use as an icon to represent the tag

Access control

Tags can also be used to control access to assets, through purposes . When combined with propagation, you gain a very powerful, automated means to protect your most sensitive data.


Custom metadata

Custom metadata gives you a way to extend the built-in types with your own attributes.

Structurally custom metadata is composed of:

  • An overall name (sometimes referred to as a "set")
  • Individual attributes contained within that "set"
  • (Optional) Restrictions on which assets can possess values for the custom metadata

Runtime resolution

Note that unlike built-in types and attributes, custom metadata can only be resolved at runtime. Therefore custom metadata attributes are not strongly-typed in the SDKs the way built-in types and attributes are — they must be handled a little differently.

Badges

What's special about custom metadata?

  1. Firstly, custom metadata gives you a way to define your own attributes for assets.
  2. In addition, on top of custom metadata attributes you can create badges to callout important information on assets.

Branding

You can also "brand" custom metadata to provide quick visual distinction:

  • Choose from a predefined list of emojis
  • Or even upload your own image to use as an icon to represent the custom metadata

This "branding" will also be used for any badges you create over the custom metadata attributes.