The code for the storage service isn't contained in a single repo; it's spread across multiple repos. This document lists the key repositories for the storage service, and how to find the code within them.
-
wellcomecollection/storage-service
This contains:
- Code for our Scala applications. For a guide to the projects within the repo, see the project guide.
- Documentation for the storage service, in the
docs
directory. - Infrastructure definitions in Terraform, in the
terraform
directory. This includes both the infrastructure for the Wellcome instance of the storage service and modules that can be used to run other instances of the storage service.
-
wellcomecollection/scala-libs – some Scala code shared with other Wellcome services.
This repo has a lot of the code that interacts directly with AWS services (S3, DynamoDB, SQS, etc.), and the
storage-service
uses more abstract traits -- so implementation details of those services don't leak into the applications.Any Scala in the
weco
namespace but not in theweco.storage_service
namespace is defined in scala-libs. -
wellcomecollection-terraform-* – shared Terraform modules. These give us a consistent approach to deploying resources across all of our services (e.g. ECS tasks, SNS topics, SQS queues).