Skip to content

Merge release-3.8.2 to main - #450

Open
vishwab1 wants to merge 49 commits into
mainfrom
release-3.8.2
Open

Merge release-3.8.2 to main#450
vishwab1 wants to merge 49 commits into
mainfrom
release-3.8.2

Conversation

@vishwab1

Copy link
Copy Markdown
Member

📋 Description

JIRA ID:

Please provide a summary of the change and the motivation behind it. Include relevant context and details.


✅ Type of Change

  • 🐞 Bug fix (non-breaking change which resolves an issue)
  • New feature (non-breaking change which adds functionality)
  • 🔥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • 🛠 Refactor (change that is neither a fix nor a new feature)
  • ⚙️ Config change (configuration file or build script updates)
  • 📚 Documentation (updates to docs or readme)
  • 🧪 Tests (adding new or updating existing tests)
  • 🎨 UI/UX (changes that affect the user interface)
  • 🚀 Performance (improves performance)
  • 🧹 Chore (miscellaneous changes that don't modify src or test files)

ℹ️ Additional Information

Please describe how the changes were tested, and include any relevant screenshots, logs, or other information that provides additional context.

SauravBizbRolly and others added 30 commits May 6, 2026 12:18
add bengali language translation on dynamic forms
* fix: aam-2313 phone number leading with zero - removed zero

* fix: allow concurrent sessions for admin, superadmin, and supervisor roles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: added admin and superadmin for the condition

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…ession logout

redisTemplate has Jackson2JsonRedisSerializer<User> as value serializer, so
reading the plain-string jti: value caused a deserialization failure (statusCode 5000).
jti: keys are written via stringRedisTemplate at login, so reads and deletes must
also use stringRedisTemplate — restoring the behaviour from commit 80fa0e5 that
was accidentally reverted in #423.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix role name from 'admin' to 'provideradmin' to match actual DB value
- Add concurrent session exemption to superUserAuthenticate so SuperAdmin
  can log in from multiple tabs without being blocked

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: use stringRedisTemplate for jti: key read/delete in concurrent session
…ssword

Feature/handel multiple attempt password
Redis keys were stored on MMU login with 30-day TTL but never deleted
on logout. Added cleanup in userLogout() so stale camp config does not
persist after the MMU session ends.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Lets a device on the same network discover the API's LAN IP and port
without needing it typed in manually, and bumps version to 3.8.2.
fix issue of  feature multiple login attempt
….8.2

# Conflicts:
#	src/main/java/com/iemr/common/service/users/IEMRAdminUserService.java
#	src/main/java/com/iemr/common/service/users/IEMRAdminUserServiceImpl.java
Merge release-3.8.1, main ti release-3.8.2
Saurav's PR #431 added a "Remaining attempts: N" message on failed
login to warn users before account lockout. Port this into the
refactored handleFailedLoginAttempt helper so both userAuthenticate
and superUserAuthenticate keep the behavior after merging
release-3.8.1's account-lock refactor into release-3.8.2.
The merge of release-3.8.1's account-lock refactor into release-3.8.2
replaced Saurav Mishra's inline multiple-login-attempt logic
(PR #426/#431/#432) with the refactored handlePasswordValidationAndLocking
helper. The refactor kept the "Remaining attempts" warning but dropped
the final lockout message text, falling back to the unrelated
generateLockoutErrorMessage used for already-locked accounts.

Restore the exact lockout message from PR #432 so the refactored
helper preserves both branches' intended behavior.
Co-authored-by: Sneha <sneha@ADMINs-MacBook-Pro.local>
vishwab1 and others added 19 commits July 22, 2026 17:57
* fix(health): stop reporting MySQL as DOWN when SELECT 1 succeeds

checkDatabaseConnectivity() was deriving the status field from the
background diagnostic severity (pool usage, long transactions, deadlocks)
even after the live SELECT 1 connectivity check succeeded - so a CRITICAL
finding from the background scan (e.g. connection pool >95% full) caused
/common-api/health to report mysql.status=DOWN despite the database being
fully reachable and serving real queries (confirmed: login worked fine
while health reported DOWN).

status now reflects connectivity only (UP if SELECT 1 succeeds, DOWN only
on an actual connection failure); severity continues to surface the
background diagnostic findings independently, so capacity/performance
warnings are still visible without being misreported as an outage.

Removed resolveDatabaseStatus() and the now-unused STATUS_DEGRADED
constant, both made dead by this change.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(beneficiary): enhance GPS data handling in beneficiary demographics and address flows

* Update `gpsTimestamp` in `BeneficiaryDemographicsModel` and `Address` from `Timestamp` to `Long` to support epoch-millisecond values received from clients.
* Add missing GPS-related fields (`latitude`, `longitude`, `digipin`, `isGpsUnavailable`, and `gpsUnavailableReason`) to the `Address` DTO for complete GPS data transfer.
* Extend mapper decorators (`BenCompleteDetailMapperDecorator`, `CommonIdentityMapperDecorator`, and `IdentityBenEditMapperDecorator`) to propagate GPS information across beneficiary and identity workflows.

* fix: add missing $ to resolve GEN_BENEFICIARY_IDS_API_URL in docker properties

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Sehjot Singh Pannu <sehjot.singh@unthinkable.co>
…not standard AMRIT masters (#444)

Stop TB workers are mapped to Nikshay's own isolated location hierarchy
(m_nikshay_district/tu/village), a separate ID space from AMRIT's standard
masters (m_district/m_districtblock/m_DistrictBranchMapping). The beneficiary
address mapper ignored the districtName/districtBranchName strings sent by
mobile and re-derived them by looking the numeric ID up in the standard
masters instead, so every Stop TB registration got stamped with whatever
unrelated place happened to share that ID (e.g. district 1 -> "Nicobars"
instead of "Alluri Sitharama Raju").

Add Nikshay-specific lookup entities/repos and a NikshayAddressResolver
that gates on providerServiceMapID -> ServiceName == "Stop TB". Only Stop
TB beneficiaries take the Nikshay resolution path; every other service
line's address mapping is untouched. Hibernate ddl-auto=none means tenants
without the Nikshay tables are unaffected at both startup and runtime,
since the new repositories are never queried unless isStopTB is true.

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
FLW-API/TM-API/Identity-API no longer read vanID from Redis — they now read
stoptb.van.id from properties instead. This delete-on-logout was the same
global, unscoped key deletion that could wipe camp config for every active
session on any user's logout — now dead code with nothing left reading
the key it was clearing.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
chore(stoptb): remove camp:vanID/parkingPlaceID Redis delete on logout
@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 43f21300-7b0e-4c86-b0db-324064351198


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
5.8% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants