Extending HCL Leap

This page is dedicated to extending your Leap deployment.  There are several different ways that Leap can be extended.

Using the REST API

There REST API is a very powerful component of Leap that can enable you to do a lot of unique things.

  • Manage Utility For Your Leap Applications - This is a jar file that can be uses as-is to manage your Leap applications.  You can export all the applications on your server or you can retrieve just one.  You can also import and delete applications.  This could be used to move a lot of applications from one server to another very quickly and without having to interact with the Leap UI for each application to be moved.
  • Calling the Leap REST API from custom Java Code - This example walks through everything that is required to work with the Leap REST API from a Java application.

Including Custom JavaScript in your Leap Applications

The ability to include custom javaScript within your applications opens up a lot of new possibilities.  You can leverage existing JavaScript libraries to render widgets that Leap does not offer natively.

Leap Transports

Any one can create custom transports!  A Transport is a Java OSGI module that performs some work.  Data is passed to the transport through a service description XML file (details in the next section below).  If you have never create a transport before then the first place to start would be creating custom transports in the Leap documentation.

The following list is made up of sample transports that I have created that can be used as-is or modified to meet your specific need.

  • Custom Transport - Leap Roles - This transport gives the form designer the ability to query the roles within an application to either get the list of users, add users to a role or check if the current user is in a specific role.
  • Custom Transport - Interact with External Database - The form can interact with any external database. You can select, update, insert or delete rows from any database.
  • Leap and LDAP Services - The sample transport provided by IBM that demonstrates how to provide your FEB designers with services that can return information from your corporate LDAP.
  • *Deprecated* Custom Transport - J2CAlias Enabled LDAP Transport - As of 8.6.2 this custom extension is no longer necessary.  FEB now offers a J2CAlias Credential provider, which is implemented in the sample LDAP Transport that is provided in the "FEB and LDAP Services" article above.  If you are using this transport, you should consider switching over to the latest.  If you keep the <id> of the service descriptions the same and just change the <transportid> then you will maintain backwards-compatibility with any applications that may already be using the LDAP services.
  • *Deprecated*  Custom Transport - HTTPService with Error Handling -  A of 8.6.4 Leap can handle non-200 error codes.  The transport provided by IBM can only handle a 200 response code, if the service you connect to returns any other response then it is not handled gracefully and results in an error shown to the end user. This transport gives you the ability to intercept and respond to other HTTP return codes.
  • Custom Transport - Get Server Time - This is a sample transport that shows how to return the server time, since any javascript run in the application will return the local computer's time.
  • Custom Transport - Send Email - This transport provides the ability for a form designer to trigger an email on any form event.  This transport leverages the same mail framework that is used by FEB and therefore has the same limitations (can't change sender). CC and bcc fields added).
  • Custom Transport - Custom Email Service - This is a much more full featured email solution where you point it to a mail source and you can define all the email properties (i.e. sender, to, cc, bcc, etc). 
  • Custom Transport - Custom Secured Services - This is a custom service catalog that will appear as a new service group in the FEB UI.  The services placed into this catalog can be restricted to a set of users as defined within the whitelist.

Service Descriptions - Service descriptions are the XML files that define the inputs and outputs that will be sent to and received from a transport.

Reminders - A Leap application and custom jar file that provide the ability to send reminder emails for forms where the actor has not taken the proper action within a set period of time.