Confix
Confix
is a configuration management tool that allows you to manage your configuration via CLI.
It is based on the CometBFT RFC 019.
Installation
Add Config Command
To add the confix tool, it's required to add the ConfigCommand
to your application's root command file (e.g. <appd>/cmd/root.go
).
Import the confixCmd
package:
import "cosmossdk.io/tools/confix/cmd"
Find the following line:
initRootCmd(rootCmd, moduleManager)
After that line, add the following:
rootCmd.AddCommand(
confixcmd.ConfigCommand(),
)
The ConfixCommand
function builds the config
root command and is defined in the confixCmd
package (cosmossdk.io/tools/confix/cmd
).
An implementation example can be found in simapp
.
The command will be available as simd config
.
Using confix directly in the application can have less features than using it standalone.
This is because confix is versioned with the SDK, while latest
is the standalone version.
Using Confix Standalone
To use Confix standalone, without having to add it in your application, install it with the following command:
go install cosmossdk.io/tools/confix/cmd/confix@latest
Alternatively, for building from source, simply run make confix
. The binary will be located in tools/confix
.
Usage
Use standalone:
confix --help
Use in simd:
simd config fix --help
Get
Get a configuration value, e.g.:
simd config get app pruning # gets the value pruning from app.toml
simd config get client chain-id # gets the value chain-id from client.toml
confix get ~/.simapp/config/app.toml pruning # gets the value pruning from app.toml
confix get ~/.simapp/config/client.toml chain-id # gets the value chain-id from client.toml
Set
Set a configuration value, e.g.:
simd config set app pruning "enabled" # sets the value pruning from app.toml
simd config set client chain-id "foo-1" # sets the value chain-id from client.toml
confix set ~/.simapp/config/app.toml pruning "enabled" # sets the value pruning from app.toml
confix set ~/.simapp/config/client.toml chain-id "foo-1" # sets the value chain-id from client.toml
Migrate
Migrate a configuration file to a new version, config type defaults to app.toml
, if you want to change it to client.toml
, please indicate it by adding the optional parameter, e.g.:
simd config migrate v0.50 # migrates defaultHome/config/app.toml to the latest v0.50 config
simd config migrate v0.50 --client # migrates defaultHome/config/client.toml to the latest v0.50 config
confix migrate v0.50 ~/.simapp/config/app.toml # migrate ~/.simapp/config/app.toml to the latest v0.50 config
confix migrate v0.50 ~/.simapp/config/client.toml --client # migrate ~/.simapp/config/client.toml to the latest v0.50 config
Diff
Get the diff between a given configuration file and the default configuration file, e.g.:
simd config diff v0.47 # gets the diff between defaultHome/config/app.toml and the latest v0.47 config
simd config diff v0.47 --client # gets the diff between defaultHome/config/client.toml and the latest v0.47 config
confix diff v0.47 ~/.simapp/config/app.toml # gets the diff between ~/.simapp/config/app.toml and the latest v0.47 config
confix diff v0.47 ~/.simapp/config/client.toml --client # gets the diff between ~/.simapp/config/client.toml and the latest v0.47 config
View
View a configuration file, e.g:
simd config view client # views the current app client config
confix view ~/.simapp/config/client.toml # views the current app client conf
Maintainer
At each SDK modification of the default configuration, add the default SDK config under data/vXX-app.toml
.
This allows users to use the tool standalone.
Compatibility
The recommended standalone version is latest
, which is using the latest development version of the Confix.
SDK Version | Confix Version |
---|---|
v0.50 | v0.1.x |
v0.52 | v0.2.x |
v2 | v0.2.x |
Credits
This project is based on the CometBFT RFC 019 and their never released own implementation of confix.