Using Doppler in Serverless Applications
Published: 2021-09-28 04:27:33

##Summary

Secrets management is a core part of any application development as it helps keep secrets safe and ensures that you can control how and when your secrets are stored. Secret management might be tough for any developer as it requires broader security controls and a coordinated process for managing all types of secrets. Doppler was created to manage your secrets. In this tutorial, we will learn how to manage secrets in serverless applications using Doppler.

##Goals

In this tutorial, you will learn how to build a simple serverless application. We’ll then set up our project with Doppler to store these secret keys instead of using the native .env file. At the end of this tutorial you will learn how Doppler can be used to store all your secrets credentials.

##What are Serverless applications?

Serverless applications are cloud native applications that run without having us manage servers. they also have service integrations that are built in so that we can put our focus into building our applications instead of configuring it and thinking about servers. Serverless applications scale automatically as needed and respond to change faster.

##What are secrets?

Simply put, secrets are sets of sensitive information that unlocks protected resources and are used to authenticate privileged users. They are also known as digital authentication credentials. Passwords are a well-known example, but there are APIs, SSH keys, private certificates, etc. These secrets are fundamental to an application's productivity. Still, they can cause huge risks if not handled properly, and that is why you need a secret manager to help remove these risks. This is where [Doppler](https://www.doppler.com/) comes in.

##ENV files and why you should stop using it

A .env file is a simple configuration file used for customizing and controlling app environment variables. Simply put, it is used to keep secrets out of source code and has been used and is still used by developers today. Inasmuch as it has served us in the past and is still serving us, you should not use them again for storing confidential information.

One of the reasons is that .env files breaks down during updates and branch merging. Another is that it is hard to track access because the domain where they are stored is completely available.

One other reason is that managing .env files is time consuming and error prone if done manually which might give rise to misconfiguration.

These reasons are why you need a fully automated secret manager like [Doppler](https://www.doppler.com/).

##What is Doppler?

According to its [documentation](https://docs.doppler.com/docs/enclave-guide),

Doppler's secure and scalable Universal Secrets Manager seeks to make developers lives easier by removing the need for env files, hardcoded secrets, and copy-pasted credentials.
The Doppler CLI provides easy access to secrets in every environment from local development to production and a single dashboard makes it easy for teams to centrally manage app configuration for any application, platform, and cloud provider.
Doppler works for every language with a steadily growing list of integrations and to get started, choose your type of adventure. Whether you want to create your first project or install the Doppler CLI, you have come to the right place.
Doppler provides a safe and secure place for developers to store secrets, thereby doing away with hardcoded secrets and .env files, which have a very high risk of your secrets getting exposed or accessed by unauthorized parties. Doppler also removes the human element and automates the secret management process.

Doppler also has its CLI that makes it easier to install, authenticate and run your applications in a few clicks. Doppler groups secrets together by application in its dashboard so that access is served when the application starts.

Doppler also makes it easier for users to integrate directly from most major cloud platforms like Heroku, Netlify, and other secret managers.

##Setting up a Serverless application 

In this section, readers will learn how to manage app secrets in a serverless application using Doppler.
![Serverless application](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/x17lcqrrh1ih2gjhsbmq.png)
In the image above, we have our serverless application. We need to get our secret keys from FaunaDB to store them in our secret manager.
![our project](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ckabd7j1eehpygernejy.png)
Then we navigated to the security tab, and there we got the secret key which we will use for our application, as we will see from the image below:
![security dashboard](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u5kk4ye972rbsy9h4lcl.png)
##Setting up Doppler

Before we start saving our secrets on Doppler, we first have to create an account. Then we create a workplace that we can save with any name we want. Our workplace should look like the image below:
![workplace](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5qiwqup1a7gnpw5ql46j.png)
##Creating our serverless project

We will create our project on Doppler by navigating to the create project card when setting up our workspace. Then we will add the details of our projects, and the results should look like the image below if done correctly:
![project site](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jmsq613nyfqqw47m06y7.png)
After we have created our application, we will then navigate to the dev environment. Then we will store our secret from Fauna in the secrets card, which should look like the image below if done correctly.
![Keys stored](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nzyaoi81oogyio8t93fd.png)

##Conclusion

We have successfully set up Doppler for a serverless application to secure our apps secrets. We have drastically reduced risks by doing away with .env files. 
With this article, serverless teams can now learn how to use Doppler for building serverless apps. First, using our serverless application, we connected it to FaunaDB for our secret keys. Next, we then stored the said keys using Doppler instead of the traditional  .env file. Readers can find the code used in this tutorial [here](https://github.com/IkehAkinyemi/serverless-ui-project), you can also learn more about Doppler [here](https://docs.doppler.com/docs).