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
Configs records. types/ConfigStore
ConfigSet: A unique path within a tree-like data structure that groups
Configs 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
ConfigSchemaupdated with your code in your Version Control System (VCS). This ensures configurations evolve with your application. -
Upsert Configurations: Use
ConfigSchemawith aConfigSettoUpsert(updates or inserts)Configs into aConfigStore. Use the context tree. Any modifiedConfigis validated against theConfigSchema. -
Evaluate Configurations: From development to deployment, use
ConfigSchemaandConfigSettoEvaluateConfigsfrom aConfigStore. Any fetchedConfigis validated against theConfigSchema. -
Export Configurations for Use: After evaluation,
ExporttheConfigsinto formats needed for your application. This step adapts to various deployment environments and needs. Utilize theCLIfor build and deploy time operations, and theSDKs 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 |
|---|---|---|---|---|
|
|
|
Instructions | ts/packages/cli |
|
|
|
|
Instructions | ts/packages/node |
|
|
|
|
Instructions | ts/packages/browser |
|
|
|
|
Instructions | py |
|
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
Instructions | go |
|
|
|
|
|||
|
|
|
|||
|
|
|
ts/packages/vscode |
|
|
|
|
|
|||
|
|
|
|||
|
|
|
- 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.