User Tools

Site Tools


onboarding:nova:start

This is an old revision of the document!


EMS NOVA Development Details

Updated by Anna Dowling 04/10/2022

Overview

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:

  • ems-nova for the Angular frontend
  • idms-proxy for middle-ware and backend data
  • user profile for authentication
  • MDC for interfacing with discovery data via idms-proxy apis
  • mdc-translator for Ui parameter translation mappings for rendering ui components for discovered data
  • elastic-replicator for data replication for alarm, ticket and device data into elastic-search and event notifications for real time front end updates.
  • elastic-search for data storage - queried via idms-proxy

Repo:

Architecture

Project Documents

For further information see nova requirements documentationhere

Local Dev App Urls

Development Configuration

Project can be pointed at local or server deployed version of all api endpoints. See src/config/config.json for environment configuration for local dev.

For further information on application configuration for local development see README.MD

Deployment

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

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:

  • DERIVED_TREE - CREATE
  • DERIVED_TREE - DELETE
  • DERIVED_TREE - FULL
  • DERIVED_TREE - MODIFY
  • DERIVED_TREE - VIEW
  • DEVICE_ALARM - FULL
  • DEVICE_ALARM - VIEW
  • DEVICE_ALARM_SYNC - FULL
  • DEVICE_ALL_PARAMETERS - VIEW
  • DEVICE_ALL_PARAMETERS_SYNC - FULL
  • DEVICE_CONFIG - FULL
  • DEVICE_INFO - FULL
  • DEVICE_INFO - VIEW
  • DEVICE_REBOOT - FULL
  • DEVICE_THRESHOLD - FULL
  • DEVICE_THRESHOLD - VIEW
  • DEVICE_TICKET - FULL
  • DEVICE_TICKET - VIEW
  • VIEW_DEVICE_IN_LEGACY_EMS - VIEW

UI Configuration via MDC Translator

CI/CD

Ansible Playbooks

 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'" 

Jenkins Build

Screens

System Overview - Host Tree

System Overview - Derived Tree Builder

}}

System Overview - Header and Map

System Overview - Charts

Device Overview - Tree

Device Overview -Header / Alarm, Ticket, Asset Info, Map

Device Overview - Parameters

Device Overview - Charts


onboarding/nova/start.1665485629.txt.gz · Last modified: 2022/10/11 11:53 by 10.91.110.100