Skip to content

Jira propagator

Helps propagate linked Jira issues to downstream assets. Allows for allow-list/deny-list restrictions based on Jira projects the issues belong to and based on the presence/absence of keywords in the issue title.

Background

Users will be linking Jira issues with Redshift assets to indicate data-quality incidents and pending requirement gaps. They want their business users, viewing PowerBI dashboards potentially derived from such assets, to be aware of the Jira issues. Hence the requirement to propagate Jira issues linked downstream, across all asset-types that may be involved.

Design

Jira Propagation

The product currently uses a custom property named atlan maintained on the Jira issue itself to track active linkages. The atlan property, at any given time, will list all the assets a given issue is linked to.

This script uses an additional property, named propagation_map, to track linkages that manifested as a result of the propagation performed by this script. This property is also used to propagate any unlinks initiated by the user. The atlan property is not modified in any way.

Flow

  • For each run, the script first retrieves the list of all linked Jira issues and extracts the atlan and propagation_map (if exists) custom properties.
  • If propagation_map property does not exist, it works through all the assets listed in the atlan property. If the propagation_map exists, it diffs the asset info contained within against the one in the atlan property to identify newly-linked assets and then works on their propagation.
  • Linking - For each valid data asset in scope (referred to as "trigger assets"), the script extracts the downstream lineage to the maximum possible depth. And for each asset in the lineage list, if the asset isn't already in the propagation_map, the script links the Jira issue to the asset. Both the "trigger assets" and the associated "propagated assets" are appropriately recorded.
  • Unlinking - The script identifies "trigger assets" present in the propagation_map but missing in the atlan property. This will indicate an unlink initiated by the user. For all such assets, the system unlinks the Jira issue from the associated "propagated assets", as identified from the propagation_map property. The results changes to the propagation_map are appropriately recorded.

    Note

    For any manual unlinks performed on a "propagated asset", no actions are taken.

  • The system pushes the appropriately-updated "propagation_map" property back into the Jira issue.