note

Note: These configurations can be used when the identities are created through registration client.

Note: These configurations can be used when the identities are created through registration client.

IDENTITY SCHEMA

Add the following fields in the identity schema.

1. In the id-schema definitions add the type hash.

   "hashType": {
			"additionalProperties": false,
			"type": "object",
			"properties": {
				"hash": {
					"type": "string"
				},
				"salt": {
					"type": "string"
				}
			}
		}
  1. For the field phone – add the attribute “handle”: true, and add the fields phoneVerified, updatedAt and selectedHandles. Reference given below.

    "phone": {
    					"bioAttributes": [],
    					"validators": [
    						{
    							"validator": "^[+]*([0-9]{1})([0-9]{9})$",
    							"arguments": [],
    							"type": "regex"
    						}
    					],
    					"fieldCategory": "pvt",
    					"format": "none",
    					"type": "string",
    					"fieldType": "default",
    					"handle": true
    				},
    "selectedHandles": {
    					"fieldCategory": "none",
    					"format": "none",
    					"type": "string",
    					"fieldType": "default"
    				}
  2. Publish the identity schema and restart ----> Kernel - master data service, sync service
    Id repo services and
    Packet manager.

  3. Find the sample identity schema with the above changes attached.


    DYNAMIC FIELD

    Create a dynamic field called phone for selectedHandles → In the admin portal → Master data → Create New Dynamic Field. Reference Given below.

    image-20240604-130655.png


UISPEC

  1. In the new process.json → Add the field selectedHandles in UISPEC [for which the value phone should be populated from the dynamic field] and publish. Reference below.

     {
    					"id": "selectedHandles",
    					"inputRequired": true,
    					"type": "string",
    					"minimum": 0,
    					"maximum": 0,
    					"description": "phone",
    					"label": {
    						"ara": "Select the button to add phone number as handle",
    						"fra": "Select the button to add phone number as handle",
    						"eng": "Select the button to add phone number as handle"
    					},
    					"controlType": "button",
    					"fieldType": "default",
    					"format": "none",
    					"fieldCategory": "pvt",
    					"alignmentGroup": "contact",
    					"visible": null,
    					"contactType": "email",
    					"group": "selectedHandles",
    					"groupLabel": null,
    					"changeAction": null,
    					"transliterate": false,
    					"templateName": null,
    					"fieldLayout": null,
    					"locationHierarchy": null,
    					"conditionalBioAttributes": null,
    					"required": true,
    					"bioAttributes": null,
    					"requiredOn": [],
    					"subType": "selectedHandles"
    				}
  2. Sync the registration client , if the changes are not reflected restart the master data and sync data services. Refer the picture.

    image-20240604-133807.png

    ID-REPOSITORY-DEFAULT PROPERTIES

Add the attribute for postfix as per id-schema in the property below.

mosip.identity.fieldid.handle-postfix.mapping={'phone':'@phone'}

ID-AUTHENTICATION-DEFAULT PROPERTIES

Add the proper regex for phone number validation and include HANDLE for the allowed idtypes in the properties below.

mosip.ida.handle-types.regex={'@phone' : '^[0-9]{10}@phone$' }
request.idtypes.allowed=UIN,VID,HANDLE

IDENTITY-MAPPING.JSON

Add the attributes as given below in the identity mapping json.
note: add the phone number attribute as per the id-schema.

"phone_number_verified": {
         "value": "phoneVerified"
        },
"updated_at": {
         "value": "updatedAt"
        },
"individual_id": {
		"value": "individual_id"
		},
"phone_number": {
		"value": "phone"
		},
"phone": {
		"value": "phone"
		},
"phoneNumber": {
		"value": "phone"
		},
"selectedHandles" : {
		"value" : "selectedHandles"
		}

DOCKER IMAGES

Deploy the mec image for Idrepo identity service 1.2.1.0

note

After all these changes, Restart master, sync, idrepo, ida and esignet pods and process a packet.
ensure that the record for handle got inserted in mosip_idrepo --> handle table.

After all these changes, Restart master, sync, idrepo, ida and esignet pods and process a packet.
ensure that the record for handle got inserted in mosip_idrepo --> handle table.

VERIFICATION

Test the changes by sign in with esignet --> login with otp → enter the phone number along with the postfix @phone. for example : 8877665544@phone → get the otp → Verify. Refer the picture below.

image-20240604-142805.png

----------------------End of the Document--------------------------