Notes covering OpenIDM software requirements, fixes, known issues. The OpenIDM project offers flexible, open source services for automating management of the identity life cycle.

Chapter 1. What's New in OpenIDM 4.5

1.1. What's New in 4.5.1

OpenIDM 4.5.1 is a maintenance release that resolves a number of issues, and brings the enhancements described in this section. It is strongly recommended that you update to this release to take advantage of important functional fixes. ForgeRock customers can contact support for help and further information.

The process for updating from OpenIDM 4.5.0 to OpenIDM 4.5.1 is fairly straightforward. No schema changes have been implemented in this release so you should be able to run a CLI or UI update without any problems. Refer to "Updating OpenIDM 4.0, Stage Three" in the Installation Guide for guidance on starting the update.

Improvements to password reset policy failure handling

For more information, see OPENIDM-7945

Schema editor enhancements and fixes

For more information, see OPENIDM-7405

1.2. What's New in 4.5.0

OpenIDM 4.5.0 provides many new features and product enhancements. The following list describes the main new features affecting an end user.

Enhancements to the Update Model

The automated update process, introduced in OpenIDM 4.0.0, has been enhanced in OpenIDM 4.5 and includes the ability to update an OpenIDM instance by using the CLI and the Admin UI. In addition, the update mechanism now supports changes to the database schema for the supported repositories.

For more information, see "Updating OpenIDM" in the Installation Guide.

Ability to Direct Audit Events to Third-Party Products

OpenIDM now supports directing audit events to third-party data management services, such as Elasticsearch and Java Message Service (JMS).

For more information, see "Elasticsearch Audit Event Handler" in the Integrator's Guide and "JMS Audit Event Handler" in the Integrator's Guide.

Support for dynamic role grants and temporal constraints on roles

The roles mechanism now enables you to define conditions, based on a query filter, that will automatically grant roles to users for whom the query returns true. In addition, you can declare temporal constraints on a role, which will make the role effective only for a defined period.

For more information, see "Granting Roles Dynamically" in the Integrator's Guide and "Using Temporal Constraints to Restrict Effective Roles" in the Integrator's Guide.

Ability to Visualize Relationships Between Objects

The OpenIDM Admin UI provides a relationships graph widget that enables you to visualize the various levels of relationships between objects.

For more information, see "Viewing Relationships in Graph Form" in the Integrator's Guide.

Custom Dashboard Configuration

OpenIDM 4.5.1-20 supports customization of multiple dashboards with a variety of widgets. Individual widgets can be moved around each dashboard.

For more information, see "Configuring OpenIDM from the Admin UI" in the Integrator's Guide.

Support for Literal Expression Queries on System Objects

Previously, literal expressions (true and false) could be used only in queries on managed objects. In OpenIDM 4.5, you can also query system objects with an expression such as the following:

$ curl \
 --header "X-OpenIDM-Username: openidm-admin" \
 --header "X-OpenIDM-Password: openidm-admin" \
 --request GET \
New OpenICF Connectors

OpenIDM supports a number of new OpenICF connectors, including an implementation of the scripted Groovy connector that enables you to connect to an SAP system, and an implementation of the scripted PowerShell connector that enables you to connect to Azure AD.

For more information about the connectors supported with OpenIDM, see Connectors Guide.

For installation instructions, see "Installing OpenIDM Services" in the Installation Guide.

Several samples are provided to familiarize you with the OpenIDM features. For more information, see "Overview of the OpenIDM Samples" in the Samples Guide.

For an architectural overview and a high-level presentation of OpenIDM, see "Architectural Overview" in the Integrator's Guide.

1.3. Security Advisories

ForgeRock issues security advisories in collaboration with our customers and the open source community to address any security vulnerabilities transparently and rapidly. ForgeRock's security advisory policy governs the process on how security issues are submitted, received, and evaluated as well as the timeline for the issuance of security advisories and patches.

For details of all the security advisories across ForgeRock products, see Security Advisories in the Knowledge Base library.

Chapter 2. Before You Install OpenIDM Software

This chapter covers prerequisites for installing and running OpenIDM software.

For OpenIDM 4.5, the following configurations are supported for use in production.


The following JDBC repositories are supported for use in production:

  • MySQL version 5.5, 5.6, and 5.7 with MySQL JDBC Driver Connector/J 5.1.18 or later

  • Microsoft SQL Server 2012 and 2014

  • Oracle Database 11gR2 and 12c

  • PostgreSQL 9.3 and 9.4

  • IBM DB2, 10.x

OrientDB is provided for evaluation only.

Stand-alone installation

You must install OpenIDM as a stand-alone service, using Apache Felix and Jetty, as provided. Alternate containers are not supported.

OpenIDM 4.5 bundles Jetty version 9.2.


OpenIDM 4 bundles the following OpenICF connectors:

  • CSV File Connector

  • Database Table Connector

  • Groovy Connector Toolkit

    This toolkit enables you to create scripted connectors to virtually any resource

  • LDAP Connector

  • XML File Connector

OpenIDM 4.5 bundles the following additional connectors:

  • Kerberos Connector

  • Scripted SSH Connector

    Currently supported only as a prerequisite for the Kerberos Connector

