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¶
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
andpropagation_map
(if exists) custom properties. - If
propagation_map
property does not exist, it works through all the assets listed in theatlan
property. If thepropagation_map
exists, it diffs the asset info contained within against the one in theatlan
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 theatlan
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 thepropagation_map
property. The results changes to thepropagation_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.