Home OSS About Privacy

Options to (Slightly) Customize Purview and Atlas UI Within TypeDefs

Apache Atlas / Azure Purview provides a type definition that allows you to customize what can be recorded on a given entity AND that type definition can influence your tool's UI as well.

The serviceType and the various options below are a useful subset of those available.

ServiceType (Purview Only)

Using the serviceType, you can group many different types into one category for a more visually appealing browse experience.

The first field that you might consider setting for your custom types is the serviceType field at the root of your type definition.

In Purview, this service type field lets you control the Browse Assets screen and ensure your custom types all land under the same section.

If you are creating custom types and do NOT set the service type, the Browse Assets page will list every single custom type and look a bit messy.

schemaElementsAttribute

This option influences the schema tab in both Purview and Apache Atlas

"options": {
    "schemaElementsAttribute": "columns"
}

The schema elements attribute points to a relationship attribute that would contain the assets. You should define a custom type with a relationship attribute and include the schemaElementsAttribute to influence the schema tab in Atlas and in Purview.

schemaAttributes

This option influences what attribute columns are shown in the schema tab. This option is defined on the column level entity types (e.g. azure_sql_column). When a parent (e.g. azure_sql_table) type uses the schemaElementAttribute to point to a type with a schemaAttributes option defined, it will update the schema tab to display the attributes listed in the schemaAttributes option.

"options": {
    "schemaAttributes": "[\"dataType\", \"logicalDataType\"]"
}

This feature seems to be a bit limited in Purview but in general, the schema attributes represent attributes for the given entity that you want to see in the schema tab.

For example, if you are defining a custom column type with a custom data type attribute (called mycustomdatatype) that you want to see on the schema tab, you would include the schemaAttributes option and set the value as "[\"mycustomdatatype\"]".

This should now make mycustomdatatype visible on the schema tab when looking at an entity that defines a relationship attribute and schemaElementAttribute that points to our custom type.

defaultRenderedLineage (Purview only)

This influences the Lineage tab and is used when you have a more complex lineage graph where one Process entity may point to a child process. Purview uses this for adf_copy_operation to display a parent adf_copy_activity's name but the most recent input and outputs of the adf_copy_operation. This option would be applied to the child end of the relationship (e.g. adf_copy_operation is a child of adf_copy_activity).

"options": {
    "defaultRenderedLineage": "parent"
}

The value of defaultRenderedLineage is a relationship attribute name that points to a single process entity.

derivedLineageSources (Purview only)

Working with defaultRenderedLineage, this option is applied to the parent entity (like adf_copy_activity) to display the child processes in the lineage graph. It takes in a stringified json array that points to a relationship attribute.

"options": {
    "derivedLineageSources": "[\"subProcesses\"]"
}

This option lets you define a parent process but display the inputs and outputs of the most recent "subProcess" that is in the relationship attribute.

Buyer Beware

The Purview UI may not always leverage these relationship attributes or options for custom types. There are scenarios where the Purview UI will display something that is custom to the given type and thus not available in custom types.

It's always best to attempt these custom types in a dev environment before creating types and entities in your production Purview instance.