Enabled highly secured, extensible, and scalable new Auth platform using OPP AuthN.
Introduction
Enabled highly secured, extensible, and scalable new Auth platform using OPP AuthN.
About UKG
Ultimate Kronos Group (UKG) is an American multinational technology company with dual headquarters in Lowell, Massachusetts, and Weston, Florida. It provides workforce management and human resource management services. As a leading global provider of HCM, payroll, HR service delivery, and workforce management solutions, UKG’s award-winning Pro, Dimensions, and Ready solutions help tens of thousands of organisations across geographies and in every industry drive better business outcomes, improve HR effectiveness, streamline the payroll process, and help make work a better and more connected experience for everyone.
Impact
- Enabled highly secured, extensible, and scalable new Auth platform using OPP AuthN.
- New registration is now possible with the implementation V2 endpoint instead of the existing old endpoint.
- Enabled a fallback mechanism, in case of any issues with a platform to register/update, can use the second platform to register or update.
Challenges
The aim is to add the ability to send push notification messages from the NaaS to the end user’s device that has the UKG Pro mobile app installed. In order to achieve the goal, the team has faced numerous challenges which are as follows:
- UKG has millions of users who were registered into the service using the existing V1 endpoint. But after the implementation of the new and improved V2 APIs, it was required to migrate millions of records with the new logic.
- The existing services didn’t have any fallback mechanism in case something went wrong.
- The existing services were subordinate to external services which made them susceptible to failure in case the external service went down.
- Testing on iOS devices is always an issue as we need to have a physical device present with us to test the application. We were required to test the application on iOS devices as a good number of UKG users use iOS devices.
The solution
- Our team started with analysing the data and implemented the Command Line Interface (CLI) to work on this.
- The team divided the task into 4 small Command-line interfaces.
- Export the data from the Database.
- Call DRS (Registration service) and re-register the devices.
- Save the new identity( registration ID) into the database.
- Check the channel status of the devices.
- Connected these steps by saving the output of each step into a JSON File and using them for the next step. As there were millions of devices on which the team had first implemented the service on dummy data. Then start migration on existing records and keep a track of time by each process taken to migrate.
- Dividing the task into four-step increases the accuracy to 85-90% and saving the data into JSON files is helpful to keep a record of the failed devices and the reason for failure. This way we can identify the error easily, resolve it and re-run it to migrate.
- Provided an alternative solution during a service request failure – As there was no fallback mechanism in case of any issues, we created it by implementing the V1/V2 flag where if V2 services fail due to any reason we can fall back to V1 services so the end-user does not face any issues.
- Started separating the services into different modules as per their role
- PUSH Service: Push service is responsible for taking the registration request from the gateway and delivery request from the community Broadcast. It then authenticates the data and sends the request to the registration service and notification service accordingly.
- Registration Service: The registration service accepts the request from the push service and generates a unique registration ID.
- Notification Service: The notification service is responsible for sending the notification to the end-users. It accepts the delivery request from the push service and communicates with the AWS SNS via push dispatcher.
- Used sauce lab cloud-based testing platform to test the application on iOS devices.
- Using sauce Lab, we were able to do end-to-end testing for iOS devices without having a physical device.
- Made easier to install multiple versions of the application by using multiple iOS devices.
- We were also able to test the application behaviour on multiple android devices as well.
Results
Existing user successfully migrated via V2 API
Migrated millions of records via the newly implemented API and updated the registration ID into the database.
Successfully implemented V2 API
Now for new registration can use the new V2 endpoint which uses the new services like Device Registration and Delivery Services.
Easy to maintain and debug
All the services are now independent in nature. This allows the developers to maintain the project in a better way so that the faulty code is easily identified and debugged efficiently.
Able to test on both platforms (iOS & Android)
Deliver the upgraded application with end-to-end testing over both platforms (iOS & Android). Tested the complete behavior of the application which users will experience from their end.
“The team is dedicated, hard-working, and knowledgeable. Sincerely appreciate that the team has delivered their task on time. They quickly understand our project and its technical challenges. Initially, there was a communication gap, but gradually the team worked on it and performed well.”
Gunther Taborga – Principal Software Engineer, UKG
Read more case studies
Enhancing both courier and customer experiences for Evri
NashTech and Evri work closely together on the application and systems for the couriers to ensure that they are satisfied and well-trained.
Unified and NashTech: driving digital media excellence
Explore how NashTech helped Unified to overcome challenges in the startup phase by scaling technology resources as needed.
From rising above adversity to riding the wave of digital transformation in the education sector
Explore how NashTech help Trinity College London ride the wave of digital transformation in the education sector
Let's talk about your project
- Topics: