Managing Linked Apps in a Composite Fabric App

From V9SP3GA, Quantum Fabric supports Manage Linked Apps (app modularity) feature that allows linking more than one micro-app into a composite app.

Micro-apps and Composite apps are all Fabric apps with certain conditions as follows:

  • Micro-App (linked app): A micro-app is a regular Fabric app fulfilling a single module of a feature. A micro-app should be able to work as an independent app, for example, a Visualizer application can link to the micro-app. Each micro-app is capable of serving a specified business domain or functionality.
  • Composite App (parent app): A composite app is a regular Fabric app, with additional information about a list of other Fabric apps that are linked to it. It allows multiple micro-apps to be added and removed from them.
    NOTE: Currently only 1 level of app linkage is allowed. This implies that micro-apps can be linked into composite apps, but a composite app (containing a linked micro-app) cannot be linked into another composite app.

The Manage Linked Apps feature helps to improve the Fabric custom app development aspects as follows:

App Modularity

Use case: When partners build vertical-based solutions like Infinity, the Client and Fabric applications are currently shared with customers. Customers can make changes to the application to meet their business requirements. When Infinity releases a new version, customers are expected to upgrade to the new version. For example, Accounts, Loans, Credit cards, and Wealth Management. The app can contain updated services, which are useful for customers, and the non-impacted services may not be relevant. This results in time-consuming because users have to take updates even if they do not use the feature.

Using the Managing Linked Apps functionality (modularity) allows you to link Fabric apps.

You need to break down the Infinity project into small Fabric apps. You can group each functionally as a Fabric app (called micro-app). You can then link the required apps to form a functional custom composite app. The service doc of a Composite app reflects the services of composite app + dependent micro-apps. For example, services of linked micro-apps can now be invoked via the App key/secret of a composite app. Customers can choose to upgrade to a certain module if they want to do so.

How Authentication Works in a Composite App

Identity providers of a composite app and its linked apps can be used by the composite app to log in and to access protected services belonging to both the composite app and linked apps.

For example,

  • A composite app has Salesforce log in details
  • Linked app_1 has configured with Google identity provider
  • Linked app_2 has configured with Facebook identity provider

In this case, the Composite Fabric app can use any of its own providers (Salesforce) or its linked app providers (Google and Facebook) for logging and accessing its own protected services or the protected services of its linked apps.

How to Create Composite Apps in Fabric Console

The following sections will help you on how to link apps to a Fabric app and publish the app using Fabric Console:

Linking and Unlinking Apps to a Composite Fabric App

Multiple micro apps can be linked or unlinked from a composite app using the Manage Linked Apps page. Composite Fabric apps allow the services from the linked apps as well accessible to the client applications using the app key and secret of the composite app.

To link a Fabric app to another Fabric app, follow these steps:

  1. Log in to the Fabric Console.
  2. In the Apps page, hover your cursor over the App menu button of the app and then click Manage Linked Apps.

    NOTE: You can access the Manage Linked Apps option within the app when the app is selected.

  3. In the Manage Linked Apps page that appears.

    NOTE: You can link new apps to the selected composite Fabric app by clicking the Add button on the Manage Linked Apps page.

    You can navigate to the composite app by clicking the Selected:<CurrentParentAppName> in the Manage Linked Apps page.
  4. In the Manage Linked Apps page, do the following:
    • To link apps, click Add button. The Existing Apps dialog appears with a list of existing apps.

      1. Select the check box for the required app/s and the version.
      2. Click LINK.
      3. In the Linked Apps dialog that appears with the apps linked status, click CLOSE.
        All the linked apps are displayed on the Manage Linked Apps page
      NOTE: After apps are linked to a Fabric app, you can unlink the linked apps or navigate to the linked apps using the Manage Linked Apps page.
    • To unlink the linked apps:
      1. Select the check box for the required app/s and version.
      2. Click Unlink.
      3. In the Unlink Linked Apps dialog that appears with the apps linked status, click CLOSE.
    • To navigate to the linked apps, click on any of the linked apps from the list. The selected app will be opened.

    The following sections detail how to publish a composite app and linked apps.

