Giter Site home page Giter Site logo

registration's Introduction

Maven Package upon a push Quality Gate Status

Registration Processor

Overview

This repository contains source code and design documents for MOSIP Registration Processor which is the server-side module to manage ID lifecycle. The modules exposes API endpoints.

Overview of Registration Processor

The front end UI application called Registration Client is available in a separate repo here

Registration stages and pipeline

Staged architecture:

The control and data flow in the stages is controlled by Workflow engine

Other services:

  • Packet Server
  • Registration status service
  • Notification service
  • Transaction service

Registration flows

An overview of various enrollment scenarious (or flows) is described in ID Lifecycle Management. Registration Processor recognises the following flows:

  • New
  • Update
  • Child
  • Correction
  • Lost
  • Activate/deactivate
  • Reprint

The stage sequence against each flow refer here

Vertx

Vertx is a framework for stages. Stages run as Vertx.

Kafka

Regprocessor stages are connected with eventbus. MOSIP supports two types of eventbus:

  • Vertx Eventbus
  • Kafka (default) - provides persistence across restarts (more robust), throttling capacity, better debugging

Kafka offers certain advantages over Vertx eventbus hence it is recommended as the default eventbus mechanism. All events between stages pass through Kafka queues. There is a separate Kafka topic for each stage.

One of the power features is to enable throttling in the pipeline. See Throttling

Hazelcast

Distributed cache - for packetmanager

Database

See DB guide

Registration Packet Structure

Packetmanager

Build & run (for developers)

The project requires JDK 1.11.

  1. To build jars:
    $ cd registration
    $ mvn clean install 
    
  2. To skip JUnit tests and Java Docs:
    $ mvn install -DskipTests=true -Dmaven.javadoc.skip=true
    
  3. To build Docker for a service:
    $ cd <service folder>
    $ docker build -f Dockerfile
    

Deploy

Registration processor in sandbox

To deploy Registration Processor services on Kubernetes cluster using Dockers refer to Sandbox Deployment.

Configuration

Refer to the configuration guide.

Test

Automated functional tests available in Functional Tests repo

APIs

API documentation is available here

License

This project is licensed under the terms of Mozilla Public License 2.0.

registration's People

Contributors

abhishek-kumar3 avatar alokranjan1106 avatar arun6368 avatar balvikashsharma avatar dineshashokan7595 avatar dineshkaruppiaht7697 avatar gurpreet5991 avatar loganathansekar7627 avatar maheshkumar1804 avatar manojsp12 avatar meghauttamtanga avatar monobikashdas avatar mosiprajath avatar nagalakshminithyanandan avatar omsaieswar avatar pranavk5 avatar premkumar1997 avatar rajjhajsr avatar ramaduraipandian1989 avatar ravibalaji6462 avatar rishabhjavad avatar sanjaymurali7395 avatar shashank0707 avatar sowmya695 avatar sravya46559 avatar srinivasanmt avatar swatikp avatar taleevaalam avatar urviljoshi avatar yaswanths2 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

registration's Issues

[BUG] <use verb instead of noun such as 'unable to register...'

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Environment (please complete the following information):

  • Server OS: [RHEL 7, CentOS 7]
  • Client OS : [Windows 10, Ubuntu 18.04 LTS etc]
  • Build : [build that is being used]
  • Browser : [Chrome, Firefox, Edge]

Attach logs
helps in faster resolution of data

Additional context
Add any other context about the problem here.

[BUG] - Unable to process packets in Processor

Describe the bug
We are carrying out performance testing of processor to determine the processing capability of each stage with single instance of docker. Hence we uploaded about 1000 packets serially.
We are facing time out exception between packet uploaded and CEPH

To Reproduce
Steps to reproduce the behavior:

  1. Upload 100 packets from a registration client to processor
  2. Check the logs for timeout exception in Uploaded stage

Expected behavior
Packet should get processed when uploaded serially

Screenshots
Refer logs attached

Environment (please complete the following information):

  • Server OS: [CentOS 7]
  • Client OS : [Windows 10]
  • Build : [MOSIP 1.0.0]
  • Browser : NA

Attach logs
Logs attached
processor_uploader_stage_connection_error.txt

Additional context
Hence we increased the number of concurrent connections parameters in CEPH to 100 to 1000, still the issue persisted