A PowerShell Connector Toolkit is available for download from ForgeRock Backstage, and enables you to create scripted connectors to address the requirements of your Microsoft Windows ecosystem.

Additional connectors are supported with a subscription, and are available on the ForgeRock Backstage site. The following connectors are bundled only with the OpenIDM Enterprise release:

  • Google Apps Connector

  • Salesforce Connector

ForgeRock provides additional connectors, as listed on the OpenICF project connectors site.

When using the LDAP connector to provision to Active Directory, OpenIDM 4.5 supports Active Directory Domain Controllers, Active Directory Global Catalogues, and Active Directory Lightweight Directory Services (LDS).

OpenIDM 4.5 also provides support for Windows 2012 R2 as the remote system for connectors and password synchronization plugins.

The following table lists the supported connector, connector server, and password synchronization plugins for this OpenIDM release.

Supported Connectors, Connector Servers, and Plugins
ConnectorSupported With OpenIDM 4.0Supported With OpenIDM 4.5
CSV File Connector1.
Database Table Connector1.
Google Apps Connector1.
Groovy Connector Toolkit1.
Kerberos Connector-
LDAP Connector1.
Powershell Connector Toolkit1.
Salesforce Connector2.
XML Connector1.
Active Directory Connector1.
Java Connector Server1.5.0.0,,,
.NET Connector Server1.5.0.0,,,
OpenDJ Password Synchronization Plugin

1.0.3, supported for OpenDJ 2.6.3

1.1.1, supported for OpenDJ 3.0.0

1.0.3, supported for OpenDJ 2.6.3

1.1.1, supported for OpenDJ 3.0.0

3.5.0, supported for OpenDJ 3.5.0 Enterprise Edition (not for OpenDJ OEM Edition)

Active Directory Password Synchronization Plugin1.0.3, supported on Windows 2008 R2 and Windows 2012 R21.1.0, supported on Windows 2008 R2 and Windows 2012 R2

OpenIDM 4.0 and upwards supports a revised version of the OpenICF Framework. You must use the supported versions of the .NET Connector Server, or the Java Connector Server. The 1.5.x Java Connector Server is backward compatible with the version 1.1.x connectors. The 1.5.x .NET Connector Server is compatible only with the 1.4.x and 1.5.x connectors.

The .NET connector server requires the .NET framework (version 4.5 or later) and is supported on Windows Server 2008 R2 and 2012 R2.


Although the scripted connector toolkits are supported, connectors that you build with these toolkits are not supported. You can find examples of how to build connectors with these toolkits in "Samples That Use the Groovy Connector Toolkit to Create Scripted Connectors" in the Samples Guide and "Samples That Use the PowerShell Connector Toolkit to Create Scripted Connectors" in the Samples Guide.


ForgeRock has tested many browsers with the OpenIDM UI, including the following browsers.

  • Chrome and Chromium, latest stable version

  • Firefox, latest stable version

  • Safari, latest stable version

  • Internet Explorer 9 and later

Operating Systems

ForgeRock supports the use of OpenIDM 4.5 on the following operating systems:

  • Red Hat Enterprise Linux 6.x/7.x (CentOS Linux 6.x/7.x)

  • Ubuntu Linux 14.04

  • Windows 2008 R2

  • Windows 2012 R2

Java Environment

OpenIDM requires Java 7 or Java 8, specifically at least the Java Standard Edition runtime environment. ForgeRock has performed most testing with Oracle Java Platform, Standard Edition.

ForgeRock recommends that you keep your Java installation up to date with the latest security fixes.

When using the Oracle JDK, you also need the Java Cryptography Extension (JCE) policy files.

On Windows systems, use Java SE JDK 7 update 6 or later, to take advantage of the JVM fix relating to non-blocking sockets with the default Jetty configuration.

OpenIDM 4.5 also supports OpenJDK 1.7 and OpenJDK 1.8.

If you have a special request to support a component or combination not listed here, contact ForgeRock at

You need 250 MB disk space and 1 GB memory for an evaluation installation. For a production installation, disk space and memory requirements will depend on the size of any internal and external repositories, as well as the size of the audit and service log files that OpenIDM creates.

Chapter 3. Fixes, Limitations, & Known Issues

This chapter covers the status of key issues and limitations for OpenIDM 4.5. For details and information on other issues, see the OpenIDM issue tracker.

3.1. Key Fixes

This section covers key bug fixes in OpenIDM 4.5 software.

3.1.1. Key Fixes in 4.5.1

