Recently I’ve been assisting a client with a SCIM source that has high latency. This causes a number of issues with health validation as well as aggregation and provisioning events. The default values for health check, provisioning and aggregation were causing a myriad of errors.
Previously I’ve shown how to change the healthCheckTimeout in this post from 2019 for a WorkDay source. That was using the v2 API for Source Configuration. In this post I show how to use the v3 Source API to change timeout values.
SailPoint do have some good guidance for an approach to increase the timeout values for each of the different timeouts.
The three I was needing to update are:
- aggregateTimeout
- healthCheckTimeout
- provisioningTimeout
Get Source Configuration
Using my SailPoint IdentityNow PowerShell Module and the Get-IdentityNowSource cmdlet the configuration of the source can be retrieved. You can get the ID of the Source from the URL when viewing the source in the Portal. Or you can get all sources and query for the source you’re looking to change.
$mySource = Get-IdentityNowSource -V3API -sourceID <yourSourceID> $mySource
or
$sources = Get-IdentityNowSource -V3API $mySource = $sources | Where-Object { $_.name -eq "mysourcename" } $mySource | FL
Updating the Source Timeouts
The v3 APIs take a syntax of Operation, Path and Value for the configuration of changes. If the source is new/default the timeout values may not even exist in the configuration. Therefore our change operation is “add”. If they do exist “add” may still work, but “replace” would be the correct operation time.
The path of the timeout values is under the connectorAttributes object. So our path is connectorAttributes/<timeouttype>. e.g. “/connectorAttributes/aggregateTimeout“
And finally the value in seconds of the timeout. Putting that all together as JSON in PowerShell as a raw configuration looks like this to add an aggregation timeout of 2 minutes.
$json = '[ { "op": "add", "path": "/connectorAttributes/aggregateTimeout", "value": "120" } ]'
To make the change then using the Update-IdentityNowSource cmdlet and leveraging the returned Source from the earlier example and the configuration update from above looks like this.
Update-IdentityNowSource -sourceID $mySource.externalId -update $json -V3API
Replace aggregateTimeout with healthCheckTimeout or provisioningTimeout to change those timeouts.
Summary
Knowing the different timeouts that are configurable along with their path, using the SailPoint IdentityNow PowerShell module we can get a troublesome source functional.