Skip to main content

Overview

The VOL service is distributed across three PHP applications built on the Laminas MVC framework:

  • API: The backend service.
  • Selfserve: The public-facing application.
  • Internal: The internal-facing application.

These applications are supported by several shared libraries that live in-tree within this monorepo, alongside a small number of external Composer dependencies.

Shared libraries (in-tree)

Previously published as standalone dvsa/olcs-* packages, these libraries have been consolidated into vol-app. Each keeps its own composer.json (and its own test suite and tooling) and is consumed by the applications via relative path repositories, which Composer symlinks into each app's vendor/olcs/*.

LibraryDescriptionLocation
olcs-loggingLogging utilitieslib/olcs-logging/
olcs-utilsShared utility functionslib/olcs-utils/
olcs-transferData Transfer Objects (DTOs) and routinglib/olcs-transfer/
olcs-commonShared code for frontend applicationslib/olcs-common/
olcs-authAuthentication managementlib/olcs-auth/

olcs-xmltools was also absorbed, but — being API-only — it is fully inlined as an API module at app/api/module/XmlTools/ rather than a path-repository library.

External dependencies

These are still consumed as published Composer packages.

LibraryDescriptionLink
authentication-cognitoPHP adapter for AWS Cognito authenticationGitHub
authentication-ldapPHP adapter for LDAP authenticationGitHub
laminas-config-cloud-parametersReplaces Laminas configuration placeholders with cloud provider valuesGitHub
php-govuk-accountPHP adapter for GOV.UK One LoginGitHub

Dependency tree

The relationships below are unchanged by the consolidation; the olcs-* nodes now resolve to the in-tree lib/ directories rather than external packages.

API

Frontend