in code/go/internal/validator/content.go [58:77]
func validateContentTypeSize(fsys fs.FS, path string, contentType spectypes.ContentType, limits spectypes.LimitsSpec) error {
info, err := fs.Stat(fsys, path)
if err != nil {
return err
}
size := spectypes.FileSize(info.Size())
if size <= 0 {
return errors.New("file is empty, but media type is defined")
}
var sizeLimit spectypes.FileSize
switch contentType.MediaType {
case "application/x-yaml":
sizeLimit = limits.MaxConfigurationSize()
}
if sizeLimit > 0 && size > sizeLimit {
return fmt.Errorf("file size (%s) is bigger than expected (%s)", size, sizeLimit)
}
return nil
}