Implement lightweight trial registration identity verification page

What does this MR do and why?

Implement the lightweight_trial_registration_redesign experiment for the identity verification page. On this page, the experiment only affects UI for the candidate group.

Related to #538417, design: https://www.figma.com/design/NUoCmyVK4W7zi8yxxwCUih/Registration-Experiment?node-id=150-7994&t=Uv4Qwj0p430X61mt-0

References

Screenshots or screen recordings

Verification steps
1 Step Screenshot_2025-06-09_at_3.11.17_PM Screenshot_2025-06-09_at_3.11.38_PM Screenshot_2025-06-09_at_3.12.06_PM
2 Steps Screenshot_2025-06-09_at_4.25.49_PM Screenshot_2025-06-09_at_3.15.43_PM Screenshot_2025-06-09_at_3.16.49_PM
3 Steps Screenshot_2025-06-09_at_4.26.19_PM Screenshot_2025-06-09_at_4.08.26_PM Screenshot_2025-06-12_at_9.49.44_AM
Screen recording Untitled

How to set up and validate locally

  1. Setup to Simulate SaaS and restart GDK
    • Make sure Admin > Settings > General > Sign Up Restrictions match the below (no admin approval, but hard email confirmation) image
  2. If logged in, log out
  3. Enable the experiment feature flag in the console: Feature.enable(:lightweight_trial_registration_redesign)
  4. Configure Arkose and TeleSign for verification. Both of their credentials are in 1Password
::Gitlab::CurrentSettings.update(arkose_labs_public_api_key: '****', arkose_labs_private_api_key: '****', arkose_labs_namespace: 'client')
::Gitlab::CurrentSettings.update(telesign_customer_xid: CUSTOMER_ID, telesign_api_key: API_KEY)
  1. Navigate to /users/sign_up. (when the experiment is fully implemented, this should be /-/trial_registrations/new/. At this point, comment out line 21 in ee/app/controllers/users/registrations_identity_verification_controller.rb)
  2. Fill in the trial registration form and submit
  3. You should see the experiment candidate experience
  4. To see identity verification with multiple steps, after registration form submission, we need to update new user's risk band to 'Medium' or 'High' by doing:
> u = User.last
> risk_band = u.custom_attributes.by_key('arkose_risk_band').first
> risk_band.update(value: 'Medium') # or 'High'
  1. Alternatively, you can observe the process by running the feature specs with WEBDRIVER_HEADLESS=0 bin/rspec ee/spec/features/registrations/identity_verification_spec.rb:409

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Roy Liu

Merge request reports

Loading