Locking of a Fabric App
From V9SP2 FP2, Quantum Fabric supports Locking of Fabric Apps, which makes the services in the applications read-only with an ability to extend certain features like pre/post processors and request/response parameters of a service.
The Locking of an app helps to improve the Fabric app development aspects as follows:
- Extensibility:
Use case: When partners build vertical-based solutions like Infinity, currently the Client and Fabric applications are shared with customers. Customers make changes to the application to meet their business requirements. When Infinity releases a new version, customers are expected to redo all the changes again on the new version, which is time-consuming and is error-prone.
By using the locking functionality, you can clearly demarcate the base functionality from the extensions done by the customers. With a locked base app, customers can extend the base product functionality as per their business requirements, without changing the base app functionality. When a new base app version is released, customers can import the updated base application, which only upgrades the locked portion of the app keeping the extensions intact.
The following sections detail you with more information on Lock App functionality:
- How to Lock and Export a Fabric App
- Extending Locked Base Fabric Apps
- Upgrading Locked Base Fabric Apps
- How to Lock and Export a Fabric App using MFCLI
How to Lock and Export a Fabric App
Only a user with an Owner role can lock Fabric apps. When a Fabric app is locked, the base app configurations are set to read-only, including some that are replaceable. The locked app is exported to your local system.
To lock and export an app, follow these steps:
- Log in to the Fabric Console with user credentials that have an Owner role.
- In the Apps page, hover your cursor over the App menu button for the app.
- Click Export > Locked App. The base app configurations are locked and the app from the current workspace gets exported to your local system. The app is downloaded with a new name, for example
<SampleAppName>_locked
.NOTE: You can access the Locked App option within the app when the app is selected.
The following service types are marked read-only when an application is locked
- Integration Services
- Object Services
Extending Locked Base Fabric Apps
The services that locked can be extended. When an app is locked, the app contains read-only fields and some are replaceable.
For example,
- Pre-Post processors and Request and Response fields are extensible.
- Base URL can be replaced.
-
The rest of the parameters are read-only.
How to Extend an Integration Service of a Locked Fabric App
- Log into your Fabric account and Import the Locked Fabric App into it.
- Navigate to the Integration tab.
- Select the service.
-
In Service Definition section, you can configure the following:
- Base URL: This is replaceable. Specify a back-end URL, if required, and save the service.
-
Configurability of custom JARs:
In Advanced > Custom Code: Select existing JARs or click Upload New to add new JARs.NOTE: Locked apps do not support these Advanced Configurations: Throttling and URL Provider Class.
NOTE: From V9SP4, you can add new operations to the locked apps.
- Click an existing operation to add an extended configuration as follows:
Target URL: This is replaceable. Specify a back-end URL and save the service, if required.
Configurability of Java pre-processors and post-processors:
In Advanced > Custom Code Invocation: The locked Java pre-processors and post-processors are enabled by default. You can choose to enable/disable them for your app.- To extend the locked base custom Java code, select new Java pre-processors and post-processors from the list. You can arrange for the selected pre and post-processors to be executed in the desired order during the operation call.
- In Request Input and Response Output: The locked base app fields are read-only.
You can add new parameters. To add new parameters, click Add Parameter and configure details.
- Click SAVE to save the configuration.
How to Extend an Object Service of a Locked Fabric App
- Import the Locked Fabric App into a Fabric account.
- Navigate to the Objects tab.
- Select the service.
- In the Service Definition, you can configure the following fields:
- MetaData Security Level, Offline Enabled, Identity Service for Backend Token, and custom code JARs
-
In the Data Model tab, you can configure the following:
- To add new fields to the locked objects, click Add. The new fields in the locked objects are categorized as CUSTOM FIELDS.
NOTE: For Locked objects, you cannot do the following in the Data Model tab:
- Deleting locked objects.
- Modifying the locked object name.
- Adding new objects.
- Modifying or deleting locked base object fields. The locked base fields of objects are categorized as BASE FIELDS.
-
In the Mapping tab, you can configure the following:
NOTE: From V9SP4, you can add verbs to the locked apps.
NOTE: From V9SP7, Locked Service-Driven Objects Services supports the Mapping Sets feature.
For more information, refer to Mapping Sets support for locked Object Services with Integration & Orchestration (SDO)NOTE: From V9SP7 FP1 supports Locked Common Mapping fields of Object Services displaying as a read-only mode under the Mapping tab > Common Mapping.
You cannot edit or delete the locked common mapping.
Locked Common Mapping Extensibility:
- You can add and delete common mapping for the extended fields (custom fields) available in the Data Mapping.
- When you Refresh Metadata for locked RDBMS Object Services, all the added custom fields are reflected in the Data Model and the Common Mapping. You can add and delete it.-
Configurability of Java pre-processors and post-processors:
In Advanced > Custom Code Invocation > Preprocessor and Postprocessor: The locked Java pre-processors and post-processors are enabled by default. You can choose to enable/disable them.- To extend the locked base custom Java code, select new Java pre-processors and post-processors from the list. You can arrange the selected pre and post-processors to be executed in the desired order during the operation call.
NOTE: Locked apps do not support these Advanced Configurations: Stub Backend Response, Front End API, Pass-through Cookies, and Server Events.
-
-
Extensibility of Object data mappings:
In Visual/XML mapper section, you can configure the following:-
All locked Visual/XML mapper/s are disabled for editing and deleting. By default, locked mappers are selected with the Enabled option to be included in the custom app by default. You can choose to enable/disable them.
- You can add new mappings to the locked object verbs.
To extend the base lock mapper, do the following:
- Click Add.
- Specify the mapper name and click SAVE. A new mapper placeholder is created.
- Click EDIT to configure mappers.
-
- Click SAVE to save the mapper configuration and the changes.
From V9SP7, Locked Object Services for Service-Driven Objects SDO supports the Mapping Sets feature.
If your locked app contains Object Services with endpoint type as Integration & Orchestration, you can do the following:
-
Extended Mappings Sets:
-
You can add new mapping sets (extended mappers) to locked object services based on the locked data model.
-
You can add new verbs and mappings to the extended mappings sets.
-
You can delete the extended mapping sets.
-
You can view all the mappings sets (existing and extended) in a locked object service.
-
You can export and import all the mappings sets (existing and extended) of a locked app.
-
You can set the extended mapping sets as Active.
-
You can publish the extended mapping set as Active in the locked app.
-
-
Existing Mappings Sets:
-
You cannot delete the locked/existing mapping sets.
-
You cannot edit the locked/existing mapping sets.
-
You can view all the mappings sets (existing and extended) in a locked app.
-
You can export and import all the mappings sets (existing and extended) of a locked app.
-
You can set the existing mapping sets as Active.
-
You can publish the extended mapping set as Active in the locked app.
-
Upgrading Locked Base Fabric Apps
From V9SP2 FP2, Quantum Fabric supports Locking of Fabric Apps, which makes the services in the applications read-only with an ability to extend certain features like pre/post processors and request/response parameters of a service.
The Locking of an app helps to improve the Fabric app development aspects as follows:
Upgradability:
Use case: When partners build vertical-based solutions like Infinity, currently the Client and Fabric applications are shared with customers. Customers make changes to the application to meet their business requirements. When Infinity releases a new version, customers are expected to redo all the changes again on the new version, which is time-consuming and is error-prone.
By using the locking functionality, you can clearly demarcate the base functionality from the extensions done by the customers. With a locked base app, customers can extend the base product functionality as per their business requirements, without changing the base app functionality. When a new base app version is released, customers can import the updated base application, which only upgrades the locked portion of the app keeping the extensions intact.
While upgrading locked custom apps with the higher versions of locked base apps, the custom locked app gets updated for the following:
- Merges all the new changes in the higher version of the locked base app version into the custom app.
- Retains all the extended configurations in the custom lock app version intact.
How to Upgrade a custom locked Fabric App version with a Higher Locked Base Fabric App version
- Log into your Fabric account, in which you have created a custom app version based on a locked base app version.
-
From the Quantum Fabric Console, click Apps to display the Applications page > Import.
- The Import App dialog that appears, Drag and drop an app zip file (locked base app.zip) into the dialog box or click Browse to select the app you want to import, and click IMPORT. You can import an app as a new app or overwrite an existing app across various Quantum Fabric Consoles.
Your custom locked app version has been upgraded with a higher locked base app version.
For more information on importing apps, refer to Importing a Fabric Application.
The lock-app command locks the app from the current environment and returns a locked app zip in the specified location:
- for Cloud environment:
java -jar mfcli.jar lock-app -u <user> -p <password> -t <account id> -clurl <cloud url> [-f <file name> | -r <directory name>] -a <app name> [ -v <app version> ]
For example,
java -jar mfcli.jar lock-app -u abc@kony.com -p password -t 100054321 -clurl https://manage.temenos-cloud.com -f "C:\\tmp\\Sample.zip" -a MyApp -v 2.0
- for on-premise installation:
java -jar mfcli.jar lock-app -u <user> -p <password> -au <Identity URL> -cu <Console URL> [-f <file name> | -r <directory name>] -a <app name> [ -v <app version> ]
For example,
java -jar mfcli.jar lock-app -u abc@kony.com -p password -au http://10.10.24.79:8080 -cu http://10.10.24.78:8081 -f "C:\\tmp\\Sample.zip" -a MyApp -v 2.0
For more information on MFCLI commands, refer to Continuous Integration with Quantum Fabric.