Loading the database configuration
Before proceeding further, let’s address one of the issues with code that you might have noticed already—we are passing the credentials as clear text, which is not only a bad practice but also poses a major security risk. In production code, secrets are supplied as environment variables and loaded at runtime by a configuration loader.
For this book, we are going to use PureConfig
to load the configuration: https://pureconfig.github.io/docs/index.html.
In order to add PureConfig
to your project, you need to add the following dependency in your build.sbt
file:
libraryDependencies += "com.github.pureconfig" %% "pureconfig" % "0.17.2"
Example 4.13
For this section, we are interested in loading the database configuration at runtime. For that, we can create a Config
file with the following case classes and a helper object:
package com.packt.dewithscala import pureconfig._ import pureconfig.generic...