I use Viper https://github.com/spf13/viper for managing project configurations in my GO app, and also for Unmarshaling configuration values to a struct.
var config c.Configuration // Configuration is my configuration struct
err := viper.Unmarshal(&config)
When I miss some configs in .yml config file it doesn't throw any error (as I had guessed) during Unmarshaling.
So how can I force to have all configs implemented? I want to see errors if any field from struct doesn't have value in yaml.
You can integrate validator package along with viper, so that you can check for any missing configuration. Attaching code snippet and config screenshot of my working code.
My property screenshot
Missing property error