Ticket Contents
Description
User Story Statement:
As a country representative, I want supervisor details to be available in the reporting data generated by the Registration Processor so that I can generate reports showing supervisors against approved and rejected registration packets.
As-Is:
Currently, when a supervisor approves or rejects a registration packet, the system captures details such as status (Approved/Rejected), comments, and timestamp. However, the supervisor ID is not captured, making it difficult to track which supervisor performed the action for reporting purposes.
To-Be:
The system should capture and persist the supervisor ID along with approval/rejection details during packet processing. This will enable traceability and reporting (supervisor vs approved/rejected packets). Additionally, supervisor validation should be enforced during processing, and packets uploaded via admin and supervisors should be distinguished and tracked separately.
Goals & Mid-Point Milestone:
Goals:
[Goals Achieved By Mid-point Milestone]
Setup/Installation:
This feature will be implemented as part of the Registration Client. Please refer to the developer guide for further details.
Expected Outcome:
- Anonymous profile contains explicit supervisor information.
- Supervisor approval/rejection reports can be generated directly from Elasticsearch/Kibana.
- Existing reporting pipeline remains unchanged.
- Existing dashboards continue to function without modification.
- Legacy anonymous profiles remain valid.
Acceptance Criteria
- The system shall capture the supervisor details associated with a registration packet for reporting purposes.
- The system shall make the supervisor's approval or rejection decision available in the reporting data.
- The system shall make the supervisor's comments available in the reporting data, where provided.
- The reporting data shall enable identification of the supervisor who approved or rejected a registration packet.
- Authorised users shall be able to generate reports showing supervisor-wise approved and rejected registration packets using the existing reporting framework.
- Existing reports and dashboards that do not use supervisor information shall continue to function without any impact.
- Registration packets that do not contain supervisor information shall continue to be processed and reported without affecting existing functionality.
- Historical registration packets created before this enhancement shall remain accessible through existing reports without requiring any data migration.
Alternate Scenarios
| Scenario ID |
Scenario |
Condition |
System Behaviour |
User/System Message |
| AS-01 |
Supervisor approves a packet |
A supervisor successfully approves a registration packet |
Supervisor details, approval decision, and comments (if provided) are made available in the reporting data. |
Packet approved successfully. |
| AS-02 |
Supervisor rejects a packet |
A supervisor rejects a registration packet |
Supervisor details, rejection decision, and comments are made available in the reporting data. |
Packet rejected successfully. |
| AS-03 |
Supervisor does not provide comments |
A supervisor approves or rejects a packet without entering comments |
The packet is processed successfully, and reporting captures the supervisor details and decision. Comments remain empty. |
Packet processed successfully. |
| AS-04 |
Packet without supervisor information |
The packet belongs to a flow where supervisor information is not available |
The packet continues to be processed and included in reporting without supervisor details. |
Packet processed successfully. |
| AS-05 |
Legacy packet |
A packet created before this enhancement is processed or reported |
Existing packet information continues to be available in reports without supervisor-specific information. |
Legacy packet processed successfully. |
Error Scenarios
| Scenario ID |
Scenario |
Condition |
System Behaviour |
User/System Message |
| ES-01 |
Supervisor information unavailable |
Supervisor details cannot be retrieved while generating reporting data |
The system skips capturing supervisor-specific reporting information and records the event for investigation. |
Supervisor information could not be captured for reporting. |
| ES-02 |
Supervisor decision unavailable |
The supervisor's approval or rejection decision is not available |
The system generates the report with available information and flags the missing decision for review. |
Supervisor decision is unavailable for reporting. |
| ES-03 |
Reporting data generation failure |
The system encounters an error while generating the reporting data |
The system logs the failure and retries or marks the record for later processing based on configured behaviour. |
Unable to generate reporting data. Please try again later. |
| ES-04 |
Reporting data persistence failure |
The reporting data cannot be saved successfully |
The system records the failure and prevents incomplete reporting data from being published. |
Failed to save reporting information. |
| ES-05 |
Reporting publication failure |
The reporting data cannot be published to the reporting platform |
The system logs the failure and follows the existing retry mechanism for publishing. |
Reporting information could not be published. |
| ES-06 |
Invalid reporting data |
Mandatory reporting information is inconsistent or invalid |
The system skips publishing the affected reporting record and records the issue for investigation. |
Reporting data validation failed. |
Implementation Details
Overview
This enhancement enriches the existing Anonymous Profile generated by the Registration Processor with dedicated supervisor reporting fields.
Rather than introducing new APIs or database changes, the Registration Processor reads existing supervisor information from packet metadata and registration records and stores them as explicit fields in the anonymous profile JSON.
The existing reporting pipeline (Anonymous Profile → Elasticsearch → Kibana) remains unchanged.
Assumptions
- Supervisor ID is already available in packet metadata (operationsData).
- Supervisor decision and comment are already stored in registration_list.
- Anonymous Profile is generated after packet processing is completed.
- Existing reporting infrastructure continues to publish anonymous profiles.
Key Clarifications
- No new Sync API is introduced.
- No Registration Client changes are required.
- No Admin Services changes are required.
- No database schema changes are required.
- Existing assisted[] field remains unchanged.
- The enhancement only adds explicit reporting fields.
Processing Logic
- Packet processing completes.
- Registration Processor retrieves:
- supervisorId from packet metadata.
- supervisorDecision from registration data.
- supervisorComment from registration data.
- AnonymousProfileDTO is enriched with the three new fields.
- Enhanced anonymous profile is persisted.
- Existing reporting pipeline publishes the profile to Elasticsearch.
- Kibana dashboards can use the new fields for reporting.
Backward Compatibility
- Existing anonymous profiles remain unchanged.
- Existing dashboards using assisted[] continue to work.
- New reporting fields are nullable.
- No migration of historical data is required.
- Existing APIs and integrations remain unaffected.
Design Document:
Supervisor-ID-AnonProfile-Design.md
Mockups/Wireframes
NA
Product Name
MOSIP
Organisation Name
RCTS-IIITH
Domain
Open Source Library
Tech Skills Needed
Java
Mentor(s)
@dhanendra06 @Varaniya
Category
Backend
Ticket Contents
Description
User Story Statement:
As a country representative, I want supervisor details to be available in the reporting data generated by the Registration Processor so that I can generate reports showing supervisors against approved and rejected registration packets.
As-Is:
Currently, when a supervisor approves or rejects a registration packet, the system captures details such as status (Approved/Rejected), comments, and timestamp. However, the supervisor ID is not captured, making it difficult to track which supervisor performed the action for reporting purposes.
To-Be:
The system should capture and persist the supervisor ID along with approval/rejection details during packet processing. This will enable traceability and reporting (supervisor vs approved/rejected packets). Additionally, supervisor validation should be enforced during processing, and packets uploaded via admin and supervisors should be distinguished and tracked separately.
Goals & Mid-Point Milestone:
Goals:
[Goals Achieved By Mid-point Milestone]
Setup/Installation:
This feature will be implemented as part of the Registration Client. Please refer to the developer guide for further details.
Expected Outcome:
Acceptance Criteria
Alternate Scenarios
Error Scenarios
Implementation Details
Overview
This enhancement enriches the existing Anonymous Profile generated by the Registration Processor with dedicated supervisor reporting fields.
Rather than introducing new APIs or database changes, the Registration Processor reads existing supervisor information from packet metadata and registration records and stores them as explicit fields in the anonymous profile JSON.
The existing reporting pipeline (Anonymous Profile → Elasticsearch → Kibana) remains unchanged.
Assumptions
Key Clarifications
Processing Logic
Backward Compatibility
Design Document:
Supervisor-ID-AnonProfile-Design.md
Mockups/Wireframes
NA
Product Name
MOSIP
Organisation Name
RCTS-IIITH
Domain
Open Source Library
Tech Skills Needed
Java
Mentor(s)
@dhanendra06 @Varaniya
Category
Backend