Skip to content

[DMP 2026]: Track Supervisor ID in Registration Packet Processing #2322

Description

@Varaniya201

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:

  • Expose supervisor ID as a dedicated reporting field.
  • Capture supervisor approval/rejection decision in the anonymous profile.
  • Capture supervisor comments in the anonymous profile.
  • Enable supervisor-based reporting using the existing reporting framework.
  • Maintain complete backward compatibility with existing reports and data.

[Goals Achieved By Mid-point Milestone]

  • AnonymousProfileDTO updated with new supervisor fields.
  • AnonymousProfileService enhanced to populate supervisor reporting fields.
  • WorkflowInternalActionVerticle retrieves supervisor decision and comment from existing registration data.
  • Enhanced anonymous profile successfully persisted.

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

DMP 2026created for community contribution through DMP program

Fields

Priority

None yet

Start Date

None yet

End Date

None yet

Complexity

None yet

Original Estimate

None yet

Time Tracking

None yet

Resolved By

None yet

Story Points

None yet

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions