Please share any images or screenshots, if relevant.
[Please insert images here, otherwise delete this section]
Please share any other relevant files that may be required (for example, logs).
[Please insert files here, otherwise delete this section]
Share all details about your problem, including any error messages you may have received.
We are trying to configure JDBC applications with Cloud Gateway, and we are seeing issues while provisioning. The issue comes up when the Global Provisioning Rule executes, and the rule fails when we try to fetch objects from the IIQ database, through context.getObject… calls.
Is there an entry in the app XML that can be configured to rectify this behaviour, like (that is used for LogiPlex applications)?
When using Cloud Gateway, direct database queries via context.getObject(...) in provisioning rules may not work as expected because the rule executes in the Cloud Gateway environment, which lacks direct access to the IIQ database. Here are some possible solutions:
Ensure the rule runs in IdentityIQ
Move any logic that uses context.getObject(...) to a Before/After Provisioning Rule that runs on the IIQ side instead of Cloud Gateway.
Use a TaskDefinition
If you need database access, consider using a Rule Task instead of a Global Provisioning Rule. This allows you to retrieve objects before sending the request to Cloud Gateway.
Pre-process with an IdentityRequestProvisioningPlan
Instead of querying the database within the provisioning rule, gather the necessary information beforehand in an IdentityRequestProvisioningPlan and pass it as part of the ProvisioningPlan.
Enable debugging logs
Check if the rule is executing in Cloud Gateway by enabling detailed logging in log4j.properties:
Also, I came across another post mentioning that JDBC applications have the tag:
<synchronous>true</synchronous>
It seems to work similarly to the one used for LogiPlex applications. This might be worth exploring to see if it helps with your issue. Try this, and if it doesn’t work, you can proceed with the suggestions I shared earlier.
For context.search(…) calls, a similar issue arises when executing the rule in Cloud Gateway, as it does not have direct access to the IdentityIQ database. In such cases, you may need to move the logic that uses context.search(…) to a Before/After Provisioning Rule running on the IdentityIQ server, just like with context.getObject(…).
Adding the required values in the provisioning plan, through the BeforeProvisioning rule works. I can fetch those values in the globalProvisioning rule through the plan.
I’m glad to hear that adding the required values in the BeforeProvisioning rule and then retrieving them in the Global Provisioning Rule through the ProvisioningPlan worked for you.
If this solution resolved your issue, could you mark it as the accepted answer in the forum? This would help others facing similar challenges and also allow me to continue progressing on my journey as a SailPoint Ambassador.
Thanks, and let me know if you have any other questions!