Legacy Scripted REST Connector

Last modified 22 Apr 2021 17:31 +02:00

Generic identity connector for REST services, using custom script code.

Development statusabandoned (no longer developed or maintained, legacy code)
Support statusunsupported
Support provided by
Target systemsGeneral REST service
Source codehttps://github.com/Evolveum/openicf/tree/master/connectors/java/scriptedrest

There is a connector that allows to access REST (HTTP) services using a scripted approach. The basic principles is that you write the implementation of the operations in scripting language (Groovy) and then make these scripts available to the connector. Connector will execute them.

This may look like a good and easy approach. And it is indeed a very efficient method to develop a connector. But it is extremely bad way to maintain the connector. There is no versioning. The Scripted REST connector has its version, but the scripts do not. They are just connector configuration. It is diffucult to maintain these scripts, deploy them, copy them around. There is no type checking. All the errors appear only when the connector is executed which is a huge burden for testing. There are no compatibility checks with ConnId framework, which makes use of a new features of ConnId framework quite difficult and dangerous. And worst of all: there is no dependency management. If your code needs any extra dependency you are pretty much out of luck. Scripted REST connector is a terrible approach if you need to maintain your connector for years to come.

Simply speaking: Scripted REST connector is a bad idea.

Therefore we have deprecated usage of that connector. We will no longer maintain it. We will no longer support it - except for midPoint subscribers that explicitly negotiated to include it in their subscription.

REST Connector Superclass

However, easy development of REST-based connectors is a very attractive feature. Therefore we have created an alternative way: REST Connector Superclass. This is a small component in the polygon project that can be used as a superclass for your connector. It will provide basic configuration parameters (URL, username, …​) and connection management. So you will still need only to write the operation methods. But you will do that in Java, with proper type checking, versioning, dependency management, ConnId version checks and so on.

The http-builder Dependency Issue

The http-builder used to be dependency of midPoint up until the version 3.3. But it has caused a lot of trouble. The http-builder package seem to be unmaintained. That may be the reason that it causes problems with dependency convergence. We had to remove it in midPoint 3.4 or 3.4.1 I had to remove it. It is not used anywhere in midPoint. But later we have learned that it is required by the Scripted REST connector.

The http-builder is now removed from midPoint and it will probably never come back. The removal was a right decision. It does not belong in midPoint. The http-builder package should be a dependency of the REST connector. But it was not. Therefore we have release one last version of the Scripted REST connector that has this dependency fixed. Version 1.1.1.e2. It can be found here:

Binaries http://nexus.evolveum.com/nexus/content/groups/connectors/org/forgerock/openicf/connectors/scriptedrest-connector/1.1.1.e2/scriptedrest-connector-1.1.1.e2.jar



This is the final version. There will be no more versions of the Scripted REST connector.