Configu is a simple, modern, and secure standard for managing and collaborating software configurations ⚙️.
It is built to provide a common, flexible, and extensible process for storing, mutating, and orchestrating configuration data across different environments and systems.
Learn how to use Configu in your project.
Configu isn’t just a tool; it’s a dedicated companion on your software development journey. Its features are tailored to ensure that your configurations are not just managed but are an integral, secure, and optimized part of your software lifecycle. Try Configu and transform the way you handle software configurations.
🎯 Simple: Offers a unified API for all configuration tasks, whether dealing with files, databases, secret managers, or custom implementations. Enables end-to-end configuration automation throughout the software development lifecycle.
🚀 Modern: Expertly manages configuration data across multiple deployments, workflows, runtimes, and environments. Scales to accommodate infinite configuration contexts, maintaining seamless management and organization.
🔒 Secure: Equipped with a robust configuration type system and a comprehensive policy framework. Provides built-in safeguards against application misconfigurations, ensuring a secure environment for your configurations.
🌐 Common: Promotes a clear understanding and consistent management of configuration data. Facilitates collaboration and ensures configurations are accurate and up-to-date. Provides a declarative approach that integrates seamlessly with coding tasks, enabling "Learn Once, Write Anywhere" flexibility and automation across diverse environments and systems.
🌟 Flexible: Adapts to any modern tech stack and use case. Allows to manage configurations across files, directories, codebases, and repositories. Accommodates configuration values over a context tree for inheritance and advanced overriding. Allows combining and piping commands to produce any necessary configuration artifact.
🛠 Extensible: Supports custom configuration storage implementations, configuration formatters, and injectors. Continuously evolving and driven by community contributions.
Configu is more than just a tool; it’s a solution that evolves with you, enhancing the way you think and interact with software configurations.
Config: A generic representation of application configuration
using three properties: key
, value
, set
. types/Config
Cfgu: A generic declaration of a Config
, using properties like type, description and constraints. types/Cfgu
ConfigStore: A storage engine interface for Config
s records. types/ConfigStore
ConfigSet: A unique path within a tree-like data structure that groups Config
s contextually. types/ConfigSet
ConfigSchema: A file containing binding records linking each unique ConfigKey
to its corresponding Cfgu
declaration. types/ConfigSchema
Configs
from a ConfigStore
. Search Upsert Command
Configs
from ConfigStore
on demand. Search Eval Command
Configs
as configuration data in various modes. Search Export Command
Configu's architecture is designed to seamlessly integrate into the software development lifecycle. The flow diagram below illustrates this dynamic process:
The Configu workflow is an iterative process that boosts configuration management as a regular part of your development cycle:
-
Define ConfigSchema: Regularly define and revise configuration instances form code sections using
ConfigSchema
. -
Synchronize with VCS: Keep these
ConfigSchema
updated with your code in your Version Control System (VCS). This ensures configurations evolve with your application. -
Upsert Configurations: Use
ConfigSchema
with aConfigSet
toUpsert
(updates or inserts)Config
s into aConfigStore
. Use the context tree. Any modifiedConfig
is validated against theConfigSchema
. -
Evaluate Configurations: From development to deployment, use
ConfigSchema
andConfigSet
toEvaluate
Configs
from aConfigStore
. Any fetchedConfig
is validated against theConfigSchema
. -
Export Configurations for Use: After evaluation,
Export
theConfigs
into formats needed for your application. This step adapts to various deployment environments and needs. Utilize theCLI
for build and deploy time operations, and theSDK
s for runtime operations.
Incorporating these steps into your regular development routines, Configu fosters a dynamic and integrated approach to configuration management. This ensures that configurations remain in sync with your application's evolution, bolstering the system's stability and reliability, as well as enhancing team efficiency and productivity.
You can find the Configu documentation on the website. The documentation is divided into several sections:
There are many ways to contribute to Configu.
- Try Configu and share your feedback with us.
- Submit bugs and help us verify fixes as they are checked in.
- Review the source code changes.
- Engage with other Configu users and developers on StackOverflow.
- Help each other in the Discord community.
- Contribute bugfixes and improvements.
- Contribute documentation.
Interface | Version | Setup | Code | Build |
---|---|---|---|---|
Configu CLI | Instructions | ts/packages/cli | ||
Node.js SDK | Instructions | ts/packages/node | ||
Browser SDK | Instructions | ts/packages/browser | ||
Python SDK | Instructions | py | ||
Java SDK | ||||
.NET SDK | ||||
C++ SDK | ||||
PHP SDK | ||||
Go SDK | Instructions | go | ||
Rust SDK | ||||
Ruby SDK | ||||
VSCode Extension | ts/packages/vscode | |||
IntelliJ Plugin | ||||
Kubernetes Operators | ||||
Terraform Provider |
- Configu Blog
- The Twelve-Factor App - Config
- Wikipedia - Configuration file
- StackOverflow - [configuration]
- DEV Community - #configuration
- Webinar - Configuration-as-Code (CaC)
- Post - Configuration-as-Code (CaC)
Configu is Apache-2.0 licensed. Copyright (c) 2022-present, Configu.