Aadhar Data Valut
Aadhar Data Valut
FOR
AADHAAR DATA VAULT SERVICE
Sureka Suresh
Table of Contents
1. Introduction...................................................................................................................................3
1.1 Purpose..................................................................................................................................3
1.2 Scope.....................................................................................................................................3
1.3 Out of Scope..........................................................................................................................3
1.4 Document Ownership............................................................................................................3
2 API/Service Definition....................................................................................................................3
2.1 Risks.......................................................................................................................................4
2.2 Assumptions..........................................................................................................................4
2.3 Issues.....................................................................................................................................4
2.4 Dependencies........................................................................................................................4
2.5 Constraints.............................................................................................................................4
2.6 API/Service Design.................................................................................................................5
3 API/Service Method Definition......................................................................................................5
3.1 POST/ insertUID.....................................................................................................................5
3.1.1 Implementation.............................................................................................................5
3.1.2 Method Design...............................................................................................................5
3.1.3 Summary........................................................................................................................6
3.1.4 Request Schema.............................................................................................................6
3.1.5 Response Schema..........................................................................................................8
3.2 POST/ getUID.........................................................................................................................8
3.2.1 Summary........................................................................................................................9
3.2.2 Request Schema.............................................................................................................9
3.2.3 Response Schema........................................................................................................10
3.3 POST/ getUUID.....................................................................................................................11
3.3.1 Summary......................................................................................................................12
3.3.2 Request Schema...........................................................................................................13
3.3.3 Response Schema........................................................................................................14
3.3.4 Error Handling..............................................................................................................14
3.3.5 Auditing........................................................................................................................15
3.3.6 Logging.........................................................................................................................15
4 API/Service NFR...........................................................................................................................15
4.1 Security................................................................................................................................15
4.2 Auditing...............................................................................................................................15
4.3 Performance........................................................................................................................15
1.1 Purpose
The purpose of this document is to provide the detailed design for the Portal Experience API along
with the interaction methods/operations, protocols, and Quality of Service (QoS). It also provides
request and response structure. It also details the non-functional requirements design like debug
logging, error/exception handling, Security.
1.2 Scope
This document only covers details around Portal API that will be used to perform the following
operations at DataVault API Level.
2 API/Service Definition
API/Service Title Experience API to perform the DataVault Operations
API/Service Name x-portal-aadhar-datavault-api.raml
API/Service Version 1.0
Criticality High
Layer/Category System
Usage Real Time
Base URI Dev:http://Mulesoft-Dev-743329365.ap-south-1.elb.amazonaws.com/
api/1.0/ux/{resoucename}
SIT:https://sit-api.fsbl.in/api/1.0/ux/{resoucename}
UAT: https://uat-api.fsbl.in/api/1.0/ux/{resoucename}
PROD : https://api.fivestar.in/api/1.0/ux/{resoucename}
2.1 Risks
FIVESTAR will be using Spring security module to achieve Basic Authentication to secure the APIs.
Authentication happens via Code which is against standard Mulesoft's suggestion to have the
authentication at the API Gateway level, since API manager license is not procured by FiveStar.
2.2 Assumptions
2.3 Issues
1. If system API is down, it will try re-connecting based on a defined configuration.
2. API Dashboard not privileged, hence the client won’t be able to check the traffic and the status code
per requests.
2.4 Dependencies
1. Fivestar to provide access to the Data Vault API for various integration processes.
3.1.1 Implementation
Common logger framework should be used for standard logging across all the entry, process and exit
point as per the best practices.
All component naming should be done as per the best practices.
This API method accepts encrypted request over HTTP endpoint.
The request is validated against the mapping sheet and an error response is returned if validation
fails.
The timeout properties on experience API should be configurable. Actual value will be configured for
production based on performance testing.
All sensitive properties should be secured using AES encryption and CBC mode.
3.1.3 Summary
This API operation is responsible to Post the Insert UID details via Data Vault. The Post operation
covers the following use cases:
POST Insert Aadhaar Number into Data Vault
The experience API will be invoked by the request payload to post insert UID Details
● /insertUID
The below parameters will be picked from the secured properties (<project-name>-{env}-secure-
properties.yaml, (<project-name>-{env}-properties.yaml, (<project-name>-common-properties.yaml)
file before invoking the Data Vault System
System API configuration details from (<project-name>-{env}-properties.yaml)
System api basic authentication details, client id and client secret (<project-name>-{env}-secure-
properties.yaml)
System api call retry configuration (<project-name>common-properties.yaml)
There is no request schema defined as such, because the request which comes to the experience api
is in the encrypted format and is converted to byte using fromBase64 and then is decrypted using
the AES/CBC algorithm using IV and Key in the process api.
After decrypting the payload, convert the encrypted file using jar files provided by Syntizen
Technologies Pvt. Ltd. and send it to the System API.
Refer the “x-portal-aadhar-datavault-api” project in Anypoint Design Center for schema definition. A
quick link for the project is as follows.
Note: you would require Fivestar Anypoint Platform account to be able to access the request schema.
Canonical Model for request schema is not applicable.
Note:- IV key is attached at the end of encrypted payload string after . (dot), In case of any . (dot)
generated in encrypted payload will be the issue while doing decryption
Java Files:
Request
"UIDToken": "",
"UID": "123412341234",
"AppKey": "LNFVN-FRXWZ-XXUCT-XZXDO",
"Rrn": "310711568052840183"
Encrypted request :
+qIBZhyJZ6w5h0+TueXCHoBjyqZmQi3i3oqkSFSKQ4ed9MFof0A682qlx5gl0jQfe1xbkFirR4y33GgrFMML
+XZUVrKlkLOF9p+cWObJ4pKdw4OT1X1aZIkV/eQcDIdk0jAd95Sx25Pkvw9oJrqscQ==
String 1 – Success
STATUS
0 - Failure
Response
"RESPONSE": {
"STATUS": "1",
"UUID": "5911108950349",
"UIDTOKEN": "",
"MASKEDUID": "********1234",
"ERRORCODE": "SYNDV00",
"ERRORMSG": ""
Refer the “x-portal-aadhar-datavault-api” project in Anypoint Design Center for schema definition. A
quick link for the project is as follows.
https://anypoint.mulesoft.com/exchange/3310beae-d70b-4ed2-8c88-18a9a88c900c/x-portal-
aadhar-datavault-api/
● /getUID
The below parameters will be picked from the secured properties (<project-name>-{env}-secure-
properties.yaml, (<project-name>-{env}-properties.yaml, (<project-name>-common-properties.yaml)
file before invoking the Data Vault System
System API configuration details from (<project-name>-{env}-properties.yaml)
System api basic authentication details, client id and client secret (<project-name>-{env}-secure-
properties.yaml)
System api call retry configuration (<project-name>common-properties.yaml)
There is no request schema defined as such, because the request which comes to the experience api
is in the encrypted format and is converted to byte using fromBase64 and then is decrypted using
the AES/CBC algorithm using IV and Key in the process api.
int 1 – UUID
UIDType
2 – UID Token
Request
"UUID": "5911108950349",
"UIDType": "1",
"AppKey": "LNFVN-FRXWZ-XXUCT-XZXDO",
"Rrn": "310711332385314560"
Encrypted Request:
YdJzN9MV1B8dVZog9+bRazjyRdkuUbsSjUiJXWJ9KTLuVyusOTfSVwpx1OIaed1qcf/
DhZVrBvIjEXqqGEMMtz0bk/
WZ7Tr3T16XbZ8UF9P+BRNVmd8Egn6SOlSJWCB+Uzn5kdwTjCU61qde3Sn15A==
String 1 – Success
STATUS
0 - Failure
Response
"RESPONSE": {
"STATUS": "1",
"UID": "123412341234",
"UIDTOKEN": "",
"MASKEDUID": "",
"ERRORCODE": "SYNDV00",
"ERRORMSG": ""
Refer the “x-portal-aadhar-datavault-api” project in Anypoint Design Center for schema definition. A
quick link for the project is as follows.
https://anypoint.mulesoft.com/exchange/3310beae-d70b-4ed2-8c88-18a9a88c900c/x-portal-
aadhar-datavault-api/
● /getUUID
The below parameters will be picked from the secured properties (<project-name>-{env}-secure-
properties.yaml, (<project-name>-{env}-properties.yaml, (<project-name>-common-properties.yaml)
file before invoking the Data Vault System
System API configuration details from (<project-name>-{env}-properties.yaml)
System api basic authentication details, client id and client secret (<project-name>-{env}-secure-
properties.yaml)
System api call retry configuration (<project-name>common-properties.yaml)
There is no request schema defined as such, because the request which comes to the experience api
is in the encrypted format and is converted to byte using fromBase64 and then is decrypted using
the AES/CBC algorithm using IV and Key in the process api.
After decrypting the payload, convert the encrypted file using jar files provided by Syntizen
Technologies Pvt. Ltd. and send it to the System API.
int UIDToken - 2
UIDType
UID - 3
Request
"UID": "123412341234",
"UIDType": "3",
"AppKey": "LNFVN-FRXWZ-XXUCT-XZXDO",
"Rrn": "310711047530485400"
Encrypted Request:
String 1 – Success
STATUS
0 - Failure
Response
"RESPONSE": {
"STATUS": "1",
"UUID": "5911108950349",
"UIDTOKEN": "",
"MASKEDUID": "********1234",
"ERRORCODE": "SYNDV00",
"ERRORMSG": ""
Refer the “x-portal-aadhar-datavault-api” project in Anypoint Design Center for schema definition. A
quick link for the project is as follows.
https://anypoint.mulesoft.com/exchange/3310beae-d70b-4ed2-8c88-18a9a88c900c/x-portal-
aadhar-datavault-api/
3.3.5 Auditing
NA
3.3.6 Logging
Following information will be implemented and captured in Database in this API:
Application Name
Flow Name
Request Id
Message Id
Log Message
Payload should never be logged. If business requires some key information to be logged such as
correlation Id, it should be logged using custom logger framework but ensure not to log any sensitive
data such as customer email, contact details or card details.
4 API/Service NFR
4.1 Security
Following security shall be implemented/configured in this API:
The API shall be private and should use HTTP i.e., expose internally using port 8192.
Any system API credentials must be encrypted and picked from the secure property files.
4.2 Auditing
NA
4.3 Performance
Mule API makes multiple re-connection attempt due to target web service connection issues, the
overall time for API to return a response will be multiplied based on the configuration.
The overall response time depends on how long downstream API takes to serve the request.
Manual monitoring and health check will be part of the support activity carried out by the support
team. Maven as a build tool will be used to standardize on build best practices, reduce
dependencies, simplify continuous integration and easily share projects between developers.
4.8.2 Technologies
Data Weave expression language
JSON
4.8.3 Environment
Refer to the section 2.6 under below link for quick reference of HLD for details related to
environments to be used.
5 Testing
***End of Document***