User Tools

Site Tools


development:applications:ticketer_light_gateway

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
development:applications:ticketer_light_gateway [2022/10/03 14:42] 10.91.110.100development:applications:ticketer_light_gateway [2022/10/03 15:04] (current) 10.91.110.100
Line 13: Line 13:
  
 ===== Project Documents ===== ===== Project Documents =====
 +https://drive.google.com/drive/u/0/folders/1FbjMFdmZpCJ4jWcqFe4R21mnAr6wUhPy
 +
 +===== Apis / Data Accessed =====
 +
 +API endpoints for core Ticket Areas including (using spring-webflux for REST instead of graphql due to underlying business logic):
 +  * Form
 +  * Attachment
 +  * Contact Details
 +  * Email
 +  * Running Log
 +  * Ticket History
 +  * Ticket Updates
 +  * User Data for Ticketer
 +  * Visbility
 +  * Workflow
 +
 +Graphql Query API endpoints for core Ticket Areas:
 +
 +<code>
 +type Query {
 +    tickets(criteria: TicketSearchCriteria): [Ticket]
 +    ticketForms(ticketId: ID): [Form]
 +    allForms: [Form]
 +    allFormGroups: [FormGroup]
 +    relatedTickets(ticketId: ID, networkId: ID, visibilities: String!): [Ticket]
 +    users(homeMarket: String): [User]
 +    workflows(active: Boolean, published: Boolean, mockUp: Boolean): [Workflow]
 +    previousStatus(ticketId: ID!): TicketStatus
 +    nextStatuses(workflowId: ID!, statusName: String!): [GNode]
 +    allStatusesForWorkflow(workflowId: ID!): [GNode]
 +    allStatuses: [GNode]
 +    visibilities: [Visibility]
 +    ticketTypes: [TicketType]
 +    ticketPriorities: [TicketPriorityEntry]
 +    hubs: [NetworkElement]
 +    nodesOfHub(hubId: ID!): [NetworkElement]
 +    hubsOfVisibility(visibility: String!): [NetworkElement]
 +    networkIdentifiersOfVisibility(visibility: String!): [NetworkIdentifier]
 +    ofnTicketDeviceDetails(ticketIds: String!): [OFNDevice]
 +    ofnTicketFaultDetails(ticketIds: String!): [OFNFault]
 +}
 +</code>
 +
 +Graphql Object types:
 +<code>
 +Ticket
 +TicketStatus
 +Workflow
 +GNode
 +NetworkIdentifier
 +User
 +Form
 +KeyValue
 +FormGroup
 +Visibility
 +Region
 +TicketType
 +TicketPriorityConfig
 +TicketPriorityConfigEntry
 +NetworkElement
 +OFNFault
 +OFNDevice
 +</code>
 +
 +===== Architecture =====
 +{{ :development:applications:r_d-architecture_-_ticketer_lite.drawio.png?600 |}}
 +
 +===== Development Configuration =====
 +Project can be pointed at local or server deployed version of all api endpoints listed above. 
 +See src/main/resources/application.properties for environment configuration for local dev.
 +
 +===== Deployment =====
 +The ticketer-light-gateway is deployed to the server handlers in **/var/spring-boot/** and is load balanced. Its environment specific variables are passed via the **application.properties** file to the app at runtime.
 +
 +Current Config Fields Are:
 +
 +<code>
 +# Build Info
 +jenkins.build.identifier=ticketer-light-gateway » ticketer-light-gateway-feature-branches » REL-4.1.0 REL-4.1.0.1
 +jenkins.build.branch=REL-4.1.0
 +jenkins.build.number=1
 +jenkins.build.time=2022-07-26 19:11:38
 +deployment.time=2022-08-08 15:30:19
 +
 +spring.main.allow-bean-definition-overriding=true
 +
 +# General logging settings
 +spring.application.name=ticketer-light-gateway
 +logging.file.max-history=5
 +logging.file.max-size=10MB
 +logging.file.name=/home/scotty/logs/spring-boot/ticketer-light-gateway.log
 +
 +# Server settings
 +server.port=8210
 +server.servlet.context-path=/ticketer-light-gateway
 +spring.webflux.base-path=/ticketer-light-gateway
 +
 +allowedOrigins=https://qanova.errigal.com
 +
 +# DB Settings
 +spring.r2dbc.url=r2dbc:mysql://10.91.130.211:3306/ticketer?useUnicode=yes&characterEncoding=UTF-8
 +spring.r2dbc.username=root
 +spring.r2dbc.password==T7g(?(HHL
 +
 +#spring.jpa.show-sql=true
 +spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
 +
 +graphql.mapping=/ticketer-light-gateway/graphql
 +graphql.servlet.actuator-metrics=true
 +graphql.annotations.base-package=com.errigal.ticketerlightgateway.model
 +
 +auth.jwt.jwksUrlPath=https://qanova.errigal.com
 +
 +userprofile.uri=https://qanova.errigal.com/userprofile
 +userprofile.clientId=0f59ca3a-353c-11eb-b954-0242ac110002
 +userprofile.clientSecret=jwha8WbRaTPZMW7mbhhEyl4iB1hAKa+xhGC/mObCXP48m2504MpRkPK5U3EumBSD
 +
 +ticketer.url=https://qanova.errigal.com/Ticketer
 +
 +#for OFN email
 +spring.codec.max-in-memory-size=10MB
 +
 +#Metrics related configurations
 +management.endpoint.metrics.enabled=true
 +management.metrics.tags.application=${spring.application.name}
 +management.endpoints.web.exposure.include=*
 +management.endpoint.prometheus.enabled=true
 +management.metrics.export.prometheus.enabled=true
 +
 +#Key for jwt decryption
 +com.errigal.userprofile.key=OO8qfrtYIqAX1EhU
 +</code>
 +
 +=== Ansible Playbooks ===
 +<code>
 + ansible-playbook -i ../env-configuration/nova/hosts.ini --diff --vault-id @prompt ticketer-light-gateway.yml --extra-vars "jenkins_build_name='ticketer-light-gateway-feature-branches/job/branchName' appFileExtension='.jar' jenkins_job_build_num=buildNumber actions='upload,stop,deploy,configure,start'" 
 +</code>
 +
 +=== Jenkins Build ===
 +https://jenkins.errigal.com:8443/job/ticketer-light-gateway/
development/applications/ticketer_light_gateway.1664804564.txt.gz · Last modified: 2022/10/03 14:42 by 10.91.110.100