The following important bugs were fixed in this release:

  • OPENIDM-8064: Backport OPENIDM-6538: After update from 4.5 to 5.0 many services are unable to startup

  • OPENIDM-7992: Adding relationship property to managed user schema breaks resource view

  • OPENIDM-7982: Backport OPENIDM-7803: Audit activity occurs for update even when before/after show no differences

  • OPENIDM-7981: UI mapping pages receive recon status updates from other mappings

  • OPENIDM-7946: Backport OPENIDM-6641: cannot-contains-others policy is broken and does not correctly detect values which do not meet the policy requirements

  • OPENIDM-7806: Backport OPENIDM-6156: multi-valued mail attribute causes reconciliation to abort without accurately auditing the failure cause

  • OPENIDM-7771: Backport OPENIDM-7223: recon always detects manager field as modified

  • OPENIDM-7675: Backport OPENIDM-6051: Entire source object is returned when an attribute in sample data is null

  • OPENIDM-7674: Backport OPENIDM-7422: Apostrophe character is not displaying properly in the Provisioning Roles

  • OPENIDM-7673: Backport OPENIDM-6291: '/_id: Expecting a value' warning when adding a Role with an On Assignment script

  • OPENIDM-7670: Backport OPENIDM-5850: groupRoleMapping in passthrough authentication not working with LDAP

  • OPENIDM-7584: Sorting in workflow notification is not working properly

  • OPENIDM-7562: Backport OPENIDM-6818: OpenIDM ICF Provisioner 'runAs' use-case is broken when integrating with OpenDJ

  • OPENIDM-7546: Backport OPENIDM-7545: Setting viewable==false for manager attribute prevents rendering the New User dialog

  • OPENIDM-7478: Backport OPENIDM-6720: MySQLTableHandler erroneously unused by JDBCRepoService.getGenericTableHandler()

  • OPENIDM-7477: Backport OPENIDM-6207: Excessive DB lock contention resulting from readForUpdateQueryStr execution in GenericTableHandler

  • OPENIDM-7411: Backport OPENIDM-7108: Password Reset Token issued by one process cannot be validated by a different process

  • OPENIDM-7410: Backport OPENIDM-5754: onUpdate trigger on managed user called twice with a patch operation

  • OPENIDM-7409: Backport OPENIDM-7014: SQLException thrown during GenericTableHandler.readForUpdate() is masked by failure to close the Statement associated with the ResultSet

  • OPENIDM-7408: Backport OPENIDM-6068: Target reconciliation does not finish for large datasets

  • OPENIDM-7407: Backport OPENIDM-6923: IDM stops responding during create with managed role

  • OPENIDM-7406: Backport OPENIDM-5906: PATCH request with null rev invoked twice at the same time causes infinite loop

  • OPENIDM-6628: Backport OPENIDM-6619: after object missing from activity log when removing an authzRole

  • OPENIDM-6549: Backport OPENIDM-6457: CREATE request with _fields for relationships are not returned in the response

  • OPENIDM-6502: NullPointerException when external client returns HTTP 204 response

3.1.2. Key Fixes in 4.5.0

