Configu

Configu Icon Configu is a , , and standard for managing and collaborating on software configuration data. It is built to provide a , , and process for storing, mutating, and orchestrating configuration data across any system or environment. Configu is designed to be easy to integrate into existing systems and workflows, and to be adaptable to the diverse needs of teams and projects. It can be used from the command line, integrated in a build pipeline, or embedded in a program. Configu scales from small to large, simple to complex, ad-hoc to repetitive configuration tasks. It establishes a powerful abstraction layer over configuration data, enabling engineering teams to perform secure and error-free configuration operations throughout the software development lifecycle.

Background

background-banner During the software development lifecycle, developers commonly extract certain configuration items or metadata from the code to manage them separately, typically in configuration files or similar plain text formats. This separately managed content is called software/application configuration, and is an important aspect of software development, enabling developers to customize application behavior to suit various tech stacks and deployment environments. It includes elements such as environment variables, secrets, feature flags, and other code-related variables critical for configuring application behavior.

Motivation

motivation-banner Software configurations refer to the data that determines how a software application or system behaves. As codebases continuously expand and become more branched and complex, it may require more configuration data to customize its behavior and ensure that it functions correctly. In modern, distributed, and microservices-based systems, configuration data is often scattered across multiple stores, making it challenging for teams to work together and ensure that their applications are properly configured. Incorrect or outdated configuration data can cause bugs and errors that can result in significant downtime and lost revenue. We developed Configu with the conviction that effective configuration management is fundamental to the stability and reliability of applications, and crucial for upholding the efficiency and productivity of engineering teams. Ensuring teams possess a clear understanding of the configuration data in use, and establishing robust processes to keep it accurate and up to date, are essential components of this belief.

Philosophy

As developers, we believe in the power of open-source software and are committed to developing Configu openly on github.com/configu. We are always eager to collaborate with other developers and DevOps engineers, and are happy to assist with anything related to Configu or configurations in general. If you would like to contribute code to Configu or provide feedback, we welcome you to join our Discord channel or reach out via email at support@configu.com. We believe that by working together and inviting others to be part of the project, we can create a strong and supportive community around Configu and help it continue to grow and evolve.

FAQs

If you can’t find the answer you are looking for here, please join our Discord community and ask whatever you like.
While both secrets and feature flags are implementations of application configurations, secret managers, feature flag solutions and Configu are quite different.Application configurations are fragmented. They are saved as raw text that is spread across multiple stores, databases, files, and third parties tools. This fragmentation happened partly because each sub-category of application configurations has its own dedicated storage that specializes in that sub-category. Secret managers, for example, securely store and manage sensitive information such as passwords. Feature flag solutions manage feature releases and enable dynamic experiments.In contrast, Configu does not focus on a specific sub-category but rather on the workflow itself and can manage and fetch the configs from all other stores, using the same commands. Configu automates the configuration workflow from code to runtime across all environments and lets you manage configurations through one interface that rules them all.This makes Configu’s approach more robust and reliable, allowing it to prevent misconfigurations and duplications and provide visibility, a test framework, security, and compliance standardization.
Of course! Configu Orchestrator is open-source software and supports many different storage options including ASM, Hashicorp Vault and even files in a git repository. You can also create your own store for your benefit and others.For example, explore our Managing HashiCorp Vault using Configu tutorial.
Yes. you have three ways to fetch configs offline:
  • Fetch the default values directly from the .cfgu schema
  configu eval --schema 'my-schema.cfgu.yaml'
  • Use the last fetch. Configu saves the latest fetched configuration in a local cache.
  • Use a self-hosted store. If you use Configu for orchestrating local files, or a local database, or run Configu’s self-hosted version you can do everything offline.
Definitely! The Configu Orchestrator is free, open-source software. The Configu Platform offers a free Community plan.