Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
bb89dd5
Fixes FileMetadataReaderTest fails locally during British summer by r…
tonytw1 Sep 20, 2025
ced90ef
Revert "Merge pull request #4475 from bbc/t2347-taken-date-ui"
tonytw1 Mar 6, 2026
3bd5081
For simpler test setup CollectionsStore takes specific Dynamo depende…
tonytw1 Mar 29, 2026
68f76f2
CollectionsStore Test uses testcontainers localstack supplied dynamoDB.
tonytw1 Mar 29, 2026
3012c26
Tests for ImagesCollectionsStore.
tonytw1 Mar 8, 2026
4b91308
For simpler test setup DynamoDB base class takes specific Dynamo depe…
tonytw1 Mar 29, 2026
a0392a3
EditsStore tests.
tonytw1 Mar 13, 2026
6bfffe0
For simpler test setup LeaseStore takes specific Dynamo dependencies …
tonytw1 Mar 16, 2026
47406e9
LeaseStore tests
tonytw1 Mar 16, 2026
1e9e802
UsageTable tests for matchUsageGroup, update, markAsRemoved, and dele…
tonytw1 Mar 15, 2026
1af4662
testcontainers-elasticsearch for an easier local setup with Rancher.
tonytw1 Mar 29, 2026
bcd93d8
CropController uses GridClient for it's get source image call to Medi…
tonytw1 Nov 22, 2024
b38e20c
[upstream] Capture print%2F usage ids.
tonytw1 Apr 5, 2026
f092d9b
[containerised] Remove scala-xml version override.
tonytw1 Jan 18, 2026
1965a61
[containerised] Latest sbt 1.11.7
tonytw1 Jan 1, 2026
3bde2c7
[containered] Clean up; CollectionManager private and types.
tonytw1 May 20, 2025
45e0b73
Neuter CloudWatchMetrics; TODO push to config.
tonytw1 May 5, 2024
4d59fe5
Want to disable Kinises client's noisey CloudWatch emissions.
tonytw1 May 5, 2024
c13024a
Switch to EnvironmentVariableCredentialsProvider to defer having to w…
tonytw1 May 5, 2024
1d37681
Play secret from ENV; need to explicitly resolve placeholders.
tonytw1 May 29, 2024
061d558
Initial docker image builds
tonytw1 May 4, 2024
11d1ff1
Fork image loader specific play project.
tonytw1 May 7, 2024
f612ca6
Cropper asks for 'gm' so give it the same Debian packages as image-up…
tonytw1 May 9, 2024
a4bb77b
build.sbt drop Debian package related config which is not needed for …
tonytw1 May 3, 2025
b6dee53
Deprecation: `in` is deprecated; migrate to slash syntax
tonytw1 Dec 31, 2025
d3ef846
Only log to stdout in the containerised world.
tonytw1 May 5, 2024
55e738f
Alter Syndication access check to use URIs not raw host name; allows …
tonytw1 May 8, 2024
b9ede1f
Introduce an interface to document the exposed service uris.
tonytw1 May 8, 2024
6ace250
Everyone using GuardianUrlSchemeServices directly should take Service…
tonytw1 May 8, 2024
55c8f59
Drop GuardianUrlSchemeServices val constructor fields; these allow un…
tonytw1 May 8, 2024
e1b24e0
Add a Service URL implementation which map services to port numbers o…
tonytw1 May 8, 2024
dfd8af2
Drop Guardian services URL scheme.
tonytw1 Jun 3, 2024
44dc8c6
Move all public facing service urls to sub paths under single hostname.
tonytw1 May 10, 2024
da28938
Disable CSRF with is no longer bypassed on a single origin CORS check.
tonytw1 May 14, 2024
1280db6
[containerised] Download crop asset links click through correctly whe…
tonytw1 Feb 11, 2026
6b732d5
Delete InnerServiceStatusCheckController
tonytw1 Mar 29, 2026
146e8c0
Simplify reaper paused control to set by config only.
tonytw1 Jun 25, 2024
d34b4cf
[containered] End point to set a digital media usage.
tonytw1 Feb 21, 2026
5fa8b36
Drop Guardian specific stream ingestion of usages.
tonytw1 Mar 29, 2026
251387c
[containerised] Digital usage ids are prefixed with digital for consi…
tonytw1 Apr 5, 2026
5a90bcd
Unused MediaWrapper class and helpers.
tonytw1 Mar 5, 2026
11e5ba6
Drop Guardian Content references.
tonytw1 Mar 5, 2026
e9c2867
Unused ResetException.
tonytw1 Mar 5, 2026
2d26f90
Use imgproxy rather than nginx imgops for optimised image previews.
tonytw1 Jun 26, 2024
d744c15
Play base project heap size set to 40%; want more heap for given cont…
tonytw1 May 28, 2024
46e52c1
image loader prints java memory settings.
tonytw1 May 14, 2025
8b6f932
Cloudbuild all artifacts as 1 build.
tonytw1 Sep 8, 2024
af61994
Cloudbuild runs Kahuna tests.
tonytw1 May 20, 2025
474b676
[containerised] Metadata getUsageRights end point accounts for the Ed…
tonytw1 Feb 28, 2026
e4b12ca
UsageTable methods which can be made private.
tonytw1 Mar 21, 2026
39b23f5
DynamoDB unused v1 get() method.
tonytw1 Mar 21, 2026
12f0e15
MetadataSqsMessageConsumer.processDeletedImage uses EditsStore.deleteV2
tonytw1 Mar 21, 2026
8356e54
DynamoDB unused v1 deleteItem() method.
tonytw1 Mar 21, 2026
03f6763
DynamoDB private methods.
tonytw1 Mar 21, 2026
a6d43af
DynamoDB unused v1 update() method.
tonytw1 Mar 21, 2026
9c79ae9
MetadataSqsMessageConsumer.processDeletedImage is private.
tonytw1 Mar 21, 2026
8f1d673
UsageTable uses v2 sdk.
tonytw1 Mar 21, 2026
1426728
Syndication uses removeKeyV2
tonytw1 Mar 28, 2026
550b27d
DynamoDB remove unused v1 removeKey.
tonytw1 Mar 28, 2026
2a45fd5
DynamoDB remove unused v1 update.
tonytw1 Mar 28, 2026
3958bba
DynamoDB provides a v2 version of scanForId.
tonytw1 Mar 28, 2026
3bf0f68
Syndication.getImagesInPhotoshoot uses scanForIdV2.
tonytw1 Mar 28, 2026
34afe44
DynamoDB remove unused v1 scanForId.
tonytw1 Mar 28, 2026
2d69efc
DynamoDB removes unused v1 table.
tonytw1 Mar 28, 2026
3d99d45
DynamoDB removes unused v1 dynamo.
tonytw1 Mar 28, 2026
88df66a
DynamoDB provides a batchGetV2.
tonytw1 Mar 28, 2026
4719550
Syndication.getAllImageRightsInPhotoshoot uses batchGetV2.
tonytw1 Mar 28, 2026
8f51724
DynamoDB remove unused v1 batchGet.
tonytw1 Mar 28, 2026
c66ab4b
DynamoDB drops it's unused v1 DynamoDB client.
tonytw1 Mar 28, 2026
837a060
DynamoDB remove unused methods asJsObject, jsonToValueMap, addLastMod…
tonytw1 Mar 28, 2026
5044fb0
Clean unused com.amazonaws.services.dynamodbv2 imports.
tonytw1 Mar 28, 2026
3d82430
Drop "com.amazonaws" % "aws-java-sdk-dynamodb" dependency.
tonytw1 Mar 28, 2026
e332348
[containerised] Initial build of base libvips / JDK25 container image.
tonytw1 Apr 5, 2026
8be640a
[containerised] libheif for HEIF image loading.
tonytw1 Feb 28, 2026
bd57b0f
[containerised] Image loader and cropper use libvips + JDK25 base image.
tonytw1 Apr 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions auth/app/auth/AuthComponents.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package auth

import com.gu.mediaservice.lib.management.{InnerServiceStatusCheckController, Management}
import com.gu.mediaservice.lib.management.Management
import com.gu.mediaservice.lib.play.GridComponents
import play.api.ApplicationLoader.Context
import play.api.{Configuration, Environment}
Expand All @@ -14,10 +14,9 @@ class AuthComponents(context: Context) extends GridComponents(context, new AuthC

val controller = new AuthController(auth, providers, config, controllerComponents, authorisation)
val permissionsAwareManagement = new Management(controllerComponents, buildInfo)
val InnerServiceStatusCheckController = new InnerServiceStatusCheckController(auth, controllerComponents, config.services, wsClient)


override val router = new Routes(httpErrorHandler, controller, permissionsAwareManagement, InnerServiceStatusCheckController)
override val router = new Routes(httpErrorHandler, controller, permissionsAwareManagement)
}

object AuthHttpConfig {
Expand Down
1 change: 0 additions & 1 deletion auth/conf/routes
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ GET /cookieMonster auth.AuthController.cookieMonster
# Management
GET /management/healthcheck com.gu.mediaservice.lib.management.Management.healthCheck
GET /management/manifest com.gu.mediaservice.lib.management.Management.manifest
GET /management/whoAmI com.gu.mediaservice.lib.management.InnerServiceStatusCheckController.whoAmI(depth: Int)

# Shoo robots away
GET /robots.txt com.gu.mediaservice.lib.management.Management.disallowRobots
83 changes: 47 additions & 36 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
import play.sbt.PlayImport.PlayKeys._
import com.typesafe.sbt.packager.docker.*
import play.sbt.PlayImport.PlayKeys.*
import sbt.Package.FixedTimestamp

import scala.sys.process._
import scala.collection.JavaConverters.*
import scala.sys.process.*
import scala.util.control.NonFatal
import scala.collection.JavaConverters._

import com.typesafe.sbt.packager.debian.JDebPackaging

// We need to keep the timestamps to allow caching headers to work as expected on assets.
// The below should work, but some problem in one of the plugins (possible the play plugin? or sbt-web?) causes
Expand Down Expand Up @@ -39,6 +38,7 @@ val commonSettings = Seq(
"org.scalatestplus" %% "mockito-3-4" % "3.1.4.0" % Test,
"org.mockito" % "mockito-core" % "2.18.0" % Test,
"org.scalamock" %% "scalamock" % "5.1.0" % Test,
"org.testcontainers" % "localstack" % "1.21.4" % Test
),
dependencyOverrides += "com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.19.0",

Expand Down Expand Up @@ -86,7 +86,6 @@ lazy val commonLib = project("common-lib").settings(
"com.amazonaws" % "aws-java-sdk-sqs" % awsSdkVersion,
"com.amazonaws" % "aws-java-sdk-sns" % awsSdkVersion,
"com.amazonaws" % "aws-java-sdk-sts" % awsSdkVersion,
"com.amazonaws" % "aws-java-sdk-dynamodb" % awsSdkVersion,
"com.amazonaws" % "aws-java-sdk-kinesis" % awsSdkVersion,
"nl.gn0s1s" %% "elastic4s-core" % elastic4sVersion,
"nl.gn0s1s" %% "elastic4s-client-esjava" % elastic4sVersion,
Expand All @@ -112,7 +111,7 @@ lazy val commonLib = project("common-lib").settings(
"software.amazon.awssdk" % "bedrockruntime" % awsSdkV2Version,
"software.amazon.awssdk" % "s3vectors" % awsSdkV2Version,
ws,
"org.testcontainers" % "elasticsearch" % "1.21.4" % Test
"org.testcontainers" % "testcontainers-elasticsearch" % "2.0.2" % Test,
),
dependencyOverrides += "ch.qos.logback" % "logback-classic" % "1.2.13" % Test
)
Expand All @@ -129,9 +128,9 @@ lazy val auth = playProject("auth", 9011)

lazy val collections = playProject("collections", 9010)

lazy val cropper = playProject("cropper", 9006)
lazy val cropper = playImageLoaderProject("cropper", 9006)

lazy val imageLoader = playProject("image-loader", 9003).settings {
lazy val imageLoader = playImageLoaderProject("image-loader", 9003).settings {
libraryDependencies ++= Seq(
"org.apache.tika" % "tika-core" % "3.2.3",
"com.drewnoakes" % "metadata-extractor" % "2.19.0"
Expand Down Expand Up @@ -168,7 +167,7 @@ lazy val thrall = playProject("thrall", 9002)
"software.amazon.awssdk" % "kinesis" % awsSdkV2Version,
"software.amazon.awssdk" % "dynamodb" % awsSdkV2Version,
"com.gu" %% "kcl-pekko-stream" % "0.1.0",
"org.testcontainers" % "elasticsearch" % "1.19.2" % Test,
"org.testcontainers" % "testcontainers-elasticsearch" % "2.0.2" % Test,
"com.google.protobuf" % "protobuf-java" % "3.19.6"
),
// amazon-kinesis-client 2.6.0 brings in a critically vulnerable version of apache avro,
Expand All @@ -181,8 +180,6 @@ lazy val thrall = playProject("thrall", 9002)

lazy val usage = playProject("usage", 9009).settings(
libraryDependencies ++= Seq(
"com.gu" %% "content-api-client-default" % "32.0.0",
"com.gu" %% "content-api-client-aws" % "0.7.6",
"io.reactivex" %% "rxscala" % "0.27.0",
// amazon-kinesis-client brings in a critical vulnerability warning through apache avro, resolved in versions 1.11.4 and 1.12.0.
// updating amazon-kinesis-client? check if the override below can be removed
Expand Down Expand Up @@ -237,39 +234,53 @@ val buildInfo = Seq(
)

def playProject(projectName: String, port: Int, path: Option[String] = None): Project = {
val commonProject = project(projectName, path)
.enablePlugins(PlayScala, JDebPackaging, SystemdPlugin, BuildInfoPlugin)
project(projectName, path)
.enablePlugins(PlayScala, BuildInfoPlugin, DockerPlugin)
.dependsOn(restLib)
.settings(commonSettings ++ buildInfo ++ Seq(
dockerBaseImage := "eclipse-temurin:11",
dockerExposedPorts := Seq(port),
playDefaultPort := port,
debianPackageDependencies := Seq("java11-runtime-headless"),
Linux / maintainer := "Guardian Developers <dig.dev.software@theguardian.com>",
Linux / packageSummary := description.value,
packageDescription := description.value,

bashScriptEnvConfigLocation := Some("/etc/environment"),
Debian / makeEtcDefault := None,
Debian / packageBin := {
val originalFileName = (Debian / packageBin).value
val (base, ext) = originalFileName.baseAndExt
val newBase = base.replace(s"_${version.value}_all","")
val newFileName = file(originalFileName.getParent) / s"$newBase.$ext"
IO.move(originalFileName, newFileName)
println(s"Renamed $originalFileName to $newFileName")
newFileName
},
Universal / mappings ++= Seq(
file("common-lib/src/main/resources/application.conf") -> "conf/application.conf",
file("common-lib/src/main/resources/logback.xml") -> "conf/logback.xml"
),
Universal / javaOptions ++= Seq(
"-Dpidfile.path=/dev/null",
s"-Dconfig.file=/usr/share/$projectName/conf/application.conf",
s"-Dlogger.file=/usr/share/$projectName/conf/logback.xml",
"-J-Xlog:gc*",
s"-J-Xlog:gc:/var/log/$projectName/gc.log"
)
))
//Add the BBC library dependency if defined
maybeBBCLib.fold(commonProject){commonProject.dependsOn(_)}
s"-Dconfig.file=/opt/docker/conf/application.conf",
s"-Dlogger.file=/opt/docker/conf/logback.xml",
"-XX:+PrintCommandLineFlags", "-XX:MaxRAMPercentage=40"
))
)
}

def playImageLoaderProject(projectName: String, port: Int, path: Option[String] = None): Project = {
project(projectName, path)
.enablePlugins(PlayScala, BuildInfoPlugin, DockerPlugin)
.dependsOn(restLib)
.settings(commonSettings ++ buildInfo ++ Seq(
dockerBaseImage := "eu.gcr.io/grid-301122/jdk-vips:25-8.18",
dockerExposedPorts := Seq(port),
dockerCommands ++= Seq(
Cmd("ENV", "LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so")
),
playDefaultPort := port,

bashScriptEnvConfigLocation := Some("/etc/environment"),
Universal / mappings ++= Seq(
file("common-lib/src/main/resources/application.conf") -> "conf/application.conf",
file("common-lib/src/main/resources/logback.xml") -> "conf/logback.xml",
file("image-loader/cmyk.icc") -> "cmyk.icc",
file("image-loader/facebook-TINYsRGB_c2.icc") -> "facebook-TINYsRGB_c2.icc",
file("image-loader/grayscale.icc") -> "grayscale.icc",
file("image-loader/srgb.icc") -> "srgb.icc"
),
Universal / javaOptions ++= Seq(
"-Dpidfile.path=/dev/null",
s"-Dconfig.file=/opt/docker/conf/application.conf",
s"-Dlogger.file=/opt/docker/conf/logback.xml",
"-XX:+PrintCommandLineFlags"
)))
}
68 changes: 68 additions & 0 deletions cloudbuild.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
options:
machineType: 'N1_HIGHCPU_8'
steps:
- name: 'node:24-alpine'
entrypoint: 'npm'
dir: 'kahuna'
args: [ 'install' ]
- name: 'node:24-alpine'
entrypoint: 'npm'
dir: 'kahuna'
args: [ 'run', 'test' ]
- name: 'node:24-alpine'
entrypoint: 'npm'
dir: 'kahuna'
args: [ 'run', 'dist' ]

- name: 'gcr.io/$PROJECT_ID/scala-sbt:1.6.2-jdk-11'
args: ['docker:publishLocal']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'auth:0.1', 'eu.gcr.io/$PROJECT_ID/auth:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/auth:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'cropper:0.1', 'eu.gcr.io/$PROJECT_ID/cropper:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/cropper:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'collections:0.1', 'eu.gcr.io/$PROJECT_ID/collections:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/collections:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'image-loader:0.1', 'eu.gcr.io/$PROJECT_ID/image-loader:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/image-loader:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'kahuna:0.1', 'eu.gcr.io/$PROJECT_ID/kahuna:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/kahuna:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'leases:0.1', 'eu.gcr.io/$PROJECT_ID/leases:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/leases:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'media-api:0.1', 'eu.gcr.io/$PROJECT_ID/media-api:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/media-api:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'metadata-editor:0.1', 'eu.gcr.io/$PROJECT_ID/metadata-editor:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/metadata-editor:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'thrall:0.1', 'eu.gcr.io/$PROJECT_ID/thrall:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/thrall:$BRANCH_NAME']

- name: 'gcr.io/cloud-builders/docker'
args: ['tag', 'usage:0.1', 'eu.gcr.io/$PROJECT_ID/usage:$BRANCH_NAME']
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'eu.gcr.io/$PROJECT_ID/usage:$BRANCH_NAME']
9 changes: 4 additions & 5 deletions collections/app/CollectionsComponents.scala
Original file line number Diff line number Diff line change
@@ -1,23 +1,22 @@
import com.gu.mediaservice.lib.management.InnerServiceStatusCheckController
import com.gu.mediaservice.lib.play.GridComponents
import controllers.{CollectionsController, ImageCollectionsController}
import lib.{CollectionsConfig, CollectionsMetrics, Notifications}
import play.api.ApplicationLoader.Context
import router.Routes
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient
import store.{CollectionsStore, ImageCollectionsStore}

