If you modify Angular library code, you must compile all the Angular libraries and create and deploy custom versions of all Angular applications that will use the modified Angular library. This applies regardless of which Angular libraries contain changed code.
For example, if you modify the qer Angular library, you must also compile all the Angular libraries and the qer-app-portal, qer-app-operationsupport, and qer-app-pwdportal Angular applications because all of these applications contain the qer Angular library.
If you are using Nx, Nx takes over the management of dependencies between libraries. Use the npm run nx:build-all command to compile all projects in the specified sequence.
Plugins are Angular libraries that are dynamically loaded at runtime. The plugins are managed by the API Server. Plugins are automatically detected by the API Server by searching the program directory for files named imx-plugin-config.json.
The following sample file specifies that the Angular plugin library ccc should be loaded into the qer-app-portal application. The name of the Angular module to be instantiated is CustomConfigModule.
{ |
"qer-app-portal":[ |
{ |
"Container":"ccc", |
"Name":"CustomConfigModule" |
} |
] |
} |
To add a plugin
-
On the API Server, create the file imxweb\<Angular plugin library name>\imx-plugin-config.json with the following content:
{ |
"<Name of the HTML application>":[ |
{ |
"Container":"<Name of the Angular plugin library>", |
"Name":"<Name of the Angular module>" |
} |
] |
} |
-
Import the file into your One Identity Manager database using the Software Loader and assign it to the API Server machine role. For more information on importing files using the Software Loader, see the One Identity Manager Operational Guide.
-
(Optional) To check if the HTML application loads the plugin correctly, open the <API Server URL>/imx/applications URL and check that the corresponding plugin appears at the HTML application position in the list.
To add a plugin using Nx
-
Create a new project using the Nx command line program (nx generate lib <project name>).
-
In the newly created project, open the projects/<project name>/project.json file and add all dependencies.
-
Perform the following actions for each HTML application that is to use this plugin:
-
Open the application's project.json file (such as projects/qer-app-portal/project.json) with a text editor.
-
Add a library with the name of your new project under prebuild > dependsOn > projects.
For example, if your project is called CCC, you must change the line as follows:
"projects": ["qer", "aad", "aob", "apc", "att", "CCC"]
-
Save the file.
You can check HTML applications for missing user interface translations using the ImxClient command line program. For more information about the ImxClient command line program, see the One Identity Manager API Development Guide.
TIP: Translatable text is marked in the source code with the #LDS# prefix.
To check an HTML application for missing translations
-
Start the ImxClient command line program.
-
In the folder you want to check for missing translations, run the check-translations command.
This creates a report. The report shows you any files containing texts that have not yet been translated or have not been translated in full.
-
(Optional) To add translation keys and translations, use the Designer program. For more information about translations, see the One Identity Manager Configuration Guide.
To deploy new HTML applications for use and display them on the API Server's home page, you must add the HTML applications to the database.
To add an HTML application to the database
-
Start the Designer program.
-
Connect to the relevant database.
-
In the navigation, click the Base data > Security settings > HTML applications category.
-
On the menu bar, click (Create a new object).
-
Click the new entry in the list.
-
In the Properties view, enter the HTML application data in the respective fields. Enter at least the following information:
-
Display name: Enter a name for the HTML application.
-
HTML application: Enter the path CCC/<name of your HTML application>.
-
Precompiled: Set the value to True.