> For the complete documentation index, see [llms.txt](https://docs.openiam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openiam.com/administration-guide/reference/shipped-groovy-scripts.md).

# Shipped Groovy scripts

Every Groovy script OpenIAM ships, organised by extension point, so you start from a working example.

## What this is, and when you need it

OpenIAM ships **745** Groovy scripts across **140** directories. Every supported extension point has at least one working example. Browse them at **Administration → Groovy Manager**, route `/webconsole/groovyManager`; the paths below are the Groovy-Manager-relative paths you will see in its left pane and quote in a script reference.

The single most useful habit when writing an OpenIAM script is to start from the shipped script for that extension point rather than from a documentation snippet — the shipped script compiles against the deployed release, and its class declaration tells you the real base class and method signature.

{% hint style="warning" %}
Scripts are referenced by ID or by path, and the two behave differently on upgrade. A path reference picks up whatever is on disk; an ID reference pins a stored version. Decide deliberately which you want, and record it — a script "changing by itself" after an upgrade is almost always a path reference.
{% endhint %}

## By extension point

| Directory             | Scripts | Purpose                                                                       |
| --------------------- | ------- | ----------------------------------------------------------------------------- |
| `provision/`          | 397     | Policy-map attribute calculation and provisioning behaviour                   |
| `sync/`               | 206     | —                                                                             |
| `recon/`              | 41      | Reconciliation population, matching, situation and pre/post-processor scripts |
| `AM/`                 | 16      | —                                                                             |
| `batch/`              | 14      | Batch task bodies                                                             |
| `bpm/`                | 12      | —                                                                             |
| `prov-helper/`        | 12      | —                                                                             |
| `connector/`          | 11      | —                                                                             |
| `language/`           | 7       | —                                                                             |
| `selfservice/`        | 7       | SelfService flows including self-registration                                 |
| `idp/`                | 3       | Identity-provider assertion and NameID resolution                             |
| `business-rules/`     | 2       | —                                                                             |
| `mail/`               | 2       | —                                                                             |
| `ui-template/`        | 2       | Page-template field data models and validators                                |
| `webconsole/`         | 2       | —                                                                             |
| `workflow/`           | 2       | Approver resolution and workflow helpers                                      |
| `Users/`              | 1       | —                                                                             |
| `adaptive-risks/`     | 1       | —                                                                             |
| `geo/`                | 1       | Geo-IP resolution for adaptive authentication                                 |
| `oauth/`              | 1       | —                                                                             |
| `reports/`            | 1       | —                                                                             |
| `request-attributes/` | 1       | —                                                                             |
| `sTEpCVPw/`           | 1       | —                                                                             |
| `uri/`                | 1       | —                                                                             |
| `user-conversion/`    | 1       | User-type conversion validation and execution                                 |

## Full inventory

<details>

<summary>Every shipped script, by directory</summary>

**`AM/`**

`AuthenticationLoginCustomHandler_1.0.groovy` `CustomAuthLevelRedirectUrl_1.0.groovy` `ExampleCertToIdentityConverter_1.0.groovy` `ExampleDefaultCACertCheck_1.0.groovy` `ExampleNameIDResolver_1.0.groovy` `ExampleSAMLPostProcessor_1.0.groovy` `ExampleSAMLSPChainHandler_1.0.groovy` `ExampleURIFederationGroovyProcessor_1.0.groovy` `PrimaryEmail_1.0.groovy` `TestAbstractAuthLevelRedirectUrl_1.0.groovy` `TestAbstractRedirectURLGroovyProcessor_1.0.groovy` `TestAttributeMapper_1.0.groovy`

**`AM/oauth/`**

`CIFAbstractOauthScopeResolver_1.0.groovy` `RolesAbstractOauthScopeResolver_1.0.groovy`

**`AM/sp/`**

`CustomServiceProviderRelayStateGenerator_1.0.groovy` `ExampleSPNameIDResolver_1.0.groovy`

**Unclassified**

One shipped script is registered under an absolute filesystem path from a build machine rather than a script-manager folder. It is a test artefact and nothing calls it.

`testFile_1.0.groovy`

**`adaptive-risks/`**

`CustomAdaptiveRiskDefault_1.0.groovy`

**`batch/`**

`ActivateProcess_1.0.groovy` `LeaverProcess_1.0.groovy` `accountLockedNotification_1.0.groovy` `activationReminder_1.0.groovy` `deleteOnExpiration_1.0.groovy` `failedProvisionRequestReport_1.0.groovy` `inactiveUser_1.0.groovy` `passwordExpiredNotification_1.0.groovy` `passwordNearExpNotification_1.0.groovy` `provisionOnStartDate_1.0.groovy` `reconciliation_1.0.groovy` `selenium.test_1.0.groovy` `synchronization_1.0.groovy` `terminateOnExpiration_1.0.groovy`

**`bpm/`**

`CreateUserRequestHelper_1.0.groovy` `CustomCreateUserRequestEntitlementsApproverAssociationIdentifier_1.0.groovy` `CustomDefaultEditUserApproverAssociationIdentifier_1.0.groovy` `CustomDefaultGenericWorkflowRequestApproverAssociationIdentifier_1.0.groovy` `CustomDefaultNewHireRequestApproverAssociationIdentifier_1.0.groovy` `CustomDefaultUserAcceptInviteApproverAssociationIdentifier_1.0.groovy` `CustomManageAccessApproverAssociationIdentifier_1.0.groovy` `CustomNotificationDelegate_1.0.groovy` `CustomRBACMembershipWorkflowRequestApproverAssociationIdentifier_1.0.groovy` `CustomTerminationAccessApproverAssociationIdentifier_1.0.groovy`

**`bpm/certification/`**

`CustomCertificationHelper_1.0.groovy`

**`bpm/iamscripts/bpm/`**

`CreateUserRequestHelper_1.0.groovy`

**`business-rules/`**

`CustomActionExecutor_1.0.groovy` `CustomConditionExecutor_1.0.groovy`

**`connector/groovy/example/group/`**

`AddScriptConnector_1.0.groovy` `DeleteScriptConnector_1.0.groovy` `ModifyScriptConnector_1.0.groovy` `SearchScriptConnector_1.0.groovy`

**`connector/groovy/example/user/`**

`AddScriptConnector_1.0.groovy` `DeleteScriptConnector_1.0.groovy` `ResumeScriptConnector_1.0.groovy` `SearchScriptConnector_1.0.groovy` `SetPasswordScriptConnector_1.0.groovy` `SuspendScriptConnector_1.0.groovy` `TestScriptConnector_1.0.groovy`

**`geo/`**

`IPGeoAPIDefaultScript_1.0.groovy`

**`idp/`**

`TestCriiptoCallback_1.0.groovy` `TestCriiptoTransformationAuthenticator_1.0.groovy` `TestJustInTimeSAMLAuthenticator_1.0.groovy`

**`language/`**

`LanguageSupportDE_1.0.groovy` `LanguageSupportEN_1.0.groovy` `LanguageSupportES_1.0.groovy` `LanguageSupportJA_1.0.groovy` `LanguageSupportPT_1.0.groovy` `LanguageSupportRU_1.0.groovy` `LanguageSupportZH_1.0.groovy`

**`mail/custom/content/`**

`CreateUserRequestApproversApprovedEmail_1.0.groovy`

**`mail/custom/example/`**

`customizeMail_1.0.groovy`

**`oauth/`**

`TestOauthScopeResolver_1.0.groovy`

**`prov-helper/`**

`ADPreProcessor_1.0.groovy` `CustomConnectorResponseListenerHandler_1.0.groovy` `DefaultProvisionServiceEventProcessor_1.0.groovy` `LDAPPostProcessor_1.0.groovy` `LDAPPreProcessor_1.0.groovy` `OrganizationServicePostProcessor_1.0.groovy` `OrganizationServicePreProcessor_1.0.groovy` `ProvisionServiceGroupPostProcessor_1.0.groovy` `ProvisionServiceGroupPreProcessor_1.0.groovy` `ProvisionServiceGroupProvisionPostProcessor_1.0.groovy` `ProvisionServicePostProcessor_1.0.groovy` `ProvisionServicePreProcessor_1.0.groovy`

**`provision/ad/`**

`ThumbnailPhoto_1.0.groovy` `accountExpires_1.0.groovy` `c_1.0.groovy` `cn_1.0.groovy` `company_1.0.groovy` `country_1.0.groovy` `department_1.0.groovy` `displayName_1.0.groovy` `division_1.0.groovy` `employeeId_1.0.groovy` `employeeNumber_1.0.groovy` `employeeType_1.0.groovy` `givenName_1.0.groovy` `homeDirectory_1.0.groovy` `homeDrive_1.0.groovy` `initials_1.0.groovy` `l_1.0.groovy` `mail_1.0.groovy` `manager_1.0.groovy` `memberOf_1.0.groovy` `mobile_1.0.groovy` `objectclass_1.0.groovy` `ou_1.0.groovy` `postalCode_1.0.groovy` `sAMAccountName_1.0.groovy` `sn_1.0.groovy` `st_1.0.groovy` `streetAddress_1.0.groovy` `telephoneNumber_1.0.groovy` `title_1.0.groovy` `unicodePwd_1.0.groovy` `userAccountControl_1.0.groovy` `userPrincipalName_1.0.groovy`

**`provision/ad/fileshare/`**

`DefaultPermissionsSet_1.0.groovy` `FileServerAddress_1.0.groovy` `OverwriteWithPermissions_1.0.groovy` `Path_1.0.groovy` `UNCPath_1.0.groovy` `type_1.0.groovy`

**`provision/ad/group/`**

`Description_1.0.groovy` `ObjectClass_1.0.groovy` `groupCn_1.0.groovy` `groupPrincipal_1.0.groovy` `ou_1.0.groovy`

**`provision/ad/powershell/`**

`402881a486c18c650186c1ac803d074c_1.0.groovy` `ThumbnailPhoto_1.0.groovy` `accountExpires_1.0.groovy` `c_1.0.groovy` `cn_1.0.groovy` `company_1.0.groovy` `country_1.0.groovy` `department_1.0.groovy` `displayName_1.0.groovy` `division_1.0.groovy` `employeeId_1.0.groovy` `employeeNumber_1.0.groovy` `enabled_1.0.groovy` `givenName_1.0.groovy` `homeDirectory_1.0.groovy` `homeDrive_1.0.groovy` `initials_1.0.groovy` `l_1.0.groovy` `mail_1.0.groovy` `manager_1.0.groovy` `memberOf_1.0.groovy` `mobile_1.0.groovy` `ou_1.0.groovy` `postalCode_1.0.groovy` `sAMAccountName_1.0.groovy` `sn_1.0.groovy` `st_1.0.groovy` `streetAddress_1.0.groovy` `telephoneNumber_1.0.groovy` `title_1.0.groovy` `unicodePwd_1.0.groovy` `userPrincipalName_1.0.groovy`

**`provision/ad/powershell/group/`**

`402881a486c18c650186c1ac803d074c_1.0.groovy` `Description_1.0.groovy` `GroupCategory_1.0.groovy` `GroupPrincipal_1.0.groovy` `Members_1.0.groovy` `Name_1.0.groovy` `ObjectClass_1.0.groovy` `Path_1.0.groovy` `Scope_1.0.groovy` `sAMAccountName_1.0.groovy`

**`provision/aws/`**

`groups_1.0.groovy` `password_1.0.groovy` `path_1.0.groovy` `principal_1.0.groovy`

**`provision/azure/`**

`displayName_1.0.groovy` `enabled_1.0.groovy` `mailNickName_1.0.groovy` `memberOf_1.0.groovy` `password_1.0.groovy` `userPrincipalName_1.0.groovy`

**`provision/box/`**

`FirstName_1.0.groovy` `FoldersWithPermissions_1.0.groovy` `LastName_1.0.groovy` `Principal_1.0.groovy` `Role_1.0.groovy`

**`provision/exchange/user/`**

`ConnectorModeSettings_1.0.groovy` `MailboxType_1.0.groovy` `Name_1.0.groovy` `Password_1.0.groovy` `PrimarySmtpAddress_1.0.groovy` `UserPrincipalName_1.0.groovy` `account-disabled_1.0.groovy` `alias_1.0.groovy` `displayName_1.0.groovy` `immutableID_1.0.groovy` `ou_1.0.groovy`

**`provision/google/`**

`familyName_1.0.groovy` `givenName_1.0.groovy` `groupRole_1.0.groovy` `groups_1.0.groovy` `orgUnitPath_1.0.groovy` `password_1.0.groovy` `primaryEmail_1.0.groovy` `suspended_1.0.groovy`

**`provision/ipa/`**

`KrbPasswordExpiration_1.0.groovy` `MemberOf_1.0.groovy` `NsaccountLock_1.0.groovy` `email_1.0.groovy` `firstName_1.0.groovy` `lastName_1.0.groovy` `password_1.0.groovy` `principal_1.0.groovy`

**`provision/jdbc/`**

`HashPassword_1.0.groovy` `email_1.0.groovy` `firstName_1.0.groovy` `groups_1.0.groovy` `lastName_1.0.groovy` `password_1.0.groovy` `principal_1.0.groovy`

**`provision/ldap/`**

`402881a486c18c650186c1ab8cd506f4_1.0.groovy` `402881a486c18c650186c1ac0ab60700_1.0.groovy` `402881a486c18c650186c1ad3fa10827_1.0.groovy` `cn_1.0.groovy` `country_1.0.groovy` `displayName_1.0.groovy` `employeeNumber_1.0.groovy` `employeeType_1.0.groovy` `givenName_1.0.groovy` `gn_1.0.groovy` `homePhone_1.0.groovy` `initials_1.0.groovy` `l_1.0.groovy` `mail_1.0.groovy` `manager_1.0.groovy` `memberOf_1.0.groovy` `mobile_1.0.groovy` `o_1.0.groovy` `objectclass_1.0.groovy` `ou_1.0.groovy` `postalCode_1.0.groovy` `sn_1.0.groovy` `st_1.0.groovy` `streetAddress_1.0.groovy` `street_1.0.groovy` `thumbnailPhoto_1.0.groovy` `title_1.0.groovy` `uid_1.0.groovy` `userPassword_1.0.groovy`

**`provision/ldap/group/`**

`402881a486c18c650186c1ab8cd506f4_1.0.groovy` `402881a486c18c650186c1ac0ab60700_1.0.groovy` `402881a486c18c650186c1ad3fa10827_1.0.groovy` `Description_1.0.groovy` `ObjectClass_1.0.groovy` `gidNumber_1.0.groovy` `groupCn_1.0.groovy` `groupPirincipal_1.0.groovy` `ou_1.0.groovy`

**`provision/linux/`**

`end_date_1.0.groovy` `groups_1.0.groovy` `home_phone_1.0.groovy` `login_1.0.groovy` `name_1.0.groovy` `password_1.0.groovy` `room_number_1.0.groovy` `ssh_keys_1.0.groovy` `status_1.0.groovy` `surname_1.0.groovy` `work_phone_1.0.groovy`

**`provision/linux/group/`**

`groupName_1.0.groovy` `groupPrincipal_1.0.groovy`

**`provision/membership/`**

`DistinguishedNameGroupExtractor_1.0.groovy` `DistinguishedNameRoleExtractor_1.0.groovy` `LpapStrOrganizationExtractor_1.0.groovy` `NameResourceExtractor_1.0.groovy`

**`provision/o365/`**

`402881a486c18c650186c1adb857085f_1.0.groovy` `alternateEmailAddresses_1.0.groovy` `alternateMobilePhones_1.0.groovy` `blockCredential_1.0.groovy` `city_1.0.groovy` `country_1.0.groovy` `department_1.0.groovy` `displayName_1.0.groovy` `firstName_1.0.groovy` `immutableID_1.0.groovy` `lastName_1.0.groovy` `licensesToAssignJson_1.0.groovy` `licensesToRemoveJson_1.0.groovy` `manager_1.0.groovy` `mobilePhone_1.0.groovy` `office_1.0.groovy` `password_1.0.groovy` `phoneNumber_1.0.groovy` `postalCode_1.0.groovy` `state_1.0.groovy` `strongPasswordRequired_1.0.groovy` `title_1.0.groovy` `usageLocation_1.0.groovy` `userPrincipalName_1.0.groovy`

**`provision/oracle/`**

`oracle_account_status_1.0.groovy` `oracle_default_tablespace_1.0.groovy` `oracle_password_1.0.groovy` `oracle_temporary_tablespace_1.0.groovy` `oracle_user_default_roles_1.0.groovy` `oracle_user_privileges_1.0.groovy` `oracle_user_profile_1.0.groovy` `oracle_user_roles_1.0.groovy` `oracle_username_1.0.groovy`

**`provision/oracle-ebs/`**

`ebs_description_1.0.groovy` `ebs_emailAddress_1.0.groovy` `ebs_employeeId_1.0.groovy` `ebs_endDate_1.0.groovy` `ebs_memberOf_1.0.groovy` `ebs_startDate_1.0.groovy` `ebs_unencryptedPassword_1.0.groovy` `ebs_userName_1.0.groovy`

**`provision/oracle-idcs/`**

`country_1.0.groovy` `displayName_1.0.groovy` `email_1.0.groovy` `firstName_1.0.groovy` `groups_1.0.groovy` `isFederatedUser_1.0.groovy` `lastName_1.0.groovy` `locality_1.0.groovy` `middleName_1.0.groovy` `nickName_1.0.groovy` `password_1.0.groovy` `phoneNumber_1.0.groovy` `postalCode_1.0.groovy` `principal_1.0.groovy` `region_1.0.groovy` `status_1.0.groovy` `streetAddress_1.0.groovy`

**`provision/oracle/group/`**

`groupName_1.0.groovy` `groupPrincipal_1.0.groovy`

**`provision/postgresql/`**

`402881a486c18c650186c1ae35200924_1.0.groovy` `postgresql_password_1.0.groovy` `postgresql_privileges_1.0.groovy` `postgresql_roles_1.0.groovy` `postgresql_username_1.0.groovy` `postgresql_validuntil_1.0.groovy`

**`provision/postgresql/group/`**

`402881a486c18c650186c1ae35200924_1.0.groovy` `postgresql_group_principal_1.0.groovy`

**`provision/primary/`**

`groupPrimaryPrincipal_1.0.groovy` `primaryPassword_1.0.groovy` `primaryPrincipal_1.0.groovy` `primaryRandomPassword_1.0.groovy` `userAffiliations_1.0.groovy` `userGroups_1.0.groovy` `userResources_1.0.groovy` `userRoles_1.0.groovy`

**`provision/rexx/`**

`rexx_accessObjectId_1.0.groovy` `rexx_badgenumber_1.0.groovy` `rexx_badgenumbervalidfrom_1.0.groovy` `rexx_badgenumbervaliduntil_1.0.groovy` `rexx_email_1.0.groovy` `rexx_fax_1.0.groovy` `rexx_legicnumber_1.0.groovy` `rexx_legicnumbervalidfrom_1.0.groovy` `rexx_legicnumbervaliduntil_1.0.groovy` `rexx_personnelnumber_1.0.groovy` `rexx_phone_1.0.groovy` `rexx_phonemobile_1.0.groovy` `rexx_username_1.0.groovy`

**`provision/salesforce/`**

`alias_1.0.groovy` `defaultGroupNotificationFrequency_1.0.groovy` `digestFrequency_1.0.groovy` `emailEncodingKey_1.0.groovy` `email_1.0.groovy` `firstName_1.0.groovy` `languageLocaleKey_1.0.groovy` `lastName_1.0.groovy` `localeSidKey_1.0.groovy` `password_1.0.groovy` `profileId_1.0.groovy` `status_1.0.groovy` `timeZoneSidKey_1.0.groovy` `userPermissionsCallCenterAutoLogin_1.0.groovy` `userPermissionsMarketingUser_1.0.groovy` `userPermissionsOfflineUser_1.0.groovy` `userPermissionsWirelessUser_1.0.groovy` `username_1.0.groovy`

**`provision/salesforce/group/`**

`description_1.0.groovy` `groupPrincipal_1.0.groovy` `name_1.0.groovy`

**`provision/sap/`**

`sap_firstName_1.0.groovy` `sap_lastName_1.0.groovy` `sap_password_1.0.groovy` `sap_primaryEmail_1.0.groovy` `sap_userActivitiGroups_1.0.groovy` `sap_userRoles_1.0.groovy` `sap_username_1.0.groovy`

**`provision/scim/`**

`email_1.0.groovy` `firstName_1.0.groovy` `groups_1.0.groovy` `lastName_1.0.groovy` `password_1.0.groovy` `principal_1.0.groovy` `status_1.0.groovy`

**`provision/successfactors/`**

`addressLine1_1.0.groovy` `businessPhone_1.0.groovy` `cellPhone_1.0.groovy` `citizenship_1.0.groovy` `city_1.0.groovy` `companyExitDate_1.0.groovy` `country_1.0.groovy` `dateOfBirth_1.0.groovy` `dateOfPosition_1.0.groovy` `department_1.0.groovy` `division_1.0.groovy` `email_1.0.groovy` `empId_1.0.groovy` `fax_1.0.groovy` `firstName_1.0.groovy` `gender_1.0.groovy` `hireDate_1.0.groovy` `homePhone_1.0.groovy` `hr_1.0.groovy` `jobCode_1.0.groovy` `jobTitle_1.0.groovy` `lastModifiedDateTime_1.0.groovy` `lastModified_1.0.groovy` `lastName_1.0.groovy` `location_1.0.groovy` `manager_1.0.groovy` `married_1.0.groovy` `mi_1.0.groovy` `nationality_1.0.groovy` `password_1.0.groovy` `ssn_1.0.groovy` `status_1.0.groovy` `timeZone_1.0.groovy` `title_1.0.groovy` `userId_1.0.groovy` `userName_1.0.groovy` `zipCode_1.0.groovy`

**`provision/tableau/`**

`email_1.0.groovy` `fullName_1.0.groovy` `groups_1.0.groovy` `lastLogin_1.0.groovy` `name_1.0.groovy` `password_1.0.groovy` `principal_1.0.groovy` `siteRole_1.0.groovy`

**`provision/test-h2/`**

`address_1.0.groovy` `customAttr1_1.0.groovy` `customAttr2_1.0.groovy` `customAttr3_1.0.groovy` `customAttr4_1.0.groovy` `email_1.0.groovy` `firstName_1.0.groovy` `lastName_1.0.groovy` `memberOf_1.0.groovy` `password_1.0.groovy` `phone_1.0.groovy` `primaryPrincipal_1.0.groovy` `status_1.0.groovy`

**`provision/thales/`**

`402881a486c18c650186c1ae6c180951_1.0.groovy` `city_1.0.groovy` `country_1.0.groovy` `email_1.0.groovy` `groups_1.0.groovy` `mobile_1.0.groovy` `postalCode_1.0.groovy` `primaryPrincipal_1.0.groovy` `state_1.0.groovy` `streetAddress_1.0.groovy`

**`provision/thales-wsdl/`**

`402881a486c18c650186c1ae9dbe0982_1.0.groovy` `city_1.0.groovy` `country_1.0.groovy` `email_1.0.groovy` `fax_1.0.groovy` `groups_1.0.groovy` `mobile_1.0.groovy` `postalCode_1.0.groovy` `primaryPrincipal_1.0.groovy` `state_1.0.groovy` `streetAddress_1.0.groovy` `telephone_1.0.groovy`

**`provision/thales-wsdl/group/`**

`402881a486c18c650186c1ae9dbe0982_1.0.groovy` `description_1.0.groovy` `groupPrincipal_1.0.groovy`

**`recon/`**

`AppTableSearchQuery_1.0.groovy` `BlankSituationScript_1.0.groovy` `DoNothingGroupCommand_1.0.groovy` `GroupProcessor_1.0.groovy` `GroupSearchScript_1.0.groovy` `PeopleSoftSearchQuery_1.0.groovy` `PrePostExecutorSample_1.0.groovy` `UserSearchScript_1.0.groovy`

**`recon/AD/`**

`ADPopulationScript_1.0.groovy` `ADSearchQuery_1.0.groovy` `IdmSearchScript_1.0.groovy`

**`recon/Ad_Powershell/`**

`AdGroupSearchQuery_1.0.groovy` `AdUserSearchQuery_1.0.groovy` `IdmSearchScript_1.0.groovy` `PowershellADPopulationScript_1.0.groovy` `PowershellADSearchQuery_1.0.groovy` `PowershellGroupPopulationScript_1.0.groovy`

**`recon/CreateIdmGroupCommand/`**

`CreateIdmGroupCommand_1.0.groovy` `UpdateIdmGroupCommand_1.0.groovy`

**`recon/CreateIdmGroupCustomCommand/`**

`CreateIdmGroupCustomCommand_1.0.groovy` `UpdateIdmGroupCustomCommand_1.0.groovy`

**`recon/Linux/`**

`IdmSearchScript_1.0.groovy` `LinuxGroupPopulationScript_1.0.groovy` `LinuxGroupSearchQuery_1.0.groovy` `LinuxUserPopulationScript_1.0.groovy` `LinuxUserSearchQuery_1.0.groovy`

**`recon/Oracle/`**

`IdmSearchScript_1.0.groovy` `OracleGroupPopulationScript_1.0.groovy` `OracleGroupSearchQuery_1.0.groovy` `OracleSearchQuery_1.0.groovy` `OracleUserPopulationScript_1.0.groovy` `OracleUserSearchQuery_1.0.groovy`

**`recon/Salesforce/`**

`IdmSearchScript_1.0.groovy` `SalesforceUserPopulationScript_1.0.groovy` `SalesforceUserSearchQuery_1.0.groovy`

**`recon/google/`**

`GooglePopulationScript_1.0.groovy` `GoogleSearchQuery_1.0.groovy`

**`recon/ldap/`**

`LDAPGroupPopulationScript_1.0.groovy` `LDAPPopulationScript_1.0.groovy` `LDAPSearchGroupQuery_1.0.groovy` `LDAPSearchQuery_1.0.groovy`

**`reports/`**

`GetTerminatedUsersForReport_1.0.groovy`

**`request-attributes/`**

`userEmail_1.0.groovy`

**`sTEpCVPw/`**

`wFECn6J0_1.0.groovy`

**`selfservice/`**

`CartValidation_1.0.groovy` `ContactInfoPostProcessor_1.0.groovy` `ContactInfoPreProcessor_1.0.groovy` `CustomErrorPageDisplayHandler_1.0.groovy` `CustomLoginPageDisplayHandler_1.0.groovy` `UnauthenticatedContactInfoPostProcessor_1.0.groovy`

**`selfservice/selfregistration/`**

`SponsorValidator_1.0.groovy`

**`sync/`**

`SamplePostProcessorScript_1.0.groovy` `SamplePreProcessorScript_1.0.groovy`

**`sync/group/`**

`GroupCustomMatchObjectRule_1.0.groovy`

**`sync/group/ad/`**

`ADGroupSampleTransformationScript_1.0.groovy` `ADGroupSampleValidationScript_1.0.groovy` `ADGroupSyncAttributes_1.0.groovy`

**`sync/group/ad/powershell/`**

`ADGroupSampleTransformationScript_1.0.groovy` `ADGroupSampleValidationScript_1.0.groovy` `ADGroupSyncAttributes_1.0.groovy`

**`sync/group/aws/`**

`AWSGroupSyncAttributes_1.0.groovy` `AWSGroupTransformationScript_1.0.groovy` `AwsGroupValidationScript_1.0.groovy`

**`sync/group/azure/`**

`AzureGroupSampleTransformation_1.0.groovy` `AzureGroupSampleValidation_1.0.groovy` `AzureGroupSyncAttributes_1.0.groovy` `AzureLicenseSyncAttributes_1.0.groovy` `AzureLisenceSync_1.0.groovy` `AzureUserLicenseMappingSync_1.0.groovy`

**`sync/group/boomi/`**

`BoomiGroupSampleTransformationScript_1.0.groovy` `BoomiGroupSampleValidationScript_1.0.groovy` `BoomiGroupSyncAttributes_1.0.groovy`

**`sync/group/csv/`**

`BulkGroupEntitlementsUpload_1.0.groovy` `CSVGroupSampleTransformationScript_1.0.groovy` `CSVGroupSampleValidationScript_1.0.groovy` `CsvGroupCommonTransformationScript_1.0.groovy`

**`sync/group/google/`**

`GoogleGroupSampleTransformationScript_1.0.groovy` `GoogleGroupSampleValidationScript_1.0.groovy` `GoogleGroupSyncAttributes_1.0.groovy`

**`sync/group/ipa/`**

`IPAGroupSyncAttributes_1.0.groovy` `IPAGroupValidationScript_1.0.groovy` `TransformIPAGroupRecord_1.0.groovy`

**`sync/group/lastpass/`**

`LastPassFolderSampleTransformationScript_1.0.groovy` `LastPassFolderSampleValidationScript_1.0.groovy` `LastPassFolderSiteSampleTransformationScript_1.0.groovy` `LastPassFolderSiteSampleValidationScript_1.0.groovy` `LastPassFolderSiteSyncAttributes_1.0.groovy` `LastPassFolderSyncAttributes_1.0.groovy` `LastPassGroupSampleTransformationScript_1.0.groovy` `LastPassGroupSampleValidationScript_1.0.groovy` `LastPassGroupSyncAttributes_1.0.groovy`

**`sync/group/linux/`**

`LinuxGroupSyncAttributes_1.0.groovy` `LinuxSampleTransformationScript_1.0.groovy` `LinuxSampleValidationScript_1.0.groovy`

**`sync/group/openLDAP/`**

`LdapGroupSyncAttributes_1.0.groovy` `LdapGroupTransformationScript_1.0.groovy` `LdapGroupValidationScript_1.0.groovy`

**`sync/group/oracle-idcs/`**

`OracleIdcsGroupSampleTransformationScript_1.0.groovy` `OracleIdcsGroupSampleValidationScript_1.0.groovy` `OracleIdcsGroupSyncAttributes_1.0.groovy`

**`sync/group/postgresql/`**

`GroupSyncAttributes_1.0.groovy` `PostgresqlGroupSampleTransformation_1.0.groovy` `PostgresqlGroupSampleValidation_1.0.groovy`

**`sync/group/salesforce/`**

`SalesforceGroupSampleTransformationScript_1.0.groovy` `SalesforceGroupSampleValidationScript_1.0.groovy` `SalesforceGroupSyncAttributes_1.0.groovy` `SalesforcePermissionSetSampleTransformationScript_1.0.groovy` `SalesforcePermissionSetSampleValidationScript_1.0.groovy` `SalesforcePermissionSetSyncAttributes_1.0.groovy` `SalesforcePublicGroupSampleTransformationScript_1.0.groovy` `SalesforcePublicGroupSampleValidationScript_1.0.groovy` `SalesforcePublicGroupSyncAttributes_1.0.groovy`

**`sync/group/scim/`**

`ScimGroupSyncAttributes_1.0.groovy` `ScimGroupTransformationScript_1.0.groovy` `ScimGroupValidationScript_1.0.groovy`

**`sync/group/tableau/`**

`TableauGroupSampleTransformationScript_1.0.groovy` `TableauGroupSampleValidationScript_1.0.groovy` `TableauGroupSyncAttributes_1.0.groovy`

**`sync/group/thales/`**

`GroupSyncAttributes_1.0.groovy` `GroupValidationScript_1.0.groovy` `TransformGroupRecord_1.0.groovy`

**`sync/group/thales-wsdl/`**

`GroupSyncAttributes_1.0.groovy` `GroupValidationScript_1.0.groovy` `TransformGroupRecord_1.0.groovy`

**`sync/group/workday/`**

`WorkdayGrpSampleTransformation_1.0.groovy` `WorkdayGrpSampleValidationScript_1.0.groovy` `WorkdayGrpSyncAttributes_1.0.groovy`

**`sync/identities/`**

`refreshIdentity_1.0.groovy`

**`sync/log/log/`**

`LogSampleTransformationScript_1.0.groovy` `LogSampleValidationScript_1.0.groovy`

**`sync/mansys/csv/`**

`CSVManSysSampleTransformationScript_1.0.groovy` `CSVManSysSampleValidationScript_1.0.groovy` `CsvManagedSystemCommonTransformationScript_1.0.groovy`

**`sync/org/ad/`**

`ADOrgSampleTransformationScript_1.0.groovy` `ADOrgSampleValidationScript_1.0.groovy`

**`sync/org/csv/`**

`BulkOrgEntitlementsUpload_1.0.groovy` `CSVOrgSampleTransformationScript_1.0.groovy` `CSVOrgSampleValidationScript_1.0.groovy`

**`sync/resource/ad/`**

`OUToApplicationCategoryAttributes_1.0.groovy` `OuToApplicationCategoryTransformationScript_1.0.groovy`

**`sync/resource/csv/`**

`BulkResourceEntitlementsUpload_1.0.groovy` `CSVResSampleValidationScript_1.0.groovy` `CSVResourceSampleTransformationScript_1.0.groovy`

**`sync/resource/thales/`**

`Attributes_1.0.groovy` `Transformation_1.0.groovy` `Validation_1.0.groovy`

**`sync/resource/thales-wsdl/`**

`Attributes_1.0.groovy` `Transformation_1.0.groovy` `Validation_1.0.groovy`

**`sync/role/ad/`**

`ADRoleSampleTransformationScript_1.0.groovy` `ADRoleSampleValidationScript_1.0.groovy`

**`sync/role/boomi/`**

`BoomiRoleSampleTransformationScript_1.0.groovy` `BoomiRoleSampleValidationScript_1.0.groovy` `BoomiRoleSyncAttributes_1.0.groovy`

**`sync/role/csv/`**

`BulkRoleEntitlementsUpload_1.0.groovy` `CSVRoleSampleTransformationScript_1.0.groovy` `CSVRoleSampleValidationScript_1.0.groovy` `CsvRoleCommonTransformationScript_1.0.groovy`

**`sync/role/oracle-ebs/`**

`EBSRoleSyncAttributes_1.0.groovy` `OracleEBSRoleSampleTransformation_1.0.groovy` `OracleEBSRoleSampleValidation_1.0.groovy`

**`sync/role/postgresql/`**

`PostgresqlRoleSampleTransformation_1.0.groovy` `PostgresqlRoleSampleValidation_1.0.groovy` `RoleSyncAttributes_1.0.groovy`

**`sync/role/salesforce/`**

`SalesforceRoleSampleTransformationScript_1.0.groovy` `SalesforceRoleSampleValidationScript_1.0.groovy` `SalesforceRoleSyncAttributes_1.0.groovy`

**`sync/role/sap/`**

`SAPRoleSampleTransformationScript_1.0.groovy` `SAPRoleSampleValidationScript_1.0.groovy`

**`sync/user/ad/`**

`ADPowerShellAttributes_1.0.groovy` `ADPowerShellTransformation_1.0.groovy` `ADPowerShellValidation_1.0.groovy` `ADUserSyncAttributes_1.0.groovy` `ADValidation_1.0.groovy` `TransformActiveDirRecord_1.0.groovy`

**`sync/user/adp/`**

`ADPUserSyncAttributes_1.0.groovy` `ADPValidationScript_1.0.groovy` `TransformADPRecord_1.0.groovy`

**`sync/user/aws/`**

`AWSUserSyncAttributes_1.0.groovy` `AWSValidation_1.0.groovy` `TransformAWS_1.0.groovy`

**`sync/user/azure/`**

`AzureAuthenticationAssignmentsSyncAttributes_1.0.groovy` `AzureAuthenticationAssignmentsTransformation_1.0.groovy` `AzureAuthenticationAssignmentsValidation_1.0.groovy` `AzureUserSampleTransformation_1.0.groovy` `AzureUserSampleValidation_1.0.groovy` `AzureUserSyncAttributes_1.0.groovy`

**`sync/user/boomi/`**

`BoomiUserSampleTransformationScript_1.0.groovy` `BoomiUserSampleValidationScript_1.0.groovy` `BoomiUserSyncAttributes_1.0.groovy`

**`sync/user/box/`**

`BoxUserSampleTransformationScript_1.0.groovy` `BoxUserSampleValidationScript_1.0.groovy` `BoxUserSyncAttributes_1.0.groovy`

**`sync/user/csv/`**

`CSVSampleTransformationScript_1.0.groovy` `CSVSampleValidationScript_1.0.groovy` `CsvUserEntitlementsTransformationScript_1.0.groovy`

**`sync/user/db/`**

`DBSampleTransformationScript_1.0.groovy` `DBSampleValidationScript_1.0.groovy`

**`sync/user/google/`**

`GoogleUserSampleTransformationScript_1.0.groovy` `GoogleUserSampleValidationScript_1.0.groovy` `GoogleUserSyncAttributes_1.0.groovy`

**`sync/user/ipa/`**

`IPAUserSyncAttributes_1.0.groovy` `TransformIPARecord_1.0.groovy` `ValidateIPARecord_1.0.groovy`

**`sync/user/jdbc/`**

`JdbcUserSampleTransformationScript_1.0.groovy` `JdbcUserSampleValidationScript_1.0.groovy` `JdbcUserSyncAttributes_1.0.groovy`

**`sync/user/lastpass/`**

`LastPassUserSampleTransformationScript_1.0.groovy` `LastPassUserSampleValidationScript_1.0.groovy` `LastPassUserSyncAttributes_1.0.groovy`

**`sync/user/linux/`**

`LinuxSampleTransformationScript_1.0.groovy` `LinuxSampleValidationScript_1.0.groovy` `LinuxUserSyncAttributes_1.0.groovy`

**`sync/user/openLDAP/`**

`LdapUserSyncAttributes_1.0.groovy` `LdapUserTransformation_1.0.groovy` `LdapUserValidation_1.0.groovy`

**`sync/user/oracle/`**

`OracleUserSampleTransformation_1.0.groovy` `OracleUserSampleValidation_1.0.groovy` `UserSyncAttributes_1.0.groovy`

**`sync/user/oracle-ebs/`**

`EBSUserSyncAttributes_1.0.groovy` `OracleEBSUserSampleTransformation_1.0.groovy` `OracleEBSUserSampleValidation_1.0.groovy`

**`sync/user/oracle-idcs/`**

`OracleIdcsUserSampleTransformationScript_1.0.groovy` `OracleIdcsUserSampleValidationScript_1.0.groovy` `OracleIdcsUserSyncAttributes_1.0.groovy`

**`sync/user/postgresql/`**

`PostgresqlUserSampleTransformation_1.0.groovy` `PostgresqlUserSampleValidation_1.0.groovy` `UserSyncAttributes_1.0.groovy`

**`sync/user/rexx/`**

`RexxUserSampleTransformation_1.0.groovy` `RexxUserSampleValidation_1.0.groovy` `RexxUserSyncAttributes_1.0.groovy`

**`sync/user/salesforce/`**

`SalesforceUserSyncAttributes_1.0.groovy` `SalesforceValidationScript_1.0.groovy` `TransformSalesforceRecord_1.0.groovy`

**`sync/user/sap/`**

`SAPUserSampleTransformation_1.0.groovy` `SAPUserSampleValidation_1.0.groovy`

**`sync/user/scim/`**

`ScimUserSyncAttributes_1.0.groovy` `ScimValidationScript_1.0.groovy` `TransformScimRecord_1.0.groovy`

**`sync/user/successfactors/`**

`SuccessfactorsUserSyncAttributes_1.0.groovy` `SuccessfactorsValidationScript_1.0.groovy` `TransformSuccessfactorsRecord_1.0.groovy`

**`sync/user/tableau/`**

`TableauUserSampleTransformationScript_1.0.groovy` `TableauUserSampleValidationScript_1.0.groovy` `TableauUserSyncAttributes_1.0.groovy`

**`sync/user/testH2Db/`**

`TestH2DbUserSampleTransformation_1.0.groovy` `TestH2DbUserSampleValidation_1.0.groovy` `TestH2DbUserSyncAttributes_1.0.groovy`

**`sync/user/thales/`**

`Transform_1.0.groovy` `UserSyncAttributes_1.0.groovy` `Validation_1.0.groovy`

**`sync/user/thales-wsdl/`**

`Transform_1.0.groovy` `UserSyncAttributes_1.0.groovy` `Validation_1.0.groovy`

**`sync/user/workday/`**

`WorkdaySyncAttributes_1.0.groovy` `WorkdayUserSampleTransformation_1.0.groovy` `WorkdayUserSampleValidationScript_1.0.groovy`

**`ui-template/`**

`fieldDataModel_1.0.groovy` `templateDataModel_1.0.groovy`

**`uri/`**

`ITPolicyUsing_1.0.groovy`

**`user-conversion/`**

`UserTypeConversion_1.0.groovy`

**`webconsole/`**

`EditUserController_1.0.groovy` `NewUserController_1.0.groovy`

**`workflow/resource/`**

`ServiceNowTicketCreationRevoke_1.0.groovy` `ServiceNowTicketCreation_1.0.groovy`

</details>

## Version suffixes

Shipped scripts carry a `_1.0` suffix before the extension. That suffix is part of the stored version, not decoration. When you copy a script, increment it deliberately and keep the previous version available — that is your rollback path for a script change.

*Applies to OpenIAM 2026.8.1. Last reviewed 7 August 2026.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.openiam.com/administration-guide/reference/shipped-groovy-scripts.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
