- 26 Feb 2025
-
DarkLight
-
PDF
AngularJS Libraries Removed
- Updated on 26 Feb 2025
-
DarkLight
-
PDF
Breaking Change
Beginning with Platform 6, all AngularJS libraries have been removed from Itential Core as part of a mitigating decision to discontinue their use within Itential Platform. These removals will impact (break) any customizations that rely on AngularJS. Consequently, for any custom applications that might depend on AngularJS to handle front-end components, they will need to be updated for each AngularJS library the custom application is dependent on. Likewise, for custom manual tasks, they will need to be refactored and self-hosted to remain functional.
The UI libraries in /lib/angular
which are no longer be available are listed below.
ui/lib/angular-animate
ui/lib/angular-app
ui/lib/angular-aria
ui/lib/angular-color-picker
ui/lib/angular-material-data-table
ui/lib/angular-material
ui/lib/angular-sanitize
ui/lib/angular
What should I do?
For any custom applications or manual tasks that rely on AngularJS, Itential recommends that you refactor from AngularJS to React so that your application remains functional within Itential Platform. Further guidance and related details on refactoring are outlined in the next section.
Refactoring Your Customization
There are two major aspects when refactoring your customization to remove the dependencies on the Itential Core AngularJS libraries. Your particular use case may fall into one of three scenarios: using AngularJS for a custom application, using AngularJS for a custom manual task, or both.
With the first aspect, you have two options to refactor your custom application. The first option is to migrate entirely from AngularJS to React (or a React-based UI library). If possible, this is recommended for greater security hardening. The second option is to continue using AngularJS and update your customization to self-host the utilized libraries. The option that's selected will depend on your customization and the goals of your organization.
For the second aspect, you will need to convert the task from AngularJS to React, so that your customization will remain functional within the Platform 6 version of Itential Platform.
Self-Hosting AngularJS
If you wish to continue using AngularJS, then follow these steps:
-
Verify if the custom application depends on the following packages. If so, add the corresponding lines to the
package.json
file:{ ... "dependencies": { ... "angular": "1.5.11", "angular-animate": "1.5.11", "angular-aria": "1.5.11", "angular-color-picker": "1.0.10", "angular-material": "1.0.7", "angular-material-data-table": "0.10.3", "angular-sanitize": "1.5.11" ... } ... }
-
Install the dependencies.
npm install
-
Create a new directory at the application root to serve the AngularJS files (e.g, “lib”).
mkdir lib
-
Run the following command for each of the AngularJS packages your application is dependent on. This creates a symbolic link (symlink) that points to the AngularJS files in the new directory.
ln -s ../node_modules/<package-name> lib/<package-name>
For example:
ln -s ../node_modules/angular lib/angular
-
In the pronghorn.json file of the application, add the new directory as a
uiDirectory
."uiDirectories": ["lib"]
-
Update any references to the old Itential Platform provided AngularJS instance to the new location provided by the application.
script(src="/lib/angular/angular.min.js") → script(src="./lib/angular/angular.min.js")
Converting Custom Manual Tasks to React
Custom manual tasks that rely on AngularJS are no longer supported in Platform 6 and will need to be converted to React (or a React-based UI library) to remain functional within Itential Platform. It is recommended that all tasks are converted entirely to React; however, an iFrame-based manual task template has been prepared and can be applied to existing AngularJS custom manual tasks to enable their use with React.
If you encounter any issues while refactoring or would like to request this template, please contact Itential's Product Support Team.
Related Reading
- Breaking Change (2023.2): AngularJS Not Supported in Manual Tasks
- Deprecation (2023.2): AngularJS Removed