V1.3.0-DSL

Release Name: DSL Orchestrator & Packet Creator

Release Version: 1.3.0

Release Type: Minor Release

Release Date: Coming Soon

Overview

We are pleased to announce the release of DSL Orchestrator & Packet Creator v1.3.0, a release focused on Java 21 compatibility, along with stability, performance, and scalability improvements across the MOSIP DSL testing pipeline.

This release is primarily driven by the MOSIP platform upgrade to Java 21, ensuring full compatibility of DSL components with the latest Java runtime and associated dependencies.

In addition to Java 21 support, this release addresses long-standing thread-safety issues, enabling reliable multi-threaded execution. The system now supports execution with up to 8 parallel threads, resulting in a significant reduction in overall execution time.

With these improvements, DSL executions consistently achieve zero failures, excluding scenarios marked as known issues, leading to more predictable and trustworthy test results.

Release v1.3.0 strengthens the DSL framework by focusing on execution stability and performance under parallel load. These enhancements make the DSL pipeline more reliable for large-scale and continuous executions, while ensuring clean, actionable reports for teams.

Major Highlights / Key Features

As part of this release, the following key improvements have been delivered:

  • Added full compatibility with Java 21, aligning DSL Orchestrator and Packet Creator with the latest MOSIP platform runtime

  • Thread-safety issues fixed across DSL Orchestrator and Packet Creator components

  • Stable execution with up to 8 parallel threads, improving scalability

  • Reduced overall execution time due to optimized concurrency handling

  • Consistent zero-failure DSL reports, excluding known and ignored issues

  • Improved reliability and execution predictability in multi-threaded runs

  • Cleaner and more robust execution flow, eliminating intermittent thread-related failures

New Scenarios Added

  1. Resident walks into a registration centre with a child and completes the process — both adult and child packets are uploaded simultaneously, but the introducer (adult) packet gets rejected.

  2. Resident completes registration, receives a UIN and handle, later updates name and handle, and performs demographic authentication using both UIN and handle.

  3. Adult resident completes registration, gets a UIN card, and later CRVS external packet death flow is performed without a token.

  4. Infant external packet creation and processing with introducerInfoToken; after getting UIN, CRVS external packet death flow is performed.

  5. Infant walk-in registration with parent RID details; after receiving UIN, CRVS external packet death flow is executed.

Repositories Released

Repository

Version

mosip-automation-tests

Features

Refer below table to know more enhancements included in this release in addition to the 'New Scenarios Added' key items listed above:

Feature
Description
JIRA

Performance Optimization & DSL Stability

Optimized the DSL execution framework by increasing thread utilization and enhancing stability under parallel loads. These improvements significantly reduce overall execution time while ensuring consistent and reliable test runs.

System Profiling & Optimization

Performed code profiling using JProfiler to identify performance bottlenecks in the Packet Utility. A significant number of HTTP calls were found to be triggered during parallel execution, primarily from the health check step in the orchestrator. Optimizations were implemented to reduce redundant ping health calls during concurrent execution, resulting in improved performance and reduced overhead.

Repeat Scenario

Adds a configuration option to execute a single DSL scenario multiple times for reliability and stability testing.

Thread Safety Fix

Resolves thread safety issues in DSL that were causing intermediate data corruption during parallel or repeated scenario execution.

Configurable Data Storage Path

Enables configuration of the data storage path for Packet Creator, removing dependency on the /tmp directory. Data is now stored within the defined packet-generation folder to prevent accidental deletions. Additionally, the system automatically cleans up temporary or unwanted data after each run to optimize storage management.

Configurable Wait And Retry

Introduced a configurable wait time and implemented a retry loop to handle scenarios where the UIN is not immediately available in the database, ensuring more reliable and consistent execution.

Scenario Description Cleanup

Cleaned up and standardized DSL scenario descriptions in the scenario sheet by adding clear, detailed, and meaningful descriptions for every step to improve readability and maintainability.

Bug Fixes

JIRA
Description

Fixed an issue where thread count listener updates were not being considered during orchestrator execution.

General automation issues were resolved to improve test stability and reliability.

Resolves thread safety issues in DSL that were causing intermediate data corruption during parallel or repeated scenario execution.

Fixed signature issues where the signature value was coming as null.

Known Issues

JIRA
Description

Resident completed pre-registration with support documents, finished walk-in registration, received UIN, but **bio eSignet authentication using face fails with error IDA-MLC-009**.

In DSL-Scenario-108, the child packet is getting stuck or rejected before the parent packet verification is completed, whereas it should be rejected only if the parent packet is rejected.

In Scenario_89, after exceeding the maximum allowed biometric correction attempts due to low image quality, the original DSL packet is not rejected and remains stuck in “Paused & Request Additional Info” instead of transitioning to REJECTED.

In DSL Scenario_80, when a consumed PRID is reused for a second registration, the packet is incorrectly processed and assigned a new RID instead of being rejected, violating the rule that a used PRID cannot be reused.

In Scenario_11, despite setting the manual verification decision to REJECTED for a second registration with biometric exception, the packet is incorrectly PROCESSED and a new UIN is generated instead of rejecting the packet.

In DSL Scenario_76, when a resident packet is uploaded without operator biometrics but with supervisor biometrics, the packet is incorrectly marked as REGISTERED instead of the expected PROCESSED status.

In Scenario_205, a packet generated using an inactive user is incorrectly processed successfully, whereas it should be rejected and marked as FAILED.

System allows updating biometrics of an existing UIN using unregistered resident’s biometrics, whereas the update should fail ABIS matching and be redirected to Manual Adjudication due to no biometric match.

In Scenario_195, updating resident details using VID fails in DSL, and the UIN is not processed, with IDRepo update throwing IDR-IDC-007 (No records found for RID) during draft update.

In Scenario_158, a packet generated and uploaded from an inactive machine is incorrectly reprocessed instead of failing at the Validate Packet stage, whereas it should be rejected with an inactive machine error.

In DSL Scenarios 144 and 145, packet validation fails in both cases regardless of the machine unmapping order, whereas CMD should pass when the packet is created before unmapping and fail only when the packet is created after unmapping, indicating incorrect packet validation logic.

The rid/check-status API returns “RID not found” for a CRVS packet even though the RID exists in the database, indicating a possible issue in RID lookup, indexing, or service-layer validation.

In DSL Scenario_188, when a packet is created with both thumbs marked as exception, biometric authentication fails for the little finger, whereas auth should pass since only thumbs were excluded.


Documentation

Last updated

Was this helpful?