DVLA Engineering

Welcome to the Driver and Vehicle Licencing engineering site which contains technical posts and information about our open-source projects.

How AWS Step Functions helped streamline the DVLA's application process

Introduction Harnessing the power of AWS Step Functions, the Driver and Vehicle Licensing Agency (DVLA) embarks on a transformative journey to streamline its operations. With over 50 million registered drivers and 40 million vehicles, the DVLA navigates various applications, from driving licences to vehicle registrations. This blog unveils the approach adopted by DVLA to transform its application process, ensuring flexibility and customisation for each application type. Background As the custodian of millions of driver and vehicle records, DVLA grapples with the complexity of managing diverse applications....

March 18, 2024 · 6 min · 1243 words · Gareth Griffiths

TiL: Save CPU cycles by logging blocks

We log a lot in our functional tests. In fact, we log so much we wrote our own logger called Herodotus that extends the default Ruby logger so we can have a correlation id added to the log to help keep track of which scenario a given log is from1. But with that much logging, we want to keep things lightweight. That’s where we want to make sure our logs aren’t doing more work than we expect....

December 15, 2023 · 3 min · 587 words · George Bell

Spring Security private key jwt with AWS KMS

As part of our proof of concepts in to the adoption of One Login we setup a Spring Security OAuth 2.0 demo that tested out the integration guide provided by Government Digital Service (GDS). Spring security has long had great OAuth2.0 support from both the server and client elements. Over the last year spring security added support for the private_key_jwt client authentication method as part of the authorization code grant flow....

December 5, 2023 · 4 min · 812 words · Greg Simons

Artefacts in tests and managing them with Atlas

We’ve recently publicly released a Gem called dvla-atlas1 and today we are going to take you through a bit of history surrounding testing at the DVLA that led to use developing Atlas, along with a dive into some of the code that makes it tick. Atlas is designed to make the managing of properties in functional tests easier while also ensuring that each test is run in isolation and without any cross-pollination of test data....

November 14, 2023 · 8 min · 1658 words · Nigel Brookes-Thomas & George Bell

Linux timeout command

When a drone build is configured to both deploy and then delete AWS services, it is vital the AWS clean up step runs to maintain the AWS stacks within their limit. To ensure these steps run before the build times out, you can wrap your cucumber command in the linux timeout command within the drone pipeline example: commands: - cd functional-tests || exit 1 - timeout -k 10 10m bundle exec rake test Linux Timeout The timeout command is a command-line utility that will run the specified command for a given period of time, once that period of time is reached if the given command is still running it will be terminated....

October 14, 2023 · 2 min · 331 words · Paul Lewis