Resident Services Developers Guide
Overview
Resident Services are the self-services which are used by the residents themselves via a portal. Resident Portal is a web based UI application that provides residents of a country the services related to their Unique Identification Number (UIN).
The documentation here will guide you through the pre-requisites required for the developer' setup.
Software setup
Below are a list of tools required in Resident Services:
JDK 11
Any IDE (like Eclipse, IntelliJ IDEA)
Apache Maven (zip folder)
pgAdmin
Postman
Git
Notepad++ (optional)
lombok.jar (file)
settings.xml (document)
Follow the steps below to set up Resident Services on your local system:
Download
lombok.jar
andsettings.xml
from here.Install Apache Maven.
Copy the
settings.xml
to ".m2" folderC:\Users\<username>\.m2
.Install Eclipse.
Open the
lombok.jar
file and wait for some time until it completes the scan for Eclipse IDE and then clickInstall/Update
. Specify the eclipse installation location if required by clicking the ‘Specify location…’ button. Then, clickInstall/Update
button to proceed.Check the Eclipse installation folder
C:\Users\userName\eclipse\jee-2021-12\eclipse
to see if thelombok.jar
is added. By doing this, you will not have to add the dependency oflombok
in yourpom.xml
file separately as it is auto-configured by Eclipse.Configure the JDK (Standard VM) with your Eclipse by traversing through
Preferences → Java → Installed JREs
.
Code setup
For the code setup, clone the repository and follow the guidelines mentioned in the Code Contributions.
Importing and building of a project
Open the project folder where
pom.xml
is present.Open command prompt from the same folder.
Run the command
mvn clean install -Dgpg.skip=true -DskipTests=true
to build the project and wait for the build to complete successfully.After building of a project, open Eclipse and select
Import Projects → Maven → Existing Maven Projects → Next → Browse to project directory → Finish
.After successful importing of project, update the project by right-click on
Project → Maven → Update Project
.
Environment setup
For the environment setup, you need an external JAR that is available here with different versions. Download below mentioned JARs with appropriate latest/appropriate versions. You will need to input appropriate artifact id and version and other inputs.
a.
icu4j.jar
b.
kernel-auth-adapter.jar
c.
kernel-ref-idobjectvalidator.jar
d.
kernel-transliteration-icu4j.jar
For e.g.: You can download
kernel-auth-adapter.jar
and add to projectLibraries → Classpath → Add External JARs → Select Downloaded JAR → Add → Apply and Close
).Clone mosip-config repository.
a. As Resident Services is using two properties files-
resident-default.properties
andapplication-default.properties
. But for local running of the application, you need to provide additional/overriding properties such as secrets, passwords and properties passed by the environment which can be added in new filesapplication-dev-default.properties
(common properties for all modules) andresident-dev-default.properties
(Resident service specific properties).b. You will have to create both the property files according to your environment and put them in
mosip-config folder
(cloned). The same files are available below for reference.These two files are loaded by application by specifying the application names in the Application VM arguments like-
Dspring.cloud.config.name=application,resident,application-dev
,resident-dev
(also detailed in later section).To run the server, two files are required-
kernel-config-server.jar
andconfig-server-start.bat
.Put both the files in the same folder and point the property-
Dspring.cloud.config.server.native.search-locations
tomosip-config
folder inconfig-server-start.bat
file and also check the version ofkernel-config-server.jar
towards the end of the command.Example:
As mentioned earlier, you will have to create property files according to your environment like
resident-env-default
andapplication-env-default
(here env represents environment name). Both files will contain different configurations such asresident-env-default
will have config properties (e.g., secrets, passcodes, etc) used for resident-services module only andapplication-env-default
is used for environment specific changes and can be used for other modules as well.In this example, currently, these two files are created for dev environment and hence the files have suffix of
-dev
. If you want to run it for a different environment such as qa, create these two files with-qa
suffix and then you will also need to provide the appropriate VM argument for that referring to qa environment.
For instance,
Add
mosip.resident.client.secret=***********
property to be able to use a decrypted passcode and run it in your local machine.If you check the URLs present in
application-default
file, they are set to module specific URLs, but you need to use internal/external environment URLs to access the APIs by using application-dev-default file.In
application-dev-default
file, assign environment domain URL tomosipbox.public.url
and change all other URLs with ${mosipbox.public.url}.It results in
mosipbox.public.url=internal/externalAPI
(e.g., mosipbox.public.url=https://api-internal.dev.mosip.net) and it will connect with the Development environment.
Run the server by opening the
config-server-start.bat
file.
Configurations to be done in Eclipse
Open Eclipse and run the project for one time as Java application, so that it will create a Java application which you can see in debug configurations and then change its name. (e.g.: project name with environment - "Resident-dev").
Open the Arguments tab and specify Application VM arguments: For example, for dev environment:
Save this run configuration as ‘Resident-dev’ .
For
qa
environment, you can createResident-qa
run configuration with VM argument as below.Example:
Click
Apply
and then debug it (starts running). In the console, you can see a message likeStarted ResidentBootApplication in 34.078 seconds (JVM running for 38.361)
.
Resident services API
For API documentation, refer here.
The APIs can be tested with the help of Postman or Swagger-UI.
Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster. It is widely used tool for API testing. Below you will find the APIs postman collection of resident-services.
Swagger is an interface description language for describing restful APIs expressed using JSON. You can access Swagger-UI of resident-services for dev-environment from
https://api-internal.dev.mosip.net/resident/v1/swagger-ui.html
and localhost fromhttp://localhost:8099/resident/v1/swagger-ui.html
.Download the JSON collection available below and import in your postman. Resident-Service-APIs.postman_collection-latest.json.
Create an environment as shown in the image below.
This environment is created for dev. Give the variable name as url
and set both the values as https://api-internal.dev.mosip.net
.
In the similar way, create another environment as shown below.
This environment is created for localhost. Give the variable name as url
and set both the values as http://localhost:8099
.
Last updated