class CollectionsComponents(context: Context) extends GridComponents(context, new CollectionsConfig(_)) {
final override val buildInfo = utils.buildinfo.BuildInfo

val collectionsStore = new CollectionsStore(config)
val imageCollectionsStore = new ImageCollectionsStore(config)
private val collectionsStore = new CollectionsStore(config.collectionsTable, config.withAWSCredentialsV2(DynamoDbAsyncClient.builder()).build())
val imageCollectionsStore = new ImageCollectionsStore(config.imageCollectionsTable, config.withAWSCredentialsV2(DynamoDbAsyncClient.builder()).build())
val metrics = new CollectionsMetrics(config, actorSystem, applicationLifecycle)
val notifications = new Notifications(config)

val collections = new CollectionsController(auth, config, collectionsStore, controllerComponents)
val imageCollections = new ImageCollectionsController(auth, config, notifications, imageCollectionsStore, controllerComponents)
val InnerServiceStatusCheckController = new InnerServiceStatusCheckController(auth, controllerComponents, config.services, wsClient)


override val router = new Routes(httpErrorHandler, collections, imageCollections, management, InnerServiceStatusCheckController)
override val router = new Routes(httpErrorHandler, collections, imageCollections, management)
}
5 changes: 1 addition & 4 deletions collections/app/store/CollectionsStore.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package store

