Update Identity Mapping file in Configuration
As part of the migration process, we will be updating the latest version of the identity-mapping.json
file (1.2.0.1) from the mosip-config
. This update involves modifying the mapping values to align with the id schema of the respective country.
To guide you through the updating process, please refer to the following information:
In the provided sample identity-mapping.json
, the focus will be solely on modifying the mapper values to match the id schema of the country.
{
"identity":{
"IDSchemaVersion":{
"value":"IDSchemaVersion"
},
"name":{
"value":"fullName"
},
"gender":{
"value":"gender"
},
"dob":{
"value":"dateOfBirth"
},
"age":{
"value":"age"
},
"introducerRID":{
"value":"introducerRID"
},
"introducerUIN":{
"value":"introducerUIN"
},
"introducerVID":{
"value":"introducerVID"
},
"introducerName":{
"value":"introducerName"
},
"phone":{
"value":"phone"
},
"phoneNumber":{
"value":"phone"
},
"email":{
"value":"email"
},
"emailId":{
"value":"email"
},
"uin":{
"value":"UIN"
},
"vid":{
"value":"VID"
},
"individualBiometrics":{
"value":"individualBiometrics"
},
"introducerBiometrics":{
"value":"introducerBiometrics"
},
"individualAuthBiometrics":{
"value":"individualAuthBiometrics"
},
"officerBiometricFileName":{
"value":"officerBiometricFileName"
},
"supervisorBiometricFileName":{
"value":"supervisorBiometricFileName"
},
"residenceStatus":{
"value":"residenceStatus"
},
"preferredLanguage":{
"value":"preferredLang"
},
"locationHierarchyForProfiling":{
"value":"zone,postalCode"
},
"addressLine1":{
"value":"addressLine1"
},
"addressLine2":{
"value":"addressLine2"
},
"addressLine3":{
"value":"addressLine3"
},
"location1":{
"value":"city"
},
"location2":{
"value":"region"
},
"location3":{
"value":"province"
},
"postalCode":{
"value":"postalCode"
},
"location4":{
"value":"zone"
},
"fullAddress":{
"value":"addressLine1,addressLine2,addressLine3,city,region,province,postalCode"
},
"bestTwoFingers":{
"value":"bestTwoFingers"
},
"birthdate":{
"value":"dateOfBirth"
},
"picture":{
"value":"face"
},
"phone_number":{
"value":"phone"
},
"address":{
"value":"addressLine1,addressLine2,addressLine3,city,region,province,postalCode"
},
"individual_id":{
"value":"individual_id"
},
"street_address":{
"value":"addressLine1,addressLine2,addressLine3"
},
"locality":{
"value":"city"
},
"region":{
"value":"region"
},
"postal_code":{
"value":"postalCode"
},
"country":{
"value":"province"
}
},
"metaInfo":{
"value":"metaInfo"
},
"audits":{
"value":"audits"
},
"documents":{
"poa":{
"value":"proofOfAddress"
},
"poi":{
"value":"proofOfIdentity"
},
"por":{
"value":"proofOfRelationship"
},
"pob":{
"value":"proofOfDateOfBirth"
},
"poe":{
"value":"proofOfException"
}
},
"attributeUpdateCountLimit":{
"fullName":2,
"gender":1,
"dob":1,
"age":1
}
}
According to the identity-mapping.json
file mentioned above, we need to verify if a value is present in the country's ID schema. If the value exists, we can retain it as is. Otherwise, we should update the value in the identity-mapping.json
file.
To illustrate, let's consider a few examples:
The fullName field is not included in the ID schema. Instead, it consists of firstName, middleName, and lastName. Therefore, we should replace the fullName with firstName, middleName, and lastName in the identity-mapping.json file.
Similarly, the introducerUIN field is not present in the schema, but instead, it has introducerCredentialID. Hence, we need to substitute introducerUIN with introducerCredentialID in the mapping.json file.
Additionally, since addressLine1 is not part of the schema, we should replace its value with presentAddressLine1, which is present.
Lastly, the phone field is not found in the schema, but mobileno is present. Thus, we need to replace phone with mobileno in the mapping.json file.
Our task is to compare each field value in the identity-mapping.json file with the ID schema and update it with the appropriate value based on the schema.
Sample Countryβs ID schema
{
"$schema":"http://json-schema.org/draft-07/schema#",
"description":"string",
"additionalProperties":false,
"title":"string",
"type":"object",
"definitions":{
"simpleType":{
"uniqueItems":true,
"additionalItems":false,
"type":"array",
"items":{
"additionalProperties":false,
"type":"object",
"required":[
"language",
"value"
],
"properties":{
"language":{
"type":"string"
},
"value":{
"type":"string"
}
}
}
},
"documentType":{
"additionalProperties":false,
"type":"object",
"required":[
"format",
"type",
"value"
],
"properties":{
"refNumber":{
"type":"string"
},
"format":{
"type":"string"
},
"type":{
"type":"string"
},
"value":{
"type":"string"
}
}
},
"biometricsType":{
"additionalProperties":false,
"type":"object",
"properties":{
"format":{
"type":"string"
},
"version":{
"type":"number",
"minimum":0
},
"value":{
"type":"string"
}
}
}
},
"properties":{
"identity":{
"additionalProperties":false,
"type":"object",
"required":[
"IDSchemaVersion",
"firstName",
"dateOfBirth",
"pobCountry",
"pobProvince",
"pobCity",
"gender",
"residenceStatus",
"bloodType",
"permanentCountry",
"permanentAddressLine1",
"addressCopy",
"presentCountry",
"presentAddressLine1",
"modeOfClaim",
"proofOfAddress",
"individualBiometrics"
],
"properties":{
"presentProvince":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"pobCountry":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"pobProvince":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"permanentBarangay":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"mobileno":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"type":"string",
"fieldType":"default"
},
"suffix":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{1,3}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"proofOfDateOfBirth":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/documentType"
},
"introducerSuffix":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{1,3}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"introducerMiddleName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"presentCity":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"firstName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"IDSchemaVersion":{
"bioAttributes":[
],
"fieldCategory":"none",
"format":"none",
"type":"number",
"fieldType":"default",
"minimum":0
},
"proofOfException":{
"bioAttributes":[
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/documentType"
},
"registrationType":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"dynamic",
"$ref":"#/definitions/simpleType"
},
"permanentCountry":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"presentCountry":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"permanentProvince":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"proofOfRelationship":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/documentType"
},
"UIN":{
"bioAttributes":[
],
"fieldCategory":"none",
"format":"none",
"type":"string",
"fieldType":"default"
},
"maritalStatus":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"dynamic",
"$ref":"#/definitions/simpleType"
},
"presentAddressLine1":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,255}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"presentZipcode":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"lastName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"presentAddressLine2":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,255}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"presentAddressLine3":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,255}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"guardianFirstName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"presentAddressLine4":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,255}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"proofOfAddress":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/documentType"
},
"gender":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"",
"fieldType":"dynamic",
"$ref":"#/definitions/simpleType"
},
"modeOfClaim":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"dynamic",
"$ref":"#/definitions/simpleType"
},
"proofOfConsent":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/documentType"
},
"guardianSuffix":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{1,3}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"bloodType":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"",
"fieldType":"dynamic",
"$ref":"#/definitions/simpleType"
},
"introducerFirstName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"guardianLastName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"individualBiometrics":{
"bioAttributes":[
"leftEye",
"rightEye",
"rightIndex",
"rightLittle",
"rightRing",
"rightMiddle",
"leftIndex",
"leftLittle",
"leftRing",
"leftMiddle",
"leftThumb",
"rightThumb",
"face"
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/biometricsType"
},
"presentBarangay":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"residenceStatus":{
"bioAttributes":[
],
"fieldCategory":"kyc",
"format":"none",
"fieldType":"dynamic",
"$ref":"#/definitions/simpleType"
},
"email":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^[A-Za-z0-9_\\-]+(\\.[A-Za-z0-9_]+)*@[A-Za-z0-9_-]+(\\.[A-Za-z0-9_]+)*(\\.[a-zA-Z]{2,})$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"type":"string",
"fieldType":"default"
},
"guardianMiddleName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"evidence",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"parentOrGuardianRID":{
"bioAttributes":[
],
"fieldCategory":"evidence",
"format":"none",
"type":"string",
"fieldType":"default"
},
"permanentZipcode":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"pobCity":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,50}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"addressCopy":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^[YN]$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"type":"string",
"fieldType":"default"
},
"dateOfBirth":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(1869|18[7-9][0-9]|19[0-9][0-9]|20[0-9][0-9])/([0][1-9]|1[0-2])/([0][1-9]|[1-2][0-9]|3[01])$",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"type":"string",
"fieldType":"default"
},
"individualAuthBiometrics":{
"bioAttributes":[
"leftEye",
"rightEye",
"rightIndex",
"rightLittle",
"rightRing",
"rightMiddle",
"leftIndex",
"leftLittle",
"leftRing",
"leftMiddle",
"leftThumb",
"rightThumb",
"face"
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/biometricsType"
},
"proofOfIdentity":{
"bioAttributes":[
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/documentType"
},
"introducerCredentialID":{
"bioAttributes":[
],
"fieldCategory":"evidence",
"format":"none",
"type":"string",
"fieldType":"default"
},
"permanentAddressLine1":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"^(?=.{0,255}$).*",
"arguments":[
],
"type":"regex"
}
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/simpleType"
},
"guardianBiometrics":{
"bioAttributes":[
"leftEye",
"rightEye",
"rightIndex",
"rightLittle",
"rightRing",
"rightMiddle",
"leftIndex",
"leftLittle",
"leftRing",
"leftMiddle",
"leftThumb",
"rightThumb",
"face"
],
"fieldCategory":"pvt",
"format":"none",
"fieldType":"default",
"$ref":"#/definitions/biometricsType"
},
"middleName":{
"bioAttributes":[
],
"validators":[
{
"langCode":null,
"validator":"(?=(?:^\\w|Γ|Γ|ΓΌ|Γ±))([A-Z0-9a-zΓ±Γ -.β_ ΓΓΌ]+)(?<=[^ ])$",
"arguments":[
],
"type":"regex"
}