func parseAndValidateSettings()

in main/handlersettings.go [165:190]


func parseAndValidateSettings(lg *slog.Logger, configFolder string) (h handlerSettings, _ error) {
	telemetry.SendEvent(telemetry.InfoEvent, telemetry.MainTask, "Reading configuration")
	pubJSON, protJSON, err := readSettings(configFolder)
	if err != nil {
		return h, err
	}

	telemetry.SendEvent(telemetry.InfoEvent, telemetry.MainTask, "validating json schema")
	if err := validateSettingsSchema(pubJSON, protJSON); err != nil {
		return h, errors.Wrap(err, "json validation error")
	}

	telemetry.SendEvent(telemetry.InfoEvent, telemetry.MainTask, "json schema valid")
	telemetry.SendEvent(telemetry.InfoEvent, telemetry.MainTask, "parsing configuration json")
	if err := vmextension.UnmarshalHandlerSettings(pubJSON, protJSON, &h.publicSettings, &h.protectedSettings); err != nil {
		return h, errors.Wrap(err, "json parsing error")
	}
	telemetry.SendEvent(telemetry.InfoEvent, telemetry.MainTask, "parsed configuration json")

	telemetry.SendEvent(telemetry.InfoEvent, telemetry.MainTask, "validating configuration logically")
	if err := h.validate(); err != nil {
		return h, errors.Wrap(err, "invalid configuration")
	}
	telemetry.SendEvent(telemetry.InfoEvent, telemetry.MainTask, "validated configuration")
	return h, nil
}