validation

package
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2025 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewValidationError

func NewValidationError(field, message, code string) error

NewValidationError creates a validation error.

Types

type CompositeValidator

type CompositeValidator struct {
	// contains filtered or unexported fields
}

CompositeValidator chains multiple validators.

func NewCompositeValidator

func NewCompositeValidator(validators ...MessageValidator) *CompositeValidator

NewCompositeValidator creates a composite validator.

func (*CompositeValidator) Add

func (cv *CompositeValidator) Add(validator MessageValidator)

Add adds a validator to the chain.

func (*CompositeValidator) Validate

Validate runs all validators.

func (*CompositeValidator) ValidateContent

func (cv *CompositeValidator) ValidateContent(content any) error

ValidateContent validates content with all validators.

func (*CompositeValidator) ValidateMetadata

func (cv *CompositeValidator) ValidateMetadata(metadata map[string]any) error

ValidateMetadata validates metadata with all validators.

type ContentValidator

type ContentValidator struct {
	// contains filtered or unexported fields
}

ContentValidator validates message content.

func NewContentValidator

func NewContentValidator(config ContentValidatorConfig) *ContentValidator

NewContentValidator creates a content validator.

func (*ContentValidator) Validate

Validate validates the message.

func (*ContentValidator) ValidateContent

func (cv *ContentValidator) ValidateContent(content any) error

ValidateContent validates content data.

func (*ContentValidator) ValidateMetadata

func (cv *ContentValidator) ValidateMetadata(metadata map[string]any) error

ValidateMetadata validates metadata.

type ContentValidatorConfig

type ContentValidatorConfig struct {
	// Length checks
	MaxContentLength int
	MinContentLength int

	// Required fields
	RequireUserID bool
	RequireRoomID bool
	RequireType   bool

	// Format validation
	ValidateURLs   bool
	ValidateEmails bool

	// Custom validators
	CustomValidators map[string]ContentValidatorFunc
}

ContentValidatorConfig configures content validation.

type ContentValidatorFunc

type ContentValidatorFunc func(content any) error

ContentValidatorFunc is a custom validation function.

type MessageValidator

type MessageValidator interface {
	// Validate checks message before acceptance
	Validate(ctx context.Context, msg *streaming.Message, sender streaming.EnhancedConnection) error

	// ValidateContent validates message content
	ValidateContent(content any) error

	// ValidateMetadata validates metadata
	ValidateMetadata(metadata map[string]any) error
}

MessageValidator validates messages before acceptance.

type RateLimitValidator

type RateLimitValidator struct {
	// contains filtered or unexported fields
}

RateLimitValidator validates message rate limits.

func NewRateLimitValidator

func NewRateLimitValidator(config RateLimitValidatorConfig) *RateLimitValidator

NewRateLimitValidator creates a rate limit validator.

func (*RateLimitValidator) Validate

Validate checks if message passes rate limit.

func (*RateLimitValidator) ValidateContent

func (rlv *RateLimitValidator) ValidateContent(content any) error

ValidateContent is not used for rate limit validation.

func (*RateLimitValidator) ValidateMetadata

func (rlv *RateLimitValidator) ValidateMetadata(metadata map[string]any) error

ValidateMetadata is not used for rate limit validation.

type RateLimitValidatorConfig

type RateLimitValidatorConfig struct {
	// Per-user limits
	MessagesPerSecond int
	MessagesPerMinute int
	BurstSize         int

	// Per-room limits
	RoomMessagesPerSecond int

	// Dynamic throttling
	EnableDynamicThrottling bool
	ThrottleThreshold       float64 // % of limit before throttling
}

RateLimitValidatorConfig configures rate limit validation.

type Schema

type Schema struct {
	Type       string            `json:"type"`
	Properties map[string]Schema `json:"properties,omitempty"`
	Required   []string          `json:"required,omitempty"`
	MinLength  *int              `json:"minLength,omitempty"`
	MaxLength  *int              `json:"maxLength,omitempty"`
	Pattern    string            `json:"pattern,omitempty"`
	Enum       []any             `json:"enum,omitempty"`
}

Schema represents a JSON schema for validation.

type SchemaValidator

type SchemaValidator struct {
	// contains filtered or unexported fields
}

SchemaValidator validates messages against JSON schemas.

func NewSchemaValidator

func NewSchemaValidator(schemas map[string]*Schema) *SchemaValidator

NewSchemaValidator creates a schema validator.

func (*SchemaValidator) Validate

Validate validates message against schema.

func (*SchemaValidator) ValidateContent

func (sv *SchemaValidator) ValidateContent(content any) error

ValidateContent validates content structure.

func (*SchemaValidator) ValidateMetadata

func (sv *SchemaValidator) ValidateMetadata(metadata map[string]any) error

ValidateMetadata validates metadata structure.

type SecurityValidator

type SecurityValidator struct {
	// contains filtered or unexported fields
}

SecurityValidator validates message security.

func NewSecurityValidator

func NewSecurityValidator(config SecurityValidatorConfig) *SecurityValidator

NewSecurityValidator creates a security validator.

func (*SecurityValidator) Validate

Validate performs security validation.

func (*SecurityValidator) ValidateContent

func (sv *SecurityValidator) ValidateContent(content any) error

ValidateContent validates content for security issues.

func (*SecurityValidator) ValidateMetadata

func (sv *SecurityValidator) ValidateMetadata(metadata map[string]any) error

ValidateMetadata validates metadata for security issues.

type SecurityValidatorConfig

type SecurityValidatorConfig struct {
	// XSS prevention
	EnableXSSPrevention bool
	AllowedTags         []string
	AllowedAttributes   []string

	// Injection prevention
	EnableSQLInjectionCheck    bool
	EnableScriptInjectionCheck bool

	// Link safety
	EnableLinkSafety bool
	AllowedProtocols []string
	BlockedDomains   []string

	// Malicious content
	EnableMaliciousContentCheck bool
}

SecurityValidatorConfig configures security validation.

type ValidationError

type ValidationError struct {
	Field   string
	Message string
	Code    string
}

ValidationError represents a validation failure.

func (*ValidationError) Error

func (ve *ValidationError) Error() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL