Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Gregory Eremin f1d2e36ab1 Add note about Secondly 7 years ago
demo Add screenshot 8 years ago
static Saving 8 years ago
.gitignore Initial commit 8 years ago
README.md Add note about Secondly 7 years ago
config.go Include ignored fields 8 years ago
config_file.go Fix config file opening 8 years ago
manager.go Readme draft 8 years ago
server.go Response to saving with something 8 years ago



Confection is a configuration manager plugin for Go projects.

This project is outdated

Please use Secondly instead.


First you need to add tags to fields of the config struct.

  • json — required for proper serialization
  • title — human readable field name (optional)
  • attrs — field attributes: required, readonly, ignored; separated by comma
  • options — list of supported values, separated by comma

Required attributes will block manager.RequireConfig() call until field gets a value

Ignored attributes are not displayed.

Readonly attributes are displayed but disabled.

You also need to pass an unmarshalling function as shown below.

package main

import (


type (
	Config struct {
		AppName     string `json:"app_name" attrs:"required" title:"Application Name"`
		BuildNumber int    `json:"build_number" attrs:"readonly" title:"Build Number"`

func init() {

func main() {
	conf := Config{}
	manager := confection.New(conf, func(b []byte) interface{} {
		var newConf Config
		if err := json.Unmarshal(b, &newConf); err != nil {
		return newConf

	fmt.Println("Ready to work!")

Full example

Demo Screenshot