code: func validateConfigID(configID string) error {
  	re, _ := regexp.Compile(configAllowedChars)
  	// Length
  	if len(configID) <= 0 {
  		return errors.New("config ID illegal, cannot be empty")
  	}
  	if len(configID) > maxLength {
  		return errors.Errorf("config ID illegal, cannot be longer than %d", maxLength)
  	}
  	// Illegal name
  	if _, ok := illegalNames[configID]; ok {
  		return errors.Errorf("name '%s' for config ID is not allowed", configID)
  	}
  	// Illegal characters
  	matched := re.FindString(configID)
  	if len(matched) != len(configID) {
  		return errors.Errorf("config ID '%s' contains illegal characters", configID)
  	}
  
  	return nil
  }
docs: // validateConfigID makes sure that the config element names (ie map key of
  // ConfigGroup) comply with the following restrictions
  //      1. Contain only ASCII alphanumerics, dots '.', dashes '-'
  //      2. Are shorter than 250 characters.
  //      3. Are not the strings "." or "..".