import com.gu.mediaservice.lib.collections.CollectionsManager
import com.gu.mediaservice.model.{ActionData, Collection}
import lib.CollectionsConfig
import org.joda.time.DateTime
import org.scanamo.generic.auto.genericDerivedFormat
import org.scanamo.{DynamoFormat, ScanamoAsync, Table}
Expand All @@ -16,9 +15,7 @@ import org.scanamo.generic.semiauto.FieldName

case class Record(id: String, collection: Collection)

class CollectionsStore(config: CollectionsConfig) extends DynamoHelpers {
override val tableName: FieldName = config.collectionsTable
lazy val client: DynamoDbAsyncClient = config.withAWSCredentialsV2(DynamoDbAsyncClient.builder()).build()
class CollectionsStore(val tableName: String, client: DynamoDbAsyncClient) extends DynamoHelpers {
import org.scanamo.generic.semiauto._
implicit val dateTimeFormat: Typeclass[DateTime] =
DynamoFormat.coercedXmap[DateTime, String, IllegalArgumentException](DateTime.parse, _.toString)
Expand Down
5 changes: 1 addition & 4 deletions collections/app/store/ImageCollectionsStore.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,7 @@ import scala.concurrent.ExecutionContext.Implicits.global

case class ImageRecord(id: String, collections: List[Collection])

class ImageCollectionsStore(config: CollectionsConfig) extends DynamoHelpers {

override val tableName = config.imageCollectionsTable
lazy val client: DynamoDbAsyncClient = config.withAWSCredentialsV2(DynamoDbAsyncClient.builder()).build()
class ImageCollectionsStore(val tableName: String, val client: DynamoDbAsyncClient) extends DynamoHelpers {

import org.scanamo.generic.semiauto._
implicit val dateTimeFormat: Typeclass[DateTime] =
Expand Down
1 change: 0 additions & 1 deletion collections/conf/routes
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ POST /corrected-collections controllers.CollectionsC
# Management
GET /management/healthcheck com.gu.mediaservice.lib.management.Management.healthCheck
GET /management/manifest com.gu.mediaservice.lib.management.Management.manifest
GET /management/whoAmI com.gu.mediaservice.lib.management.InnerServiceStatusCheckController.whoAmI(depth: Int)

# Shoo robots away
GET /robots.txt com.gu.mediaservice.lib.management.Management.disallowRobots
Loading