Skip to content

Card Management System

This page gives an overview of the Card Management System, describing its current status, where and how it's developed and deployed, and who is responsible for maintaining it.

Danger

This service as a whole is currently pre-alpha and is not usable in production.

Service Description

The Card Management System is a replacement for the existing legacy card database. The Card Management System will allow the management of university cards - from the creation and printing of university cards, through to the export of data for use by downstream systems.

Service Status

The Card Management System as a whole is currently pre-alpha, although the Card API has moved to alpha for testing with a limited number of users.

The Card Management System is under active development, details of the project can be found within the project page on the UIS site.

Contact

Technical queries and support should be directed to devops@uis.cam.ac.uk and will be picked up by a member of the team working on the service. To ensure that you receive a response, always direct requests to devops@uis.cam.ac.uk rather than reaching out to team members directly.

Queries about the project or functionality of the Card Management System should be raised as GitLab issues in the feedback repository.

Technical questions or problems with the Card API should be raised as GitLab issues in the Card API repository.

Environments

The only component of the Card Management System currently deployed is the Card API, which is deployed behind the API Gateway:

Name URL Internal GCP url
Production https://api.apps.cam.ac.uk/card/ https://card.prod.identity.gcp.uis.cam.ac.uk/
Staging https://api.apps.cam.ac.uk/card-test/ https://card.test.identity.gcp.uis.cam.ac.uk/
Development https://api.apps.cam.ac.uk/card-dev/ https://card.devel.identity.gcp.uis.cam.ac.uk/

API documentation for the production environment can be found within the API Gateway's developer portal.

Currently the Production and Staging instances of the Card API serve data from the CARD Oracle database of the legacy card database. The Development instance serves a limited set of data from the CARD_T database.

Data is synced from the Oracle databases according to the schedules defined within the deployment project.

Source code

The source code for the Card Management System is spread over the following repositories:

Repository Description
Card API The source code for the Card API - the core API which will serve the frontend and other external services.
Card Client The source code for the client tool which allows data to be exported from the Card API.
Sync Tool The source code for the tool which allows data to be synced from the card db Oracle databases to the Card API.
Infrastructure Deployment The Terraform infrastructure code for deploying the Card API and related services to GCP.

Technologies used

The following gives an overview of the technologies the Card Management System is built on.

Category Language Primary framework
Card API Python Django
Card Client Python Requests
Sync Tool Python Oracle_cx

Operational documentation

The following gives an overview of how the Card Management System is deployed and maintained.

How and where the Card Management System is deployed

The infrastructure for the Card Management System is deployed through the Terraform defined within the Deploy Identity project. The Card API itself is deployed via GitLab pipelines, and will be automatically deployed to staging on the success of each master pipeline (see pipeline configuration here), with production deployment a manual step in the pipeline once staging has succeeded.

Deploying a new release

Deploying any infrastructure changes can be completed using Logan as described within the Deploy Identity project's readme.

Deploying a new release of the Card API to staging and then production can be completed by running the master pipeline within the Card API project. Changes must be tested in staging before deploying to production.

Monitoring

The Card API makes use of our GCP site monitoring module for monitoring of the production environment. This will send an alert to devops-alarms@uis.cam.ac.uk if the Card API fails to respond to uptime checks.

Debugging

Information about how to run and debug the Card API locally are included within the Card API's readme.

Additional documentation

Information about the overall architecture of the new Card Management System can be found within the wiki page for the identity project.

Service Management and tech lead

The service owner for the Card Management System is currently vacant.

The service manager for the Card Management System is currently vacant.

The tech lead for the Card Management System is Monty Dawson.

The following engineers have operational experience with the Card Management System and are able to respond to support requests or incidents: