Updated by Anna Dowling 12/10/2022
The purpose of the Ticketer Lite project is to bring the look and feel as well as the technology stack of the existing ticketer application up to date. The Ticketer 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 SmartGWT. These are both 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.
Ticketer Lite application uses 5 services:
Repo:
See also: Ticketer Light Gateway (Ticketer Light Gateway)
The ticketer-light is served via the load balancer in our server deployments. Its environment-specific variables are passed via the /var/www/html/ticketer-light/config/config.json file to the app at runtime.
Current Config Fields Are:
{
"deployment": {
"build": {
"identifier": "ticketer-light » ticketer-light-feature-branches » REL-4.4.0 REL-4.4.0.3",
"branch": "REL-4.4.0",
"number": "3",
"buildTime": "2022-10-06 09:35:42",
"deploymentTime": "2022-10-06 10:18:48"
}
},
"authConfig": {
"contextPath": "ticketer-light",
"userProfileUrl": "https://qanova.errigal.com/userprofile",
"redirectUri": "https://qanova.errigal.com/ticketer-light/callback",
"clientId": "0f59ca3a-353c-11eb-b954-0242ac110002",
"gatewayUri": "https://qanova.errigal.com/ticketer-light-gateway"
},
"googleAnalyticsConfig": {
"siteId": "UA-158352259-10"
},
"proxyConfig": {
"proxyApiUrl": "https://qanova.errigal.com/idms-proxy/api/v0"
},
"snmpConfig": {
"emsUrl": "https://qanova.errigal.com/SnmpManager/errigalEMS",
"snmpManagerUrl": "https://qanova.errigal.com/SnmpManager"
},
"ticketerConfig": {
"ticketerUrl": "https://qanova.errigal.com/Ticketer",
"analyticalReportUrl": "https://qanova.errigal.com/bubble-app",
"privateSalt": "BPVD05c3bvNYjntvfdhJLp2Xx4pH",
"demarcationEnabled": false,
"multiTenancy": false,
"kanbanEnabled": false,
"networkIdEnabled": true,
"siteIdEnabled": false,
"ticketerWorkbenchTimezone": "utc",
"ticketerWorkbenchTimezoneOffset": 0
},
"commonHeaderConfig": {
"headerUrl": "https://qanova.errigal.com/errigal-common-header/",
"config": "atc",
"version": "2.0",
"css": "style.css",
"suiteName": "IDMS - Demo Instance -",
"appName": "Ticketer Lite"
},
"casConfig": {
"casUrl": "https://qanova.errigal.com/cas",
"casCheck": false,
"casCheckInterval": 10000
},
"hotJarConfig": {
"hotJarEnabled": false,
"hotJarSiteId": 0,
"hotJarSnippetVersion": 6
}
}
ansible-playbook -i ../env-configuration/ENV/hosts.ini --diff --vault-id @prompt ticketer.yml --extra-vars "jenkins_build_name='ticketer-feature-branches/job/BRANCH' jenkins_job_build_num=NUM actions='upload,configure,deploy,stop,start'" ansible-playbook -i ../env-configuration/ENV/hosts.ini --diff --vault-id @prompt idms-proxy.yml --extra-vars "jenkins_build_name='idms-proxy-feature-branches/job/BRANCH' appFileExtension='.jar' jenkins_job_build_num=NUM actions='upload,stop,deploy,configure,start'" ansible-playbook -i ../env-configuration/nova/hosts.ini --diff --vault-id @prompt ticketer-light.yml --extra-vars "jenkins_build_name='ticketer-light-feature-branches/job/branchName' jenkins_job_build_num=buildNumber actions='upload,configure,deploy'" ansible-playbook -i ../env-configuration/ENV/hosts.ini --diff --vault-id @prompt ticketer-light-gateway.yml --extra-vars "jenkins_build_name='ticketer-light-gateway-feature-branches/job/BRANCH' jenkins_job_build_num=NUM appFileExtension='.jar' actions='upload,stop,deploy,configure,start'"
For further information see requirements documentationhere
Userprofile is acting as the authentication server for OAuth2, and also integrated with CAS to login to IDMS.
Implementation of an authentication service (AuthService) did the following:
Implementation of an verifier service (AuthVerifierService) did the following:
Decode received result using jwt decoder. Implementation of AuthGuard to detect:
Implementation of a callback component in the angular front end once authenticated had been granted.
User permissions for ticketer light are set up and managed via the User Profile Application using the existing Ticketer application permissions structure.
See also documentation for details.
User actions are tracked via Google Analytics.