Skip to content

Commit

Permalink
Parse app config strictly by default (#3629)
Browse files Browse the repository at this point in the history
  • Loading branch information
saquibmian authored Feb 12, 2025
1 parent 1da768a commit ea3dec9
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions private/pkg/app/appext/appext.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,25 @@ func BuilderWithLoggerProvider(loggerProvider LoggerProvider) BuilderOption {
// If the file does not exist, this is a no-op.
// The value should be a pointer to unmarshal into.
func ReadConfig(container NameContainer, value interface{}) error {
configFilePath := filepath.Join(container.ConfigDirPath(), configFileName)
data, err := os.ReadFile(configFilePath)
if !errors.Is(err, os.ErrNotExist) {
if err != nil {
return fmt.Errorf("could not read %s configuration file at %s: %w", container.AppName(), configFilePath, err)
}
if err := encoding.UnmarshalYAMLStrict(data, value); err != nil {
return fmt.Errorf("invalid %s configuration file: %w", container.AppName(), err)
}
}
return nil
}

// ReadConfigNonStrict reads the configuration from the YAML configuration file config.yaml
// in the configuration directory, ignoring any unknown properties.
//
// If the file does not exist, this is a no-op.
// The value should be a pointer to unmarshal into.
func ReadConfigNonStrict(container NameContainer, value interface{}) error {
configFilePath := filepath.Join(container.ConfigDirPath(), configFileName)
data, err := os.ReadFile(configFilePath)
if !errors.Is(err, os.ErrNotExist) {
Expand Down

0 comments on commit ea3dec9

Please sign in to comment.