MFCLI Commands for Linking and Unlinking Apps to a Composite Fabric App

From the 202410 release, you can link or unlink micro apps from a composite app using MFCLI commands, which helps with automating deployments of composite apps. The command line arguments vary depending on the type of your Quantum Fabric environment, either On-premise or Cloud.

MFCLI Command to link micro apps to a composite app

link-apps

  • To link micro apps to a composite app for an On-premise Quantum Fabric Environment:
    java -jar mfcli.jar link-apps -f <filepath> -a <composite app name> [-v <composite app version>] -u <user> -p <password> -au <identity service url> -cu <console url>

    For example: java -jar mfcli.jar link-apps -f "C:\\microapps.json" -a compositeApp -v 1.0 -u abc@kony.com -p password -au http://10.10.24.79:8080 -cu http://10.10.24.78:8081

  • To link micro apps to a composite app for a Quantum Fabric Cloud Environment:
    java -jar mfcli.jar link-apps -u <user> -p <password> -t <account id> -clurl <cloud url> -f <filepath> -a <composite app name> [-v <composite app version>]

    For example: java -jar mfcli.jar link-apps -u abc@temenos.com -p password -t 100054321 -clurl https://manage.temenos-cloud.com -f "C:\\microapps.json" -a MyApp -v 1.0

NOTE: If you are linking a single Micro App, replace the -f parameter with the --childApp and --childAppVersion parameter as follows:
  • For an On-premise Quantum Fabric Environment: java -jar mfcli.jar link-apps -a compositeApp -v 1.0 --childApp microApp --childAppVersion 1.0 -u abc@kony.com -p password -au http://10.10.24.79:8080 -cu http://10.10.24.78:8081
  • For a Quantum Fabric Cloud Environment: java -jar mfcli.jar link-apps -u abc@kony.com -p password -t 100054321 -clurl https://manage.temenos-cloud.com -a MyApp -v 1.0 --childApp microApp --childAppVersion 1.0
MFCLI Command to unlink micro apps from a composite app

unlink-apps

  • To unlink micro apps from a composite app for an On-premise Quantum Fabric Environment:
    java -jar mfcli.jar unlink-apps -f <filepath> -a <composite app name> [-v <composite app version>] -u <user> -p <password> -au <identity service url> -cu <console url>

    For example: java -jar mfcli.jar unlink-apps -f "C:\\microapps.json" -a compositeApp -v 1.0 -u abc@kony.com -p password -au http://10.10.24.79:8080 -cu http://10.10.24.78:8081

  • To unlink micro apps from a composite app for a Quantum Fabric Cloud Environment:
    java -jar mfcli.jar unlink-apps -u <user> -p <password> -t <account id> -clurl <cloud url> -f <filepath> -a <composite app name> [-v <composite app version>]

    For example: java -jar mfcli.jar unlink-apps -u abc@temenos.com -p password -t 100054321 -clurl https://manage.temenos-cloud.com -f "C:\\microapps.json" -a MyApp -v 1.0

NOTE: If you are unlinking a single Micro App, replace the -f parameter with the --childApp and --childAppVersion parameter as follows:
  • For an On-premise Quantum Fabric Environment: java -jar mfcli.jar unlink-apps -a compositeApp -v 1.0 --childApp microApp --childAppVersion 1.0 -u abc@kony.com -p password -au http://10.10.24.79:8080 -cu http://10.10.24.78:8081
  • For a Quantum Fabric Cloud Environment: java -jar mfcli.jar unlink-apps -u abc@kony.com -p password -t 100054321 -clurl https://manage.temenos-cloud.com -a MyApp -v 1.0 --childApp microApp --childAppVersion 1.0

The -f, --file parameter refers to the name of the JSON file that contains the metadata of the micro apps (in a list). Ensure that the JSON file adheres to the following format:

[
  {
    "name": "microapp1",
    "version": "1.0"
  },
  {
    "name": "microapp2",
    "version": "2.0"
  }
]

NOTE: In the JSON file, version is an optional parameter.
However, if you are using the childapp and chidlappversion parameters, you must provide a version.
If you do not provide a version, Quantum Fabric assigns the default version as 1.0 to the micro app.

