feat(frontend): add inactivity-based session timeout (AR-6)

Summary

  • Stop unconditional 4-minute background refresh that kept Keycloak sessions alive indefinitely
  • Refresh session only on user activity (debounced to 2 min)
  • Sign out after configurable idle period (default 55 min, aligning with Keycloak 60-min ssoSessionIdleTimeout)

Closes #1053 (closed)

TR-03187

Implements AR-6 (Session timeout on inactivity)

Test plan

  • Verify active users are not logged out unexpectedly
  • Verify idle session expires after configured timeout
  • Verify background token refresh does not keep idle session alive
  • Verify configurable timeout via NEXT_PUBLIC_SESSION_IDLE_TIMEOUT_SECONDS env var

Merge request reports

Loading
Loading