Updated by Dylan Fennelly 02/03/2023
The purpose of the EMS Nova project is to bring the look and feel as well as the technology stack of the existing ems application up to date. The EMS is one of Errigals main, heavily used applications, yet the application display could be considered quite outdated. The applications front end technology stack is currently a mixture of grails gsp controllers and GWT. These are old technologies which are no longer favoured. As well as the age of them, they are also quite limiting when it comes to implementing more complex or detailed front end features.
EMS Nova application uses a number of services:
Repo:
For further information see nova requirements documentationhere
To run a local instance of EMS Nova,
npm install command to install Node dependencies.src/config/config.json, certain API endpoints must be changed:authConfig, the “redirectUri” field must be set to “http://localhost:4230/callback”.proxyConfig must be changed to “http://localhost:8080”“https://environment.errigal.com/application/path”
To run the development server, execute the ng serve command in the terminal. After the command executes, an instance of the EMS Nova application will be opened on http://localhost:4230/
For further information on application configuration for local development, see README.MD
The ems-nova is deployed to the load balancer server in /var/www/html/ems-nova. Its environment specific variables are passed via the config/config.json file to the app at runtime.
Current Config Fields Are:
{
"deployment": {
"build": {
"identifier": "ems-nova » ems-nova-feature-branches » REL-4.1.0 REL-4.1.0.4",
"branch": "REL-4.1.0",
"number": "4",
"buildTime": "2022-08-11 17:28:55",
"deploymentTime": "2022-08-17 16:12:17"
}
},
"authConfig": {
"contextPath": "ems-nova",
"userProfileUrl": "https://nova.errigal.com/userprofile",
"redirectUri": "https://nova.errigal.com/ems-nova/callback",
"clientId": "bfcb7b00-8c6d-4a1c-b5f6-0353416301fd"
},
"snmpConfig": {
"emsUrl": "https://nova.errigal.com/SnmpManager/errigalEMS",
"snmpManagerUrl": "https://nova.errigal.com/SnmpManager"
},
"proxyConfig": {
"proxyApiUrl": "https://nova.errigal.com/idms-proxy/api/v0",
"sseEndPoint": "/replicator/sse",
"refreshIntervalMs": 300000
},
"ticketerConfig": {
"ticketerUrl": "https://nova.errigal.com/ticketer-light",
"ignoredTicketStatuses": ["Closed", "Alarm Resolved", "Alarm Resolved - Auto Closed", "Alarm Clear Received", "OEM Support Ticket Resolved", "PM Completed", "Work Completed", "PM Completed - Requires Attention", "PM Completed - Failed", "Info Provided Ticket Close", "Deleted"]
},
"hostTreeConfig": {
"hostTreeFilterBounds": 3
},
"hotJarConfig": {
"hotJarEnabled": true,
"hotJarSiteId": 2914835,
"hotJarSnippetVersion": 6
},
"mapConfig": {
"googleMapsAPIKey": "AIzaSyA706_ucy_2gp6tDklZF72f_Lw3ipZK3zY"
},
"analytics": {
"analyticsKey": "UA-158352259-10"
},
"commonHeaderConfig": {
"headerUrl": "https://nova.errigal.com/errigal-common-header/",
"config": "nova",
"version": "2.0",
"css": "style.css",
"suiteName": "IDMS - Demo Instance -",
"appName": "EMS Nova"
},
"tableauConfig": [
{
"name": "Ticket Dashboard",
"url": "https://reports.noc-in-a-box.com/#/site/ExteNetQA/views/ExteNetTicketsv1_1/StoryTkts?:iid=1",
"image": "ticketDashboardIcon.svg"
},
{
"name": "Outage Dashboard",
"url": "https://reports.noc-in-a-box.com/#/site/ExteNetQA/views/Outagesv1_0/StoryOutage?:iid=3",
"image": "outageDashboardIcon.svg"
},
{
"name": "MTTR Dashboard",
"url": "https://reports.noc-in-a-box.com/#/site/ExteNetQA/views/ExteNetTicketDurations/TktsDurDash?:iid=1",
"image": "mttrDashboardIcon.svg"
}
]
}
Permissions are retrieved from userprofile for the current user on authentication. These are leverage to control what the use has authorization to access within the application. The below diagram outlines the permissions data storage model and retrieval touchpoints.
Permissions can be set via userprofile on the SnmpManager profile associated with a user. To understand what permissions map to what area in the ems-nova front end a string search of the code will show the validation on individual ui components e.g. derived-tree. PLEASE NOTE: If multiple of the same permission are assigned nova will default to the lowest access permission type (e.g FULL and VIEW = VIEW. See also ems_nova.CheckPermissionsDirective, ems_nova.PermissionService. Current full list of current permissions is as follows:
* MDC Translator Ui Configuration - MDC Translator Ui Configuration (used to specify technology specific parameters for display on the device overview page)
ansible-playbook -i ../env-configuration/nova/hosts.ini --diff --vault-id @prompt ems-nova.yml --extra-vars "jenkins_build_name='ems-nova-feature-branches/job/jobName' appFileExtension='.jar' jenkins_job_build_num=buildNumber actions='upload,configure,deploy'"
Below are some of the main screens associated with the application. For more in depth review of the UI please visit any existing environment e.g. https://qanova.errigal.com/ems-nova/home