def configureRemoteDevDb()

in newswires/app/conf/Database.scala [76:112]


  def configureRemoteDevDb(
      ssm: SsmClient
  ): Unit = {
    logger.info("building DB config for connecting to CODE DB from local")

    val stack = "editorial-feeds"
    val stage = "CODE"
    val app = "newswires"
    val ssa = s"/$stage/$stack/$app"

    def getParamDirectly(name: String): String = {
      val request = GetParameterRequest.builder().name(s"$ssa/$name").build()
      val respo = ssm.getParameter(request)
      respo.parameter().value()
    }

    val username = getParamDirectly("database/username")
    val port = getParamDirectly("database/port")
    val address = getParamDirectly("database/endpoint-address")
    val databaseName = getParamDirectly("database/database-name")

    val ds = new AwsWrapperDataSource()
    ds.setJdbcProtocol("jdbc:postgresql:")
    ds.setServerName("localhost")
    ds.setDatabase(databaseName)
    ds.setServerPort(port)
    ds.setTargetDataSourceClassName("org.postgresql.ds.PGSimpleDataSource")
    ds.setTargetDataSourceProperties(new Properties() {
      setProperty("wrapperPlugins", "iam")
      setProperty("iamRegion", "eu-west-1")
      setProperty("iamHost", address)
      setProperty("user", username)
      setProperty("awsProfile", "editorial-feeds")
    })

    ConnectionPool.singleton(new DataSourceConnectionPool(ds))
  }