The following important bugs were fixed in this release:

  • OPENIDM-6032: In some situations, the Admin UI does not display the properties of a completed workflow

  • OPENIDM-5960: EmailClient requires username/password when auth is disabled

  • OPENIDM-5908: Sample source output does not work when source is empty

  • OPENIDM-5906: PATCH request with null rev invoked twice at the same time causes infinite loop

  • OPENIDM-5895: Admin UI does not display multiple assignments of the same role

  • OPENIDM-5845: Linked view ends with global exception if there is something wrong with some linked resource

  • OPENIDM-5841: Query filters with OR do not work as expected with null value properties

  • OPENIDM-5711: onUpdate script not executed when Updating a user with a provisioning or auth role

  • OPENIDM-5686: ambiguousTargetObjectIds not provided to situation action scripts

  • OPENIDM-5683: targetIdsCaseSensitive not honored when "links" set in mapping (backport of OPENIDM-5459)

  • OPENIDM-5624: Many-to-one relationships are not honoured

  • OPENIDM-5561: configimport fails to add new config object

  • OPENIDM-5557: Config audit event may exceed size limit of changedFields column

  • OPENIDM-5551: Correlation queries should not be invoked during liveSync of delete operations

  • OPENIDM-5542: OpenAM_Sessions setting wrong truststore property name

  • OPENIDM-5520: QueryFilter property of relationship schema not used to filter dropdown

  • OPENIDM-5481: When creating a workflow instance over REST using openidm-admin, errors appear in the admin interface

  • OPENIDM-5477: external/rest endpoint only returns the last "Set-Cookie" header

  • OPENIDM-5471: LastSync EffectiveAssignments not working when implicit sync is turned off on a target system

  • OPENIDM-5446: Removing a Managed Assignment from a Role is not reflected on the target system

  • OPENIDM-5438: Infinite loop within Restlet 2.1.2 library when using ExternalRest over SSL

  • OPENIDM-5436: "total" not returned with query-all-ids-count on explicit table

  • OPENIDM-5313: Data disappears when sorted in the UI

  • OPENIDM-5295: NPE during Reconciliation when updating/linking a target entry which is no longer present

  • OPENIDM-5227: LDAP Connector search filters not persisted by the Admin UI

  • OPENIDM-5224: When editing existing Groovy scripts, the dropdown type changes to JavaScript everytime

  • OPENIDM-5223: With implicit sync off, removal of role assignment not properly provisioned to target at reconciliation

  • OPENIDM-5208: Unable to save dynamic linkQualifer script within the Admin UI

  • OPENIDM-5207: OpenIDM Admin UI throws 'Bad Request' when searching for Sample User on Attributes Grid

  • OPENIDM-5204: Session time-out within Admin UI prevents mapping changes from being saved after re-auth

  • OPENIDM-5200: "_id" property form is displayed when "return by default" is changed to true

  • OPENIDM-5197: Cancelling a reconciliation within the UI stops browser from loading information on the mapping associated with the cancelled recon

  • OPENIDM-5190: Transform script not evaluated by the Admin UI if the source is the complete object

  • OPENIDM-5189: Difficulty configuring a given property mapping to use the complete source object via the UI

  • OPENIDM-5176: Unable to shutdown OpenIDM running as a service in *nix environments

  • OPENIDM-5163: CSV connector configuration headerName and headerUid mandatory

  • OPENIDM-5154: Attempting to change user password fails with Failed policy validation

  • OPENIDM-5150: JSON configuration files always reloaded at startup irrespective of modifications

  • OPENIDM-5146: When using OpenAM session for OpenIDM authentication, user registration does not display on OpenAM login page

  • OPENIDM-5097: Configuring OpenAM session authentication causes continuous reauthentication prompts

  • OPENIDM-5042: No "security questions" tab for user profile when only using password reset

  • OPENIDM-5032: Workflow sample: unable to complete manager task, due to startup issues

  • OPENIDM-5017: keyAlias within authentication.json is hard-coded and does not use property substitution

  • OPENIDM-5011: Livesync configured in the UI fails to sync user changes from AD

  • OPENIDM-5008: startup has script error when OpenJDK is used

  • OPENIDM-4992: In workflow use cases managed users can not be created via Admin UI

  • OPENIDM-4986: Unable to add properties to managed users in samples

  • OPENIDM-4961: enableFilteredResultsHandler:true causes NPEs when using queryFilter=true

  • OPENIDM-4957: OpenAM Auth Module, UI doesn't reflect change in Require OpenAM Authentication setting, after saving (refresh required)

  • OPENIDM-4954: In Admin UI, Audit Event config, "passed variables" added to the script are not saved

  • OPENIDM-4946: Admin UI -- CSV Audit Handler: if tamper-evident security is disabled and signature interval is blank, other security entries lead to audit service failure

  • OPENIDM-4945: Newline character was not saved correctly when configured through UI and caused only one line in csv audit files

  • OPENIDM-4934: Client-side pre-validation not being performed on Admin UI edit screens

  • OPENIDM-4926: Scriptedcrest2Dj and Scriptedrest2Dj samples do not work with OpenDJ 3.0.0

  • OPENIDM-4919: Script eval action doesn't handle ResourceExceptions thrown by scripts

  • OPENIDM-4917: Scripted CREST Sample. UI connector template is missing descriptions

  • OPENIDM-4916: workflow sample issues on startup and manager task completion

  • OPENIDM-4914: In Admin UI, deleting connector for sample5 fails with internal error

  • OPENIDM-4913: TaskScanner not working when using Oracle as a repo

  • OPENIDM-4911: H2 repo not starting up properly

  • OPENIDM-4879: Workflow sample usecase specific repo config file is missing for Oracle and postgreSQL

  • OPENIDM-4874: Add user password page loses cursor focus after tabbing/clicking

  • OPENIDM-4872: Self Registration page password field loses cursor focus after tabbing/clicking

  • OPENIDM-4859: Selecting manager on Assignment Attributes tab causes page to load incompletely

  • OPENIDM-4857: Clicking disabled Save button on Authorization Role page takes you to User Details page

  • OPENIDM-4856: Role edit page doesn't load when openidm-authorized, Basic minimum user clicked

  • OPENIDM-4817: Creating a managed object with relationship property using string fails with internal server error and status 500

  • OPENIDM-4808: Hidden tab visible on user edit page

  • OPENIDM-4798: Command to create a managed user with encoded percentage in ID fails with server error on policy

  • OPENIDM-4774: Live sync schedules created via the Admin UI are not enabled

  • OPENIDM-4681: With postgreSQL repo workflow service randomly fails to start properly

  • OPENIDM-4673: JDBC repo on MySQL with SSL requires a client key

  • OPENIDM-4624: MS SQL database script creates the openidm user with the wrong password

  • OPENIDM-4564: Inconsistency in launcher.json

  • OPENIDM-4549: Warnings when importing MS-SQL schema

  • OPENIDM-4473: Activiti does not pick up DataSource configuration changes.

  • OPENIDM-4451: When workflow is disabled, a request to workflow endpoint fails with status 500 with empty response

  • OPENIDM-4388: repo/scheduler not found exception, when Oracle DB is the repo

  • OPENIDM-4369: Viewing data for an LDAP/Group in the UI throws an error

  • OPENIDM-4321: Unable to use for remote administration over a secure port

  • OPENIDM-4261: Setting relationship properties to empty string throws NPE

  • OPENIDM-4110: Multiple servlets map to path stacktraces on startup with MySQL/DB2/MSSQL as repo

  • OPENIDM-4080: Deleting a custom Certificate in Trustore via REST now returns a broken response

  • OPENIDM-4049: User list doesn't filter as input is typed into the filter fields

  • OPENIDM-4020: "My group's tasks" not showing tasks from different processes

  • OPENIDM-3974: Unable to update/add a property in response.content object in Javascript script (launched from router onResponse hook)

  • OPENIDM-3972: Sync Failure handling calls to onSyncFailure.js-deadLetterQueue do not work

  • OPENIDM-3910: Inconsistent named queries across various DB config scripts

  • OPENIDM-3745: UI doesn't display msg related to failedPolicyRequirements when attempting to add new process

  • OPENIDM-3667: openidm/managed/user/openidm-admin 404 (Not Found) when selecting process instance created by openidm-admin

  • OPENIDM-3515: Query Expression Builder within the Admin UI generates invalid ! filter

  • OPENIDM-3450: CLI.SH configimport does not work with the --replaceAll option

  • OPENIDM-3366: Password sync loop when LDAP groups change

  • OPENIDM-3327: Regex pattern for email validation too strict

  • OPENIDM-3097: Patch for replace of array value /path/to/i removes entry i+1

  • OPENIDM-3000: Variables passed to groovy scripts using globals map have extra quotes around values

