Summary
This was a chapter in which we focused a lot on practices that bring our application closer to a state that we can deploy into production. We started by exploring basic security practices, adding the CORS mechanism and HTTPS to the API. These two features, which are pretty much standard in any application, are a big security improvement on what we already had.
Also, thinking about deploying the application, we also abstracted the configuration and secrets from the code base. We started by creating an abstraction that would deal with it so that the configuration is not scattered, and modules just receive their configuration values without any awareness of how they're loaded. Then, we proceeded to using those values in our current code base, something that revealed itself to be quite easy. This step removed any configuration values from the code and moved them to a configuration file.
Once done with configuration, we used the same abstraction created to deal with secrets...