Publishing a Fabric Composite App

Case 1: First publish of a composite app or the first publish after unpublish the app.

By default, all linked apps will be published while publishing the composite app.

  1. Navigate to your composite app in Fabric Console.
  2. Click Publish tab.
  3. Select an environment.
  4. Click PUBLISH.

The following table details a sample composite app and linked apps, and the results of the direct publishing of the composite app:

Sample Composite Fabric App has linked apps with versions

Results of direct publish a composite app and linked apps for the first time

CompositeApp V1.0

  • micro1 V1.0
  • micro2 V1.0
  • micro3 V1.0
  • The entire composite app and linked apps are published for full app publish whenever direct publish is performed for the composite app.

    For example: CompositeApp V1.0 ->(micro1 V1.0, micro2 V1.0, micro3 V1.0)

IMPORTANT: Unpublish of a composite app does not result in the unpublish of linked apps. If you want to unpublish linked apps, you need to unpublish each of them independently.

Case 2: Publish Linked Apps is not selected

After the first publish, the publish checks if each linked app has already been published, and if not, those specific linked apps will be included for publish along with composite app. The linked apps which are missing publish can be due to new app linkage or existing linked app independently is unpublished.

  1. Navigate to your composite app in Fabric Console.
  2. Click Publish tab.
  3. Select an environment.
  4. Click CONFIGURE & PUBLISH.
  5. Clear the Publish Linked Apps check box to not to include linked apps for publishing.

  6. Click SAVE & PUBLISH.

The following table details a sample composite and linked apps, and the results of the publishing composite app without linked apps:

Sample Composite Fabric App has been modified as follows:

Results when Publish Linked Apps is not selected

CompositeApp V1.0 (previously published)

  • micro1 V1.0 (already published)
  • micro2 V1.0 (modified after previous publish)

  • micro3 V1.0 (unpublished)
  • micro4 V1.0 (new app)

CompositeApp V1.0 ->(micro1 V1.0, micro2 V1.0, micro3 V1.0, micro4 V1.0)

  • Composite app will be republished.
  • Newly linked apps that are not published will also be published.

    For example: micro4 V1.0

  • Unpublished linked apps: Linked apps which are in unpublished state will also be published by default.

    For example: micro3 V1.0

  • Linked apps that are already published will not be republished.

    For example: The following linked apps are never published.

    • micro1 V1.0 and micro2 V1.0

Case 3: Publish Linked Apps is selected

In this case, publish operation publishes the composite app along with all linked apps. This helps include any changes to the linked apps post the initial publish.

  1. Navigate to your composite app in Fabric Console.
  2. Click Publish tab.
  3. Select an environment.
  4. Click PUBLISH.
  5. In the App Configuration > Publish Method select Full or Incremental for the composite app.
  6. Select the Publish Linked Apps check box to include linked apps for publishing.

  7. Click SAVE & PUBLISH.

The following table details a sample composite and linked apps, and the results of the composite app publishing with linked apps:

Sample Composite Fabric App has been modified as follows:

Results when Publish Linked Apps is selected

CompositeApp V1.0 (previously published)

  • micro1 V1.0 (already published)
  • micro2 V1.0 (modified after previous publish)

  • micro3 V1.0 (unpublished)
  • micro4 V1.0 (new app)

CompositeApp V1.0 ->(micro1 V1.0, micro2 V1.0, micro3 V1.0, micro4 V1.0)

  • Composite app will be republished.
  • Published linked apps that are already published and have been modified will be republished.

    IMPORTANT: The Publish Method option set for each of the linked app determines if a linked app publish is Full or Delta publish.

    For example: The following all linked apps are republished:

    • micro1 V1.0
    • micro2 V1.0
    • micro3 V1.0
  • Newly linked apps and unpublished linked apps that are not published will also be published.

    For example: micro4 V1.0

Full or Incremental Publish behavior for Composite App and Linked Apps

During app publishing, Quantum Fabric allows you to reconfigure certain default values of app prior to publishing.

