[DMP 2026] Implement Biometric Quality Through SDK During Biometric Capture - #834
Mohit14036 wants to merge 25 commits into
Conversation
Signed-off-by: vignesh1131321 <vignesh.pasupulety369@gmail.com>
Signed-off-by: vignesh1131321 <vignesh.pasupulety369@gmail.com>
Signed-off-by: vignesh1131321 <vignesh.pasupulety369@gmail.com>
Signed-off-by: vignesh1131321 <vignesh.pasupulety369@gmail.com>
Signed-off-by: vignesh1131321 <vignesh.pasupulety369@gmail.com>
- Enforce real blocking/no-fallback semantics per Error Scenarios spec (Invalid SDK Score, SDK Exception, Missing SBI Score, No Quality Source, Quality Below Threshold, Partial Capture, Corrupt Data, Configuration Error, Audit Log Failure) with exact spec error codes/messages - Add real SDK evaluation timeout enforcement via ExecutorService - Add per-evaluator audit trail (safeAudit) that logs a warning instead of breaking evaluation when audit persistence itself fails - Add MAX aggregation strategy; make aggregation strategy genuinely toggleable (explicit config vs. unset = no aggregation) instead of silently defaulting to MEAN - Fix local-config self-healing sync between spring.properties and the GLOBAL_PARAM/LOCAL_PREFERENCES DB tables for quality config keys - Fix three separate score-fallback gates (capture-time threshold check, screen "can continue" validation, and the DTO save gate) to all use the same displayed score (aggregate > SDK > raw SBI) instead of only the raw SBI score, so a passing SDK/aggregate score is no longer silently overridden by a lower raw score - Route quality-check error messages to the operator-facing UI alert - Make Global Config Settings screen fully editable - Add unit test suite covering Alternate Scenarios AS-01..AS-05 and the Error Scenarios table Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
- BIRBuilder now embeds the SDK's self-reported owner/version details (SDK_SCORE_ORGANIZATION, SDK_SCORE_ORGANIZATION_TYPE, SDK_SCORE_SDK_VERSION, SDK_SCORE_API_VERSION) into each BIR's Others map alongside SDK_SCORE, mirroring the Organization already carried in the primary Quality tag's Algorithm. - New SdkInfoProvider resolves the real SDKInfo from the configured SDK (mosip.fingerprint/iris/face.provider), since BioAPIFactory never exposes it, and caches it per modality. - Fixed pass/fail (red/green) highlighting on the biometric capture screen to apply to whichever score actually drives the threshold decision (aggregated > SDK > MDS), coloring both the caption and value together without altering font size, and to show the full caption text instead of truncating it. Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (15)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: ASSERTIVE Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
|
All review comments have been addressed. Please let us know if there are any other issues that need to be resolved. |
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
…atible Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Signed-off-by: Mohit140306 <mohitjagini@gmail.com>
Summary
Introduces a pluggable, multi-source biometric quality evaluation system (SBI + SDK) to replace the previous single-source (SBI-only) quality check, bringing the registration client into full compliance with the Biometric Quality spec's error-handling and scoring rules.
Core orchestrator (
BiometricQualityOrchestrator)IBiometricQualityEvaluator, each producing an independent score.IBiometricScoreAggregator: Mean, Median, Weighted Average, Priority, Formula (SpEL-based, e.g.#scores['SDK'] * 0.6 + #scores['SBI'] * 0.4), and Max.ExecutorService), configurable per evaluator.Spec-compliant error handling
SDK owner metadata in CBEFF
SDK_SCORE_ORGANIZATION,SDK_SCORE_ORGANIZATION_TYPE,SDK_SCORE_SDK_VERSION,SDK_SCORE_API_VERSION) alongsideSDK_SCORE, mirroring the Organization already carried in the primary Quality tag's Algorithm.SdkInfoProviderresolves the realSDKInfofrom whichever SDK is configured (mosip.fingerprint/iris/face.provider), since the existingBioAPIFactory/iBioProviderApinever expose it — resolved once per modality and cached.UI
spring.propertiesand theGLOBAL_PARAM/LOCAL_PREFERENCESDB tables for quality config keys.Config
mosip.registration.quality.*property tree: evaluator selection, per-modality/per-attribute aggregation strategy, per-attribute weights, formula expressions, and per-evaluator timeouts — all with sensible fallback defaults.Test plan
QualityErrorScenariosTest,BiometricQualityOrchestratorTest,MultiVendorOrchestratorTest,FullOrchestratorWithMockSdkTest,SampleSdkIntegrationTest,MockSdkRealIntegrationTest).SDK_SCORE_*fields in the actual CBEFF packet.