Skip to main content
Last updated: 20 Oct 2021

Access to Licensify for Third Parties

Licensify is a GOV.UK application which is usually supported by third parties.

This document explains how to access the Licensify infrastructure as a third party, to perform various maintenance tasks.

Accessing the logs

Licensify uses an Elasticsearch / Logstash / Kibana system hosted by Logit.io for its logs.

If you haven’t already got access to GDS’ Logit account, you’ll need to follow the instructions in the Reliability Engineering documentation to create an account in Logit.

Accessing the VPN

This is a prerequisite for accessing Jenkins (which is used for deployments), and for SSH-ing onto instances.

Follow the VPN guidance for non-GDS devices (“BYOD”) to set up the VPN. You will need to sign into your @digital.cabinet-office.gov.uk Google account to access this document.

Accessing MongoDB

Licensify uses a MongoDB cluster hosted by AWS (DocumentDB). The database hosts in use by a particular Licensify instance can be found in /etc/licensing/gds-licensing-config.properties on the licensing_backend machines, in the mongo.database.* keys.

$ grep mongo.database /etc/licensing/gds-licensing-config.properties
# …
mongo.database.hosts=licensify-documentdb-0.abcd1234wxyz.eu-west-1.docdb.amazonaws.com,licensify-documentdb-1.abcd1234wxyz.eu-west-1.docdb.amazonaws.com,licensify-documentdb-2.abcd1234wxyz.eu-west-1.docdb.amazonaws.com
mongo.database.reference.name=licensify-refdata
# …
mongo.database.auth.username=master
mongo.database.auth.password=REDACTED
# …
$ mongo licensify-documentdb-0.abcd1234wxyz.eu-west-1.docdb.amazonaws.com/licensify-refdata -u master
MongoDB shell version v3.6.14
Enter password: REDACTED

…

Deploying code with Jenkins

Licensify is built and deployed using Jenkins.

The process for building a new release and promoting it through the three environments is as follows:

  1. When a PR/branch is merged into master, this starts a new build of master on the CI Jenkins. This produces the necessary artefacts to deploy Licensify. Each build is given a build number.
  2. The new master build will be automatically be deployed to integration using the integration Jenkins job
  3. To deploy to staging, you must manually trigger the deploy_app Jenkins job 3 times, once for each of the Licensify components. These can be found through the Release app (licensify, licensify-admin, licensify-feed)
  4. Follow the same procedure as for staging to deploy to production using the production links in the Release app

Accessing machines using SSH

Follow the instructions for connecting to a machine via SSH. The machine classes you will need are licensing_frontend and licensing_backend. You will need to be on the VPN.

The files most relevant to the Licensify applications can be found in:

  • Application: /data/vhost/licensify
  • Logs: /var/log/licensify
  • Config: /etc/licensify

Accessing the source code

The source code is hosted on GitHub at alphagov/licensify.