IMPORTANT: Publish Method > Incremental Publish (Delta Publish). The option selected by the respective app is only applied when publishing a particular composite or linked app. A Composite app’s option does not impact a linked app’s delta publish behavior.

 

IMPORTANT: Only when the Publish Method is set to Incremental in the linked app (micro1), the micro1 app is published for delta publish while publishing the composite app.

MFCLI Commands for Publishing Composite Apps

--publishMicroApps parameter for MFCLI Publish Composite Apps

From V9SP3, Publish command will now accept an additional parameter called ‘publishMicroApps’. If you specify the parameter in the Publish command, it will publish all dependent micro apps as well.

MFCLI Command to publish a composite app along with dependent linked apps

--publishMicroApps:

  • to publish dependent linked apps as well, specify the additional parameter in the MFCLI Publish command:
    java -jar mfcli.jar publish -a <appName> -e <envName> --publishMicroApps
  • to publish only the composite app without dependent linked apps, do not specify the parameter in the MFCLI Publish command:
    java -jar mfcli.jar publish -a <appName> -e <envName>

Commands to improve efficiency to deploy Infinity Apps on the Fabric Server

Starting from 202401, the Publish command has been introduced the following parameters to enhance the efficiency of app publishing:

  • --skipPublishedMicroApps

  • --incremental

--skipPublishedMicroApps

  • If specified, publishing a composite app skips the publishing of the micro apps that are already published irrespective of whether the composite app is getting published the first time or not.

    For example:

    java -jar mfcli.jar publish -a <appName> -e <envName> --publishMicroApps --skipPublishedMicroApps

 

 

  • If both flags are provided, the "skipPublishedMicroApps" flag takes a higher precedence, and only apps that are not published yet are considered for publish.

    For example:

    java -jar mfcli.jar publish -a <appName> -e <envName> --publishMicroApps --skipPublishedMicroApps


--incremental

 

From 202401 onwards, if this flag is specified at the composite app level, it will be propagated to the micro apps as well. That means, if the micro apps are published before, only the delta of the micro apps are published when the composite app is published.

 

For example:

 

java -jar mfcli.jar publish -a <appName> -e <envName> --publishMicroApps --incremental

-mfConsoleVersion Parameter for MFCLI Publish Fabric Console Version

From V9SP3GA, the MFCLI Publish command accepts an additional parameter called ‘mfConsoleVersion’. This console version needs to be specified for older Fabric versions. This param has bee added to support the backward compatibility.

MFCLI Command to Publish Fabric Console version from V9SP3 GA

mfConsoleVersion:

  • To publish apps to Fabric Cloud V9.3.0.0. or higher:
    java -jar mfcli.jar publish -a <appName> -e <envName> --mfConsoleVersion 9.3.0.0
    NOTE: This is an optional parameter in case you are using the same Fabric version with matching mfcli.jar version. In this case, if the parameter is not specified, the publish command considers your current mfcli jar release version for publishing.

 

  • If the Fabric version and the mfcli.jar version are not the same, you need to specify this parameter indicating which Fabric version the publish is being done to for the publish to be successful. Otherwise, the publish fails.
    For example, if you are using Fabric V9.2 or lower and mfcli.jar V9.3 or higher, you need to specify as shown below:
    java -jar mfcli.jar publish -a <appName> -e <envName> --mfConsoleVersion 9.2.0.0

     

--IncludChildApps Parameter for MFCLI object-services-meta command

From V9SP3, the Object services meta command will now accept an additional parameter called ‘includeChildApps’. If you specify the parameter in object-services-meta command, it will list the object services of the composite app and the linked apps.

MFCLI Command to get object service meta for acomposite app with linked apps

--includeChildApps:

  • To get an object service meta for a composite app with linked apps, specify the flag as below:
    java -jar mfcli.jar object-services-meta -a <app name> [-v <app version>] -e <environment name> --includeChildApps

  • to get an object service meta data of a composite app without dependent linked apps, do not specify the parameter in the MFCLI Publish command:
    java -jar mfcli.jar object-services-meta -a <app name> [-v <app version>] -e <environment name>