usage metrics: validate maxLength for some elements (#3131)

Co-authored-by: Sebastien Blot <sebastien@crowdsec.net>
This commit is contained in:
mmetc 2024-07-15 13:26:59 +02:00 committed by GitHub
parent 5390b8ea4b
commit c4da2775cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 47 additions and 0 deletions

View file

@ -35,6 +35,7 @@ type BaseMetrics struct {
// version of the remediation component // version of the remediation component
// Required: true // Required: true
// Max Length: 255
Version *string `json:"version"` Version *string `json:"version"`
} }
@ -124,6 +125,10 @@ func (m *BaseMetrics) validateVersion(formats strfmt.Registry) error {
return err return err
} }
if err := validate.MaxLength("version", "body", *m.Version, 255); err != nil {
return err
}
return nil return nil
} }

View file

@ -1095,6 +1095,7 @@ definitions:
version: version:
type: string type: string
description: version of the remediation component description: version of the remediation component
maxLength: 255
os: os:
$ref: '#/definitions/OSversion' $ref: '#/definitions/OSversion'
metrics: metrics:
@ -1107,6 +1108,7 @@ definitions:
items: items:
type: string type: string
description: feature flags (expected to be empty for remediation components) description: feature flags (expected to be empty for remediation components)
maxLength: 255
utc_startup_timestamp: utc_startup_timestamp:
type: integer type: integer
description: UTC timestamp of the startup of the software description: UTC timestamp of the startup of the software
@ -1120,9 +1122,11 @@ definitions:
name: name:
type: string type: string
description: name of the OS description: name of the OS
maxLength: 255
version: version:
type: string type: string
description: version of the OS description: version of the OS
maxLength: 255
required: required:
- name - name
- version - version
@ -1146,12 +1150,14 @@ definitions:
name: name:
type: string type: string
description: name of the metric description: name of the metric
maxLength: 255
value: value:
type: number type: number
description: value of the metric description: value of the metric
unit: unit:
type: string type: string
description: unit of the metric description: unit of the metric
maxLength: 255
labels: labels:
$ref: '#/definitions/MetricsLabels' $ref: '#/definitions/MetricsLabels'
description: labels of the metric description: labels of the metric
@ -1178,6 +1184,7 @@ definitions:
additionalProperties: additionalProperties:
type: string type: string
description: label of the metric description: label of the metric
maxLength: 255
ConsoleOptions: ConsoleOptions:
title: ConsoleOptions title: ConsoleOptions
type: array type: array

View file

@ -24,10 +24,12 @@ type MetricsDetailItem struct {
// name of the metric // name of the metric
// Required: true // Required: true
// Max Length: 255
Name *string `json:"name"` Name *string `json:"name"`
// unit of the metric // unit of the metric
// Required: true // Required: true
// Max Length: 255
Unit *string `json:"unit"` Unit *string `json:"unit"`
// value of the metric // value of the metric
@ -86,6 +88,10 @@ func (m *MetricsDetailItem) validateName(formats strfmt.Registry) error {
return err return err
} }
if err := validate.MaxLength("name", "body", *m.Name, 255); err != nil {
return err
}
return nil return nil
} }
@ -95,6 +101,10 @@ func (m *MetricsDetailItem) validateUnit(formats strfmt.Registry) error {
return err return err
} }
if err := validate.MaxLength("unit", "body", *m.Unit, 255); err != nil {
return err
}
return nil return nil
} }

View file

@ -8,7 +8,9 @@ package models
import ( import (
"context" "context"
"github.com/go-openapi/errors"
"github.com/go-openapi/strfmt" "github.com/go-openapi/strfmt"
"github.com/go-openapi/validate"
) )
// MetricsLabels MetricsLabels // MetricsLabels MetricsLabels
@ -18,6 +20,19 @@ type MetricsLabels map[string]string
// Validate validates this metrics labels // Validate validates this metrics labels
func (m MetricsLabels) Validate(formats strfmt.Registry) error { func (m MetricsLabels) Validate(formats strfmt.Registry) error {
var res []error
for k := range m {
if err := validate.MaxLength(k, "body", m[k], 255); err != nil {
return err
}
}
if len(res) > 0 {
return errors.CompositeValidationError(res...)
}
return nil return nil
} }

View file

@ -21,10 +21,12 @@ type OSversion struct {
// name of the OS // name of the OS
// Required: true // Required: true
// Max Length: 255
Name *string `json:"name"` Name *string `json:"name"`
// version of the OS // version of the OS
// Required: true // Required: true
// Max Length: 255
Version *string `json:"version"` Version *string `json:"version"`
} }
@ -52,6 +54,10 @@ func (m *OSversion) validateName(formats strfmt.Registry) error {
return err return err
} }
if err := validate.MaxLength("name", "body", *m.Name, 255); err != nil {
return err
}
return nil return nil
} }
@ -61,6 +67,10 @@ func (m *OSversion) validateVersion(formats strfmt.Registry) error {
return err return err
} }
if err := validate.MaxLength("version", "body", *m.Version, 255); err != nil {
return err
}
return nil return nil
} }