Skip to content
LoginGet Started

Application Configuration Cloud Configuration Configuration Management

App Configuration and Project Structure in Cloudtruth

March 30, 2022

In many environments, managing app configuration data (secrets, API keys, parameters, environment variables, etc.) can be cumbersome. If you have a dev, staging, and production environment, the management of configuration data can cause major headaches for your team.

If you’re handling the same data for clients and/or customers, it can become an even bigger mess due to managing multiple environments and storing the configuration data values. You need an easy-to-use and simple-to-understand approach.

In this blog post, you’ll learn about how CloudTruth can make secrets and parameters simple.

Projects

When thinking about Projects in CloudTruth, think about it as your entry point to an application. Once you click on a Project, you can have multiple Parameters. Inside of those Parameters can be anything from environment variables to secrets. The idea here is that CloudTruth can store any value you want in a safe, secure, and easy fashion.

Projects control the existence of Parameters and Environments control parameter values.

Let’s take a look at the below screenshots.

The Project

In the screenshot below, you’ll see a Project called MyApp. Within MyApp you’ll be able to set multiple Parameters. The Parameters can be anything from:

  • Secrets
  • API Keys
  • Environment variables
  • Values that you’re passing in at runtime
  • Variables
cloudtruth app config
Manage app configuration with projects and environments

Within each project is where you can set multiple parameters. The parameters can be for one client or multiple clients in one environment or multiple environments. CloudTruth also tracks version history for all parameters and secret values. This feature is an automatic system-wide change tracking tool.

Per the screenshot below, there is one parameter called APIKey in the default environment, but what exactly does that mean?

cloudtruth app config projects
Add parameters and secrets to your projects

The Parameters

Thinking about the APIKey parameter from the previous section, the API key could work for multiple environments or one environment. For example, below you’ll see that the APIKey is in the default environment, which means it works throughout development, staging, and production.

cloudtruth app config parameters
Add a secret to your project

However, it’s typically not the case to have one value for every environment. You’ll need multiple values. To do that, you can edit the value of the APIKey parameter for each environment. Below you’ll see Secrets inside of development, staging, and production.

cloudtruth app config secret
Use defaults or override secret value for any environment

CloudTruths Project and Environment inheritance model helps you keep your environment(s) DRY.

Multi-Environment Projects

In the previous section, you learned about multiple environments and Projects if you’re only worried about one client or your own in-house configurations. It’s a great use case, but what about if you have one app and multiple customers using that app? Perhaps you’re storing configuration data values, like environment variables and secrets, for customer configurations.

Luckily, CloudTruth has you covered with that type of scenario as well.

Taking a look at the screenshot below, you can see the MyApp project and now there are multiple Projects underneath. This is what CloudTruth calls Nested Projects. When creating a new Project, you have the option to create child Projects. For example, development, staging, and production. Within each of those Projects, you can create child Projects which can be used by different customers.

cloudtruth app cpnfig multiple environments
Project hierarchy allows inheritance and overrides

Then, you can specify configuration data for each customer in a straightforward way. CloudTruth ensures that you can focus on the application and not have the headache of focusing on secrets and parameters.

Utilizing The CloudTruth CLI

From an automation and developer standpoint, you may not want to click around a UI. Instead, you’ll want a command-line interface that you can use to add Parameters to Projects, regardless of how nested the Projects are. You can use the CloudTruth CLI in any environment to achieve this goal.

Below you’ll see an example of adding parameters to prod-customer-1 and prod-customer-2

cloudtruth --project prod-customer-1 parameter set --value 9+G7;3z<FJD/;4c+ APIKey
cloudtruth --project prod-customer-2 parameter set --value DvQ7gYkhqztS2.9h APIKey

Wrapping Up

Whether you have one application that you need configuration data for internally, or you have multiple customers that you need to manage configuration data for, CloudTruth has the ability to manage any environment you throw at it. Whether it’s multiple clients in dev/staging/production or one client with different parameter/secret values for each stage.

If you’d like to get started with CloudTruth today, you can try it for free at the link here.

Join ‘The Pipeline’

Our bite-sized newsletter with DevSecOps industry tips and security alerts to increase pipeline velocity and system security.

Subscribe For Free

Continue exploring

Browse All Talks

Continue Reading