---
description: Understand this important concept to simplify your config.
---

# Sharing Config Data

One of our [seven core principle](https://7factorconfig.org)s is to keep your config [DRY](https://7factorconfig.org/dry). CloudTruth provides flexible methods and workflows to share secrets, parameters and templates across projects and environments.&#x20;

### Interpolation

CloudTruth's powerful [Dynamic Value](../parameter-management/managing-parameters#dynamic-parameters) parameter type allows you to reference and interpolate other values and templates from any project.&#x20;

Benefits include:

* Reference one parameter from another to build more complex values.
  * An example is a database hostname, port, and URL value. With interpolation, the value can be constructed with individual settings. So if the port number changes, the new value only needs to change in one location, and all the references will automatically inherit the new value.&#x20;
* Reference parameters from another project.
  * Cherry-pick parameters to be shared or inherit all the values.
* Implicit values allow config data to adjust according to context, avoiding creating too many variants which become difficult to manage at scale. Use implicit values for:
  * Ephemeral environments
  * Topic branches

### Project Inheritance

Share parameters and secrets across projects from a common base project. Project inheritance works with interpolation.

Benefits include:

* Most config data can be organized to share a default value across projects. You don't lose anything by sharing since values can always be overridden for exceptional cases.&#x20;
* Supports templates as well as parameters and secrets.&#x20;

### Environment Inheritance

Environment inheritance allows sharing of config data across environments without repeating values. It's a core concept for [DRY config](https://7factorconfig.org/dry).&#x20;

Benefits include:

* Set sane default values that can be inherited or easily overridden.
* Secret rotation is easier because the secret only has to be changed in one location and will be reflected in all referenced values.
