README revision 8beb374b71b09a779b43582c09f858f9fd80e3c3
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkAsync reconciliation Sample
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk-------------------------
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkCopyright (c) 2012 ForgeRock AS
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkThis work is licensed under a Creative Commons Attribution-
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkNonCommercial-NoDerivs 3.0 Unported License. See
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkhttp://creativecommons.org/licenses/by-nc-nd/3.0/
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkThis sample demonstrates how perform an asynchronous action from a reconciliation.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkTo try the sample, follow these steps.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 1. Copy the sample configuration and data.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $ cd /path/to/openidm
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $ cp -r samples/sample9/conf samples/sample9/workflow .
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 2. Start OpenIDM.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $ ./startup.sh
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 3. Run reconciliation.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $ curl -u openidm-admin:openidm-admin -X POST "http://localhost:8080/openidm/recon?_action=recon&mapping=systemXmlfileAccounts_managedUser"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 4. The reconciliation starts an approval workflow for each ABSENT user.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk These workflows (managedUserApproval) wait for approval.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 5. Query the started workflow task instances.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $curl -u openidm-admin:openidm-admin "http://localhost:8080/openidm/workflow/taskinstance?_queryId=query-all-ids"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk sample response:
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk {"result":[{"_id":"26","name":"Evaluate request"},{"_id":"16","name":"Evaluate request"}]}
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 6. Approve the requests.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $curl -u openidm-admin:openidm-admin -X POST "http://localhost:8080/openidm/workflow/taskinstance/16?_action=complete" --data '{"requestApproved": "true"}'
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $curl -u openidm-admin:openidm-admin -X POST "http://localhost:8080/openidm/workflow/taskinstance/26?_action=complete" --data '{"requestApproved": "true"}'
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk 7. Query the managed users created by the async reconciliation after the approval step.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk $curl -u openidm-admin:openidm-admin "http://localhost:8080/openidm/managed/user?_queryId=query-all-ids"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkThe sample is also availeble with the -p samples/sample9 option now.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkFor testing the sample you might want to copy the following into a an exacutable text file and run it:
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkecho "copy the workflow and wait for 3 seconds to deploy"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkcp openidm/samples/sample9/workflow/managedUserApproval.bar openidm/workflow/
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenksleep 3
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkecho "run recon and then wait for 3 sec to get the instance id"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkcurl -u openidm-admin:openidm-admin -X POST "http://localhost:8080/openidm/recon?_action=recon&mapping=systemXmlfileAccounts_managedUser"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenksleep 3
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkcurl -u openidm-admin:openidm-admin "http://localhost:8080/openidm/workflow/taskinstance?_queryId=query-all-ids"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkecho ""
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkecho "now run the following after replacing XX with the taskinstanceNumber (the _id property) from above!"
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenkecho 'curl -u openidm-admin:openidm-admin -X POST "http://localhost:8080/openidm/workflow/taskinstance/XX?_action=complete" --data '\''{"requestApproved": "true"}'\'
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk