project/Dependencies.scala (92 lines of code) (raw):
import play.sbt.PlayImport._
import sbt._
object Dependencies {
object Versions {
val aws = "2.31.23"
val jackson = "2.18.2"
val awsRds = "1.12.783"
val enumeratumPlay = "1.8.2"
}
// https://github.com/orgs/playframework/discussions/11222
// We no longer have any vulnerabilities through Jackson but still need to define jackson dependencies.
// Jackson does not like having different versions of its packages installed.
private val jacksonOverrides = Seq(
"com.fasterxml.jackson.core" % "jackson-core",
"com.fasterxml.jackson.core" % "jackson-annotations",
"com.fasterxml.jackson.core" % "jackson-databind",
"com.fasterxml.jackson.datatype" % "jackson-datatype-jdk8",
"com.fasterxml.jackson.datatype" % "jackson-datatype-jsr310",
"com.fasterxml.jackson.dataformat" % "jackson-dataformat-cbor",
"com.fasterxml.jackson.module" % "jackson-module-parameter-names",
"com.fasterxml.jackson.module" %% "jackson-module-scala"
).map(_ % Versions.jackson)
val commonDeps = Seq(
"io.reactivex" %% "rxscala" % "0.27.0",
"org.scalatest" %% "scalatest" % "3.2.19" % Test,
"org.parboiled" %% "parboiled" % "2.5.1",
"org.typelevel" %% "cats-core" % "2.12.0",
"org.mockito" %% "mockito-scala" % "1.17.37" % Test
)
val magentaLibDeps =
commonDeps ++ jacksonOverrides ++ Seq(
"com.squareup.okhttp3" % "okhttp" % "4.12.0",
"software.amazon.awssdk" % "core" % Versions.aws,
"software.amazon.awssdk" % "autoscaling" % Versions.aws,
"software.amazon.awssdk" % "s3" % Versions.aws,
"software.amazon.awssdk" % "ec2" % Versions.aws,
"software.amazon.awssdk" % "elasticloadbalancing" % Versions.aws,
"software.amazon.awssdk" % "elasticloadbalancingv2" % Versions.aws,
"software.amazon.awssdk" % "lambda" % Versions.aws,
"software.amazon.awssdk" % "cloudformation" % Versions.aws,
"software.amazon.awssdk" % "sts" % Versions.aws,
"software.amazon.awssdk" % "ssm" % Versions.aws,
"com.gu" %% "fastly-api-client" % "1.0.1",
"com.fasterxml.jackson.dataformat" % "jackson-dataformat-yaml" % Versions.jackson,
"com.beachape" %% "enumeratum-play-json" % Versions.enumeratumPlay,
"com.google.apis" % "google-api-services-deploymentmanager" % "v2-rev20250102-2.0.0",
"com.google.cloud" % "google-cloud-storage" % "2.47.0",
"org.scala-lang.modules" %% "scala-parallel-collections" % "1.2.0"
).map((m: ModuleID) =>
// don't even ask why I need to do this
m.excludeAll(
ExclusionRule(
organization = "com.google.code.findbugs",
name = "jsr305"
)
)
)
val riffRaffDeps =
commonDeps ++ jacksonOverrides ++ Seq(
evolutions,
jdbc,
"com.gu.play-googleauth" %% "play-v30" % "19.0.0",
"com.gu.play-secret-rotation" %% "play-v30" % "13.1.2",
"com.gu.play-secret-rotation" %% "aws-parameterstore-sdk-v2" % "13.1.2",
"org.pegdown" % "pegdown" % "1.6.0",
"com.adrianhurt" %% "play-bootstrap" % "1.6.1-P28-B3", // scala-steward:off,
"org.scanamo" %% "scanamo" % "3.0.0",
"software.amazon.awssdk" % "dynamodb" % Versions.aws,
"software.amazon.awssdk" % "sns" % Versions.aws,
"org.quartz-scheduler" % "quartz" % "2.3.2",
"com.gu" %% "anghammarad-client" % "4.0.0",
"org.webjars" %% "webjars-play" % "3.0.2",
"org.webjars" % "jquery" % "3.7.1",
"org.webjars" % "jquery-ui" % "1.14.1",
"org.webjars" % "bootstrap" % "3.4.1", // scala-steward:off
"org.webjars" % "jasny-bootstrap" % "3.1.3-2", // scala-steward:off
"org.webjars" % "momentjs" % "2.30.1",
"net.logstash.logback" % "logstash-logback-encoder" % "8.0",
"org.scalikejdbc" %% "scalikejdbc" % "3.5.0", // scala-steward:off
"org.postgresql" % "postgresql" % "42.7.5",
"com.beachape" %% "enumeratum-play" % Versions.enumeratumPlay,
filters,
ws,
"org.apache.pekko" %% "pekko-testkit" % "1.0.3" % Test,
"com.amazonaws" % "aws-java-sdk-rds" % Versions.awsRds,
"org.scala-stm" %% "scala-stm" % "0.11.1",
// Play 3.0 currently uses logback-classic 1.4.11 which is vulnerable to CVE-2023-45960
"ch.qos.logback" % "logback-classic" % "1.5.16"
).map((m: ModuleID) =>
// don't even ask why I need to do this
m.excludeAll(
ExclusionRule(
organization = "com.google.code.findbugs",
name = "jsr305"
)
)
)
}