However, we independently pushed the data from a dummy java program, where everytime we created a new connection to CEPH instead to reusing the existing one, and the program just worked fine
processor_uploader_stage_connection_error.txt

Can't login to Registration Client 1.1.3

I've installed registration client, and it starts up, then I've added client name, public key, key index, to machine_master table, and assigned regcntr_id to 10001, then created a user in keycloak gave him REGISTRATION_* roles, and gave him an attribute of rid='10001', but I cant login in the registration client, it gives me an alert box with "Unable to get Authentication Token".

registration.log:

2021-01-11T14:39:38+02:00 - [io.mosip.registration.controller.auth.LoginController] - INFO  - REGISTRATION - LOGIN - LOGIN_CONTROLLER - REGISTRATION - REG - Validating Credentials entered through UI
2021-01-11T14:39:40+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:40+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:40+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:41+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:41+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:41+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:42+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:42+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:42+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:42+02:00 - [io.mosip.registration.controller.BaseController] - INFO  - REGISTRATION - BASE - BASE_CONTROLLER - REGISTRATION - REG - Fetching value from application Context
2021-01-11T14:39:42+02:00 - [io.mosip.registration.controller.auth.LoginController] - INFO  - REGISTRATION - LOGIN - LOGIN_CONTROLLER - REGISTRATION - REG - Validating Credentials entered through UI
2021-01-11T14:39:42+02:00 - [io.mosip.registration.service.login.impl.LoginServiceImpl] - INFO  - REGISTRATION - LOGIN - LOGIN_SERVICE - REGISTRATION - REG - Fetching User details
2021-01-11T14:39:43+02:00 - [io.mosip.registration.dao.impl.UserDetailDAOImpl] - INFO  - REGISTRATION - USER_DETAIL - REGISTRATION_USER_DETAIL_DAO_IMPL - REGISTRATION - REG - Fetching User details
2021-01-11T14:39:43+02:00 - [io.mosip.registration.dao.impl.UserDetailDAOImpl] - INFO  - REGISTRATION - USER_DETAIL - REGISTRATION_USER_DETAIL_DAO_IMPL - REGISTRATION - REG - User details fetched successfully
2021-01-11T14:39:43+02:00 - [io.mosip.registration.service.login.impl.LoginServiceImpl] - INFO  - REGISTRATION - LOGIN - LOGIN_SERVICE - REGISTRATION - REG - Completed fetching User details
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.healthcheck.RegistrationAppHealthCheckUtil] - INFO  - REGISTRATION - REGISTRATION APP HEALTHCHECK UTIL - ISNETWORKAVAILABLE - REGISTRATION - REG - Registration Network Checker had been called.
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.healthcheck.RegistrationAppHealthCheckUtil] - INFO  - REGISTRATION - SERVICE_DELEGATE_UTIL - PREPARE_POST_REQUEST - REGISTRATION - REG - Mosip Host name in environment variables : console.sb
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.healthcheck.RegistrationAppHealthCheckUtil] - INFO  - REGISTRATION - REGISTRATION APP HEALTHCHECKUTIL - ISNETWORKAVAILABLE - REGISTRATION - REG - Internet Access Available.====>200
2021-01-11T14:39:43+02:00 - [io.mosip.registration.context.SessionContext] - INFO  - REGISTRATION - LOGIN - LOGIN_CONTROLLER - REGISTRATION - REG - Entering into creating Session Context
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.restclient.AuthTokenUtilService] - INFO  - AUTH_REFRESH_TOKEN_UTIL - REGISTRATION - REG - Fetching Auth Token and refresh token based on Login Mode >>> PASSWORD
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.restclient.AuthTokenUtilService] - INFO  - AUTH_REFRESH_TOKEN_UTIL - REGISTRATION - REG - Preparing URI for web-service
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.restclient.AuthTokenUtilService] - INFO  - AUTH_REFRESH_TOKEN_UTIL - REGISTRATION - REG - Completed preparing URI for web-service >>>>>>> https://console.sb/v1/syncdata/authenticate/useridpwd
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.restclient.RestClientUtil] - DEBUG - REGISTRATION - REST_CLIENT_UTIL - INVOKE Token - REGISTRATION - REG - invoke token method called
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.restclient.RestClientUtil] - DEBUG - REGISTRATION - REST_CLIENT_UTIL - INVOKE - REGISTRATION - REG - invoke method ended
2021-01-11T14:39:43+02:00 - [io.mosip.registration.exception.RegBaseCheckedException] - ERROR - REGISTRATION - CHECKED_EXCEPTION - REGISTRATION - REG - REG-SDU-005-->Auth token received from the authentication web-service is either null or empty
2021-01-11T14:39:43+02:00 - [io.mosip.registration.util.restclient.AuthTokenUtilService] - ERROR - AUTH_REFRESH_TOKEN_UTIL - REGISTRATION - REG - io.mosip.registration.exception.RegBaseCheckedException: REG-SDU-005 --> Auth token received from the authentication web-service is either null or empty
	at io.mosip.registration.util.restclient.AuthTokenUtilService.getAuthTokenResponse(AuthTokenUtilService.java:233)
	at io.mosip.registration.util.restclient.AuthTokenUtilService.getAuthTokenAndRefreshToken(AuthTokenUtilService.java:195)
	at io.mosip.registration.util.restclient.AuthTokenUtilService.getAuthTokenAndRefreshToken(AuthTokenUtilService.java:162)
	at io.mosip.registration.context.SessionContext.validateInitialLogin(SessionContext.java:190)
	at io.mosip.registration.context.SessionContext.create(SessionContext.java:165)
	at io.mosip.registration.controller.auth.LoginController.validateCredentials(LoginController.java:509)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javafx.reflect.Trampoline.invoke(Unknown Source)
	at jdk.internal.reflect.GeneratedMethodAccessor59.invoke(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.base/java.lang.reflect.Method.invoke(Unknown Source)
	at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(Unknown Source)
	at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(Unknown Source)
	at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(Unknown Source)
	at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(Unknown Source)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
	at javafx.graphics/javafx.scene.Node.fireEvent(Unknown Source)
	at javafx.controls/com.sun.javafx.scene.control.behavior.TextFieldBehavior.fire(Unknown Source)
	at javafx.controls/com.sun.javafx.scene.control.behavior.TextInputControlBehavior.lambda$keyMapping$62(Unknown Source)
	at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(Unknown Source)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(Unknown Source)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(Unknown Source)
	at javafx.base/javafx.event.Event.fireEvent(Unknown Source)
	at javafx.graphics/javafx.scene.Scene$KeyHandler.process(Unknown Source)
	at javafx.graphics/javafx.scene.Scene.processKeyEvent(Unknown Source)
	at javafx.graphics/javafx.scene.Scene$ScenePeerListener.keyEvent(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$KeyEventNotification.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleKeyEvent$1(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(Unknown Source)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleKeyEvent(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.View.handleKeyEvent(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.View.notifyKey(Unknown Source)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)

2021-01-11T14:39:43+02:00 - [io.mosip.registration.exception.RegBaseCheckedException] - ERROR - REGISTRATION - CHECKED_EXCEPTION - REGISTRATION - REG - REG-SDU-005-->Auth token received from the authentication web-service is either null or empty
2021-01-11T14:39:43+02:00 - [io.mosip.registration.controller.reg.AlertController] - INFO  - REGISTRATION - ALERT_CONTROLLER - ALERT_GENERATION - REGISTRATION - REG - Alert generation has been started
2021-01-11T14:39:43+02:00 - [io.mosip.registration.controller.reg.AlertController] - INFO  - REGISTRATION - ALERT_CONTROLLER - ALERT_GENERATION - REGISTRATION - REG - Alert generation has been ended
2021-01-11T14:39:44+02:00 - [io.mosip.registration.controller.reg.AlertController] - INFO  - REGISTRATION - ALERT_CONTROLLER - ALERT_GENERATION - REGISTRATION - REG - Alert closing has been started
2021-01-11T14:39:44+02:00 - [io.mosip.registration.controller.reg.AlertController] - INFO  - REGISTRATION - ALERT_CONTROLLER - ALERT_GENERATION - REGISTRATION - REG - Alert closing has been ended
2021-01-11T14:39:44+02:00 - [io.mosip.registration.controller.reg.AlertController] - INFO  - REGISTRATION - ALERT_CONTROLLER - ALERT_GENERATION - REGISTRATION - REG - Alert closing has been started
2021-01-11T14:39:44+02:00 - [io.mosip.registration.controller.reg.AlertController] - INFO  - REGISTRATION - ALERT_CONTROLLER - ALERT_GENERATION - REGISTRATION - REG - Alert closing has been ended

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.