After some effort, I’ve found out how to exclude attributes from the Access History change detection. It is done by editing the YAMLConfig - AccessHistoryTransformConfig object and setting a transform script for accounts. eg:
account:
includeHash: true
hashProperty: smartHash
objectClassName: sailpoint.object.Link
imagePropertyConfigDescriptors:
- property: id
- property: application
- property: nativeIdentity
- property: uuid
- property: iiqLocked
- property: iiqDisabled
- property: displayName
- property: displayableName
- property: attributes
type: none
propertyTransformerConfigDescriptors:
- type: sailpoint.dataextract.conversion.LinkApplicationAccountSchemaTransformer
args:
excludedKeys: displayName,IIQLocked,IIQDisabled
objectConfigTypes: system,standard,unclear
transformScripts:
- |
Map atts = property.getValueMap();
atts.remove("last_login_time");
atts.remove("last_login");
atts.remove("LASTLOGIN");
atts.remove("LAST_LOGOUT_DATETIME");
atts.remove("lastDirSyncTime");
return property;
- property: extendedAttributes
type: none
propertyTransformerConfigDescriptors:
- type: sailpoint.dataextract.conversion.AttributesWithExclusions
args:
objectConfigTypes: extended
- property: attributes
newName: extendedAttributesNamed
type: none
propertyTransformerConfigDescriptors:
- type: sailpoint.dataextract.conversion.AttributesWithExclusions
args:
objectConfigTypes: named
- property: componentIds
- property: identity
type: object
objectName: identityRef
- property: instance
- property: lastRefresh
hashExclude: true
- property: lastTargetAggregation
hashExclude: true
- property: manuallyCorrelated
In the transform script, you need to remove each of the account attributes that change frequently but are not important to track.
Note that after setting the transform script, the next account change may result in a new capture record as a filtered attribute value is being changed to null. Subsequent changes to a filtered attribute value should not result in a new capture.