3.2. Limitations

OpenIDM 4.5 has the following known limitations:

  • The automated update process is not currently supported on Windows platforms.

  • When you add or edit a connector through the Admin UI, the list of required Base Connector Details is not necessarily accurate for your deployment. Some of these details might be required for specific deployment scenarios only. If you need a connector configuration where not all the Base Connector Details are required, you must create your connector configuration file over REST (see "Creating Default Connector Configurations" in the Integrator's Guide) or edit the connector configuration file (conf/provisioner.openicf-connector-type.json) directly.

  • For OracleDB repositories, queries that use the queryFilter syntax do not work on CLOB columns in explicit tables.

  • A conditional GET request, with the If-Match request header, is not currently supported.

  • There are some issues with CREATE requests with client-assigned IDs on system objects. Currently, not all connectors behave the same in this regard. For more information, see the following issues:

  • OpenIDM provides an embedded workflow and business process engine based on Activiti and the Business Process Model and Notation (BPMN) 2.0 standard. As an embedded system, local integration is supported. Remote integration is not currently supported.

  • For updates and patches from OpenIDM 4.0.0, you can use the CLI, and any supported browser listed in "Before You Install OpenIDM Software", except Internet Explorer 9.

  • If you're using the OPENAM_SESSION module to help OpenIDM work with OpenAM software, modify the JWT_SESSION module to limit token lifetime to 5 seconds. For more information, see OPENAM_SESSION Module in the Integrator's Guide and the "Supported Session Module" in the Integrator's Guide.

3.3. Known Issues

The following issues are known to exist in OpenIDM 4.5.1:

  • OPENIDM-7644: Admin UI should create schedule config instead of direct scheduler entries

  • OPENIDM-6514: JDBC repo errors on startup when using mysql

  • OPENIDM-6509: JMX enable prevents GC of discarded BoneCPDataSource objects

  • OPENIDM-6481: OpenIDM creates redundant BoneCPDataSource

  • OPENIDM-6212: After update there should be only a single .new-timestamp per file

  • OPENIDM-6188: Full PATH to PROJECT_HOME is being misinterpreted

  • OPENIDM-6170: Update process creates erroneous new keystore and truststore files that should be removed

    Workaround - After the update process, delete any files named and from your security directory.

  • OPENIDM-6135: DatabaseTableConnector does not reconnect

  • OPENIDM-6117: The execute.clustered.schedules=false setting does not work as described

  • OPENIDM-6106: Paging with scriptedcrest connector is not working

  • OPENIDM-6083: Sample 2d -- Admin UI rendering of group recon is illegible in the UI

  • OPENIDM-6072: Multiple answers to the same security question are possible

  • OPENIDM-6071: OpenIDM changes port from 389 to 1389 when configuring LDAP connector through the UI

    Workaround - Change the LDAP port in the UI manually to the port you had originally set.

  • OPENIDM-6068: Target reconciliation does not finish for large datasets

  • OPENIDM-6067: When a mapping is deleted through the Admin UI, links associated with the mapping are not deleted

  • OPENIDM-6043: ScriptedREST and ScriptedCREST samples do not work with OpenDJ 3.5.0

  • OPENIDM-6031: Some workflow use cases show the wrong property name (_body instead of body)

  • OPENIDM-6029: Recon throughput from CSV to Managed user doesn't scale

  • OPENIDM-6025: "Filter Actions" message for "authentication" and "access" event is not correct

  • OPENIDM-6015: Clicking the '-' button next to 'The Value for' Reconciliation Query Filters in the Admin UI throws JavaScript errors in the console

  • OPENIDM-5986: configimport returns success when errors occur

  • OPENIDM-5963: Connector schema data preview can fail depending on the order of automatically generated schema fields

  • OPENIDM-5962: Managed User Edit page displays changes pending warning

  • OPENIDM-5933: NPE caught by OpenICFProvisionerService during IDM startup due to Async call usage in Activate()

  • OPENIDM-5930: CSV Audit Event Handler - Saving in the UI leads to error messages

  • OPENIDM-5923: ScriptedSSH sample - group members create/update is not working

  • OPENIDM-5914: Role is still showing as assigned in effectiveRoles attribute on query-all output if role is unassigned via the admin UI

    Workaround - When you delete a role grant, delete it from the managed user object, rather than the managed role object. For example, delete managed/user/user-id/roles/grant-id rather than managed/role/role-id/members/grant-id. If you cannot delete the role from the managed user object, add executeOnRetrieve=true to your user query to retrieve the correct role state, for example:

  • OPENIDM-5911: Identity Relationship widget: legendCheckbox does not appear in IE

  • OPENIDM-5909: ScriptedSSH incorrect sample provisioner group members nativeName

  • OPENIDM-5907: ScriptedSSH search script unsupported filter cause timeout exception

  • OPENIDM-5905: Removing a workflow definition file from the filesystem does not delete it in the config

  • OPENIDM-5900: ScriptedSSH ErrorCodes.groovy is not loaded

  • OPENIDM-5896: Role grant_type requires unique index

  • OPENIDM-5893: Recon on AD LDAPS mapping (tap association) gives 500 Server Error

  • OPENIDM-5892: Group Assignments: Admin UI errors with AD LDAPS Connector

  • OPENIDM-5887: SyncResult always specifies default situation action and not the actual action determined during synchronization

  • OPENIDM-5878: Newly added Object type doesn't appear in mappings

  • OPENIDM-5858: Sync fails to update password in AD

  • OPENIDM-5851: Backgrid: Clicking on filter reset button sorts the column

  • OPENIDM-5850: groupRoleMapping in passthrough authentication not working with LDAP

  • OPENIDM-5792: UI Problems with Bidirectional Reference Attributes

  • OPENIDM-5791: JNDI Config for JMS Audit Handler not rendered correctly.

  • OPENIDM-5754: onUpdate trigger on managed user called twice with a patch operation

  • OPENIDM-5739: authenticationId used instead of in UI (tasks)

  • OPENIDM-5736: Can not remove an element of a relationship map by value

  • OPENIDM-5731: In Usecase 2 date validation in the Admin UI does not reject an invalid date

  • OPENIDM-5727: Error after removing notification in Use Case 3

  • OPENIDM-5726: Workflow usecase 2 onboarding email sent twice

  • OPENIDM-5724: unAssignment event not executing inline script

  • OPENIDM-5721: Admin UI does not respond after setting connector nativeType to array

  • OPENIDM-5705: Removal of multiple elements of an array in a single patch set produces incorrect results

  • OPENIDM-5698: AD User Filter does not persist

  • OPENIDM-5697: Cluster state failure yields permanent persistent schedule failure in cluster when a cluster node is shutdown

  • OPENIDM-5685: Error when viewing data (account) of a connector with incorrect configuration properties

  • OPENIDM-5654: Audit event queryHandler returns results even if event handler is disabled

  • OPENIDM-5579: Unable to download Update Report using Safari

  • OPENIDM-5568: Aggressive caching issues in OpenIDM cause inconsistent UI behavior

  • OPENIDM-5554: Managed object revision increases after reconcilitation even if no change occured

  • OPENIDM-5509: Updating a dynamically assigned role will not update users assigned with the role.

  • OPENIDM-5504: Unable to use for administration over a secure port

  • OPENIDM-5486: Via REST API it is possible to create an assignment with an invalid mappingName

  • OPENIDM-5482: Tasks in UI cause random server errors when updating/assigning tasks

  • OPENIDM-5472: OpenAM fullStack sample: session timeout option not available

  • OPENIDM-5468: BoneCP: JDBC repo startup should retry until DB comes up

  • OPENIDM-5465: Performance Issue updating conditional role memberships

  • OPENIDM-5461: Update/Create user may fail with 500 error when scriptedrest2dj sample was used.

  • OPENIDM-5450: When Buffering is not enabled, related options should not be available

  • OPENIDM-5442: CLI.SH configexport creates unneccessary ui-iconlist.json backup file

  • OPENIDM-5416: PUT REST call to AD with LDAP adapter is interpreted as create instead of update

  • OPENIDM-5412: Felix console displays Error removing job reconcile_systemXmlAccounts_managedUser when performing update

  • OPENIDM-5399: Spaces in CSV field names result in an exception when creating a CSV connector

  • OPENIDM-5345: Connector names need to be validated as alpha-numeric

  • OPENIDM-5339: goto=undefined in redirect URL in OpenIDM/OpenAM integrated setup with IE9/10

  • OPENIDM-5315: If-Match default header not applied for Update - AzureAD PowerShell

  • OPENIDM-5303: Cannot edit a canceled reconciliation mapping

  • OPENIDM-5297: Property substitution is lost when saving from the UI

  • OPENIDM-5263: Mapping Details page doesn't refresh if Internal Server Error occurs during Reconciliation

  • OPENIDM-5235: Sample configuration for explicit mapping for managed user table is missing description

  • OPENIDM-5185: Failure to Load Configuration for Sync

  • OPENIDM-5174: Random issue while creating new configuration via REST

  • OPENIDM-5166: Changing CSV audit event handler formatting fields causes an exception

  • OPENIDM-5138: OpenIDM timeout does not redirect to OpenAM login screen

  • OPENIDM-5133: openidm-admin user login looping with exclusive OpenAM SSO enabled

  • OPENIDM-5107: PUT with no "If-Match" header fails to update an object with the Google Apps Connector

  • OPENIDM-5096: Configuring OpenAM session authentication via GUI causes OpenIDM hang

  • OPENIDM-5091: CORS servlet filter should read https port from

  • OPENIDM-5086: Illegal State Exception REST with invalid credentials and Accept header

  • OPENIDM-5038: Creating connector with underscore in its name fails with exception

  • OPENIDM-5033: No validation is done when using the Admin UI to configure an LDAP connector

  • OPENIDM-4918: Attempt by openidm-admin to add Security Questions leads to Problem During Profile Update error

  • OPENIDM-4829: Admin UI, Audit, CSV Handler configuration, fails without proper signatureInterval entry

  • OPENIDM-4799: with OrientDB repo, reading managed user with encoded quote in ID is failing with server error on policy

  • OPENIDM-4797: Connector info provider needs to be updated to connect to .NET server

  • OPENIDM-4792: When a sync mapping references source or target routes other than "managed" or "system", the Mapping UI won't render

  • OPENIDM-4692: ALL_GONE situation for deleted entries leads to NPE in JS

  • OPENIDM-4521: Custom attributes submitted in request to store in jdbc repo are not stored but the request returns them.

  • OPENIDM-4462: Delete request with HTTP "If-Match *" header does not work on repo endpoints

  • OPENIDM-4227: Use value of managed object prior to save for sync events to use hashed values

  • OPENIDM-4149: availableConnectors are not updated after remote ICF shut down

  • OPENIDM-4127: Endpoint system/os returns cpu usage above available

  • OPENIDM-3966: If you replace an attribute with null via patch, the attribute is incorrectly removed from the object

  • OPENIDM-3857: Cannot pass along custom context when making router requests from script

  • OPENIDM-3199: When a mailtask can't be completed in an Activiti workflow, an exception is thrown

  • OPENIDM-3197: '%' character in object id of calls has to be encoded

  • OPENIDM-3187: Custom authentication headers cannot handle Unicode characters

  • OPENIDM-3149: Custom Endpoint Example: object request.patchOperations is wrong for Groovy scripts

  • OPENIDM-2348: Implement external webapp for the remote Activiti server

  • OPENIDM-2028: The .NET Connector Server Exception displays an incorrect connector error

  • OPENIDM-2016: Sync on unsupported object class with remote java connector returns 500 instead of 400

  • OPENIDM-1898: Representation of request-object differs between code and json-representation

  • OPENIDM-1823: getScriptBindings function of ServiceScript ( slows down extremely when accessed in parallel from multiple threads

  • OPENIDM-1664: Memory usage of AD connector continue to increase.

  • OPENIDM-1488: XDate locales could not be initialized correctly

  • OPENIDM-1445: Provisioner service does not decrypt encrypted attributes before passing them to OpenICF framework

  • OPENIDM-1430: OpenIDM needs a restart after importing a new cert via REST API

  • OPENIDM-1269: some issues with Case Sensitivity options for Sync

  • OPENIDM-1165: EXCEPTION action when doing liveSync stops the synctoken processing

  • OPENIDM-1074: Disabling automatic polling for changes of config file not possible on new install

  • OPENIDM-848: Conflicting behavior might be observed between the default fields set by the onCreate script and policy enforcement

  • OPENIDM-470: OpenIDM cannot rename objects - if the identifier of the object changes, the associated link breaks

Chapter 4. OpenIDM Compatibility

This chapter covers major and minor changes to existing functionality, as well as deprecated and removed functionality in this release of OpenIDM. You must read this chapter before commencing a migration from a previous OpenIDM release.

4.1. Important Changes to Existing Functionality

Take the following changes into account when upgrading to OpenIDM 4.5. These changes will have an impact on existing deployments. Adjust existing scripts and clients accordingly.

Change to the request context stored for workflows

OpenIDM stores the request context in a workflow instance variable. The context is serialised into a JSON string and re-parsed when it is accessed. As of OpenIDM 4.5, the RouterContext is no longer stored. Only the SecurityContext and RootContext are stored.

As a result, workflows that were initiated prior to an upgrade will not complete successfully after an upgrade. If possible, stop all workflows that are in progress before you update the server, and reinitiate them after the update has completed. If you are unable to stop the workflows, you will need to change the Activiti variable table (ACT_RU_VARIABLE) to remove the openidmcontext variable before restarting.

Changes to indexing for JDBC repositories

To reduce overall key size and improve indexing performance across the supported JDBC repositories, the size of the linktype and linkqualifier columns is now restricted to 50 characters.

keyAlias property

The keyAlias property is no longer hard-coded in the authentication.json file. It now uses the openidm.https.keystore.cert.alias property from the file for your project.

Changes to the Roles Implementation

The roles implementation has changed in OpenIDM 4.5 to include support for dynamic role grants, and temporal constraints on roles. The new roles implementation is described in "Managing Users, Groups, Roles and Relationships" in the Integrator's Guide.

Changes to policy validation for managed objects

Managed object property types are now subject to policy validation by default. For more information, see "Validation of Managed Object Data Types" in the Integrator's Guide.

4.1.1. Changes in Database Schema: OpenIDM 4 to OpenIDM 4.5

The changes in database schema between OpenIDM 4 and OpenIDM 4.5 are relatively straightforward. To update your databases for OpenIDM 4.5, apply scripts from the following directory: /path/to/openidm/db/reposcripts/update, where repo represents the repository.

OpenIDM 4.5 includes the following update scripts for all supported repositories:

  • v1_increase_changedfields_size.sql: In the auditconfig and auditactivity tables, this script equalizes the size of the changedfields column with associated *before* and *after* columns.

  • v2_shorten_link_columns.sql: In the links table, this script shortens the maximum length of the linktype and the linkqualifier columns from 255 to 50 characters.

OpenIDM 4.5 includes two additional update scripts for PostgreSQL:

  • v3_add_indices_for_roles.sql: For temporal constraints, this script adds indexes in the managedobjects table.

  • v4_modify_indices_for_relationships.sql: This script makes changes in two areas:

    • In the relationships table, this script consolidates CREATE INDEX statements for *Id and *PropertyName.

    • In the managedobjects table, this script removes the objecttypes index.

When you run these scripts, run them in numerical order. In other words, run the script that starts with v1 first, followed by v2. If you're using PostgreSQL, then run the script that starts with v3 followed by v4.

4.2. Deprecated Functionality

The following functionality has been deprecated in OpenIDM 4.5 and is likely to be removed in a future release.

  • When configuring connectors, (see "Configuring Connectors" in the Integrator's Guide), you can set up nativeType property level extensions. The JAVA_TYPE_DATE extension is deprecated.

  • Support for a POST request with ?_action=patch is deprecated, when patching a specific resource. Support for a POST request with ?_action=patch is retained, when patching by query on a collection.

    Clients that do not support the regular PATCH verb should use the X-HTTP-Method-Override header instead.

    For example, the following POST request uses the X-HTTP-Method-Override header to patch user jdoe's entry:

    $ curl \
     --cacert self-signed.crt \
     --header "X-OpenIDM-Username: openidm-admin" \
     --header "X-OpenIDM-Password: openidm-admin" \
     --header "Content-Type: application/json" \
     --request POST \
     --header "X-HTTP-Method-Override: PATCH" \
     --data '[
        "value":"The new description for Jdoe"
      ]' \
  • The XML file connector is deprecated and support for its use in OpenIDM will be removed in a future release. This connector is really useful only in a demonstration context and should not be used in the general provisioning of XML data stores. In real deployments, if you need to connect to a custom XML data file, you should create your own scripted connector by using the Groovy connector toolkit.

No additional functionality is deprecated at this time.

4.3. Removed Functionality

Support for RESTful HEAD

The ForgeRock Common REST API does not support the HEAD method. References to the HEAD method have been removed from the OpenIDM documentation.

Support for MySQL 5.1 as a Repository

MySQL 5.1 reached end of life in December 2013. As of OpenIDM 4.5.1-20, MySQL 5.1 is no longer a supported repository.

4.4. Functionality That Will Change in the Future

The Active Directory (AD) .NET Connector will be deprecated in a future OpenICF release, and, ultimately, support for its use with OpenIDM will be discontinued.

For simple Active Directory (and Active Directory LDS) deployments, the Generic LDAP Connector works better than the Active Directory connector, in most circumstances. For more information, see "Generic LDAP Connector" in the Connectors Guide.

For more complex Active Directory deployments, use the PowerShell Connector Toolkit, as described in "PowerShell Connector Toolkit" in the Connectors Guide.

Note that deprecating the AD Connector has no impact on the PowerShell connector, or on the .NET Connector Server.

Chapter 5. Documentation Updates

The following table tracks changes to the documentation following the release of OpenIDM 4.5.0:

Documentation Change Log

integer is a supported managed object type.


Revised the logging documentation to include security advice on logging levels. See "Specifying the Logging Level" in the Integrator's Guide and "Updating" in the Installation Guide.


Added information on restricting the maximum payload size in HTTP requests ("Restrict the HTTP Payload Size" in the Integrator's Guide).


Added a workaround for the problem related to Quartz schedules and daylight savings time ("Schedules and Daylight Savings Time" in the Integrator's Guide).


Refreshed formatting.


Release of OpenIDM 4.5.1.

Updated the release notes.


Added a note to "Types of Synchronization" in the Integrator's Guide to indicate the required permissions for the LDAP user when configuring liveSync with OpenDJ.


Reworked "Updating OpenIDM" in the Installation Guide to reflect a wider variety of deployment scenarios.

Reworked "Configuring IWA Authentication" in the Integrator's Guide to clarify how this authentication module is configured.

Clarified the documentation on "Mapping a Single Source Object to Multiple Target Objects" in the Integrator's Guide.

Added OPENIDM-6481 and OPENDIM-6509 to "Known Issues".

Chapter 6. How to Report Problems & Provide Feedback

If you have questions regarding OpenIDM software that are not answered by the documentation, you can ask questions on the forum at

If you have found issues or reproducible bugs within OpenIDM 4.5, report them in

When requesting help with a problem, please include the following information:

  • Description of the problem, including when the problem occurs and its impact on your operation

  • Machine type, operating system version, Java version, and OpenIDM release version, including any patches or other software that might be affecting the problem

  • Steps to reproduce the problem

  • Any relevant access and error logs, stack traces, or core dumps

Chapter 7. Support

You can purchase OpenIDM support subscriptions and training courses from ForgeRock and from consulting partners around the world and in your area. To contact ForgeRock, send mail to To find a partner in your area, use the ForgeRock website.

Read a different version of :