backend-mcp
Version:
Generador automático de backends con Node.js, Express, Prisma y módulos configurables. Servidor MCP compatible con npx para agentes IA. Soporta PostgreSQL, MySQL, MongoDB y SQLite.
290 lines (265 loc) • 6.58 kB
YAML
module:
name: "validation"
version: "1.0.0"
description: "Sistema completo de validación con class-validator y esquemas personalizados"
category: "security"
author: "Backend MCP"
license: "MIT"
triggers:
- condition: "user_wants_validation"
value: true
- condition: "needs_data_validation"
value: true
- condition: "requires_input_sanitization"
value: true
- condition: "has_forms"
value: true
- keywords:
- "validation"
- "validator"
- "class-validator"
- "dto"
- "schema"
- "sanitization"
- "input validation"
- "data validation"
entry_points:
pipe: "templates/validation.pipe.ts.hbs"
decorator: "templates/validate.decorator.ts.hbs"
service: "templates/validation.service.ts.hbs"
schema: "templates/validation.schema.ts.hbs"
dto: "templates/base.dto.ts.hbs"
dependencies:
required: []
optional:
- "database"
- "logging"
- "auth"
environment_variables:
required: []
optional:
- VALIDATION_STRICT_MODE
- VALIDATION_TRANSFORM
- VALIDATION_WHITELIST
- VALIDATION_FORBID_NON_WHITELISTED
- VALIDATION_SKIP_MISSING_PROPERTIES
- VALIDATION_ALWAYS_TRANSFORM
features:
- "class-validator-integration"
- "custom-validators"
- "dto-validation"
- "schema-validation"
- "input-sanitization"
- "transformation"
- "conditional-validation"
- "nested-validation"
- "array-validation"
- "file-validation"
- "async-validation"
- "custom-decorators"
api_endpoints:
- "POST /validation/validate"
- "GET /validation/schemas"
- "POST /validation/custom"
- "GET /validation/rules"
generated_files:
- "src/validation/validation.pipe.ts"
- "src/validation/validate.decorator.ts"
- "src/validation/validation.service.ts"
- "src/validation/validation.schema.ts"
- "src/validation/base.dto.ts"
- "src/validation/validation.controller.ts"
- "src/validation/validation.module.ts"
- "src/validation/validators/custom.validators.ts"
- "src/validation/decorators/validation.decorators.ts"
- "src/validation/interfaces/validation.interface.ts"
integration:
database_integration:
- "unique-field-validation"
- "exists-validation"
- "foreign-key-validation"
auth_integration:
- "permission-validation"
- "role-validation"
- "ownership-validation"
logging_integration:
- "validation-error-logging"
- "validation-audit"
validation_types:
- name: "string"
validators:
- "IsString"
- "IsNotEmpty"
- "Length"
- "MinLength"
- "MaxLength"
- "Matches"
- "IsEmail"
- "IsUrl"
- "IsUUID"
- name: "number"
validators:
- "IsNumber"
- "IsInt"
- "IsPositive"
- "IsNegative"
- "Min"
- "Max"
- "IsDivisibleBy"
- name: "date"
validators:
- "IsDate"
- "IsDateString"
- "MinDate"
- "MaxDate"
- name: "boolean"
validators:
- "IsBoolean"
- "IsBooleanString"
- name: "array"
validators:
- "IsArray"
- "ArrayMinSize"
- "ArrayMaxSize"
- "ArrayNotEmpty"
- "ArrayUnique"
- name: "object"
validators:
- "IsObject"
- "ValidateNested"
- "IsNotEmptyObject"
custom_validators:
- name: "IsUnique"
description: "Valida que un campo sea único en la base de datos"
- name: "Exists"
description: "Valida que un registro exista en la base de datos"
- name: "IsStrongPassword"
description: "Valida que una contraseña sea segura"
- name: "IsValidFile"
description: "Valida archivos subidos"
- name: "IsBusinessRule"
description: "Valida reglas de negocio personalizadas"
transformation_features:
- "auto-transform"
- "type-conversion"
- "sanitization"
- "normalization"
- "trim-strings"
- "lowercase-transform"
- "uppercase-transform"
validation_groups:
- "create"
- "update"
- "partial-update"
- "admin"
- "public"
error_handling:
features:
- "detailed-error-messages"
- "field-specific-errors"
- "nested-error-reporting"
- "internationalization"
- "custom-error-formats"
formats:
- "standard"
- "detailed"
- "simple"
- "json-api"
schema_formats:
- "class-validator"
- "joi"
- "yup"
- "ajv"
- "custom"
usage_examples:
- "DTO validation in controllers"
- "Request body validation"
- "Query parameter validation"
- "File upload validation"
- "Database constraint validation"
- "Business rule validation"
ai_instructions: |
Use this module when:
- User mentions "validation", "dto", "schema", "input validation"
- Project needs data validation or sanitization
- API endpoints require request validation
- Forms need client/server validation
Always combine with:
- logging module (for validation error tracking)
- database module (for unique/exists validation)
Configuration steps:
1. Setup validation pipes globally
2. Create DTOs with validation decorators
3. Configure custom validators
4. Setup error handling and formatting
5. Configure transformation options
6. Setup validation groups
automation:
scripts:
- "generate-dto"
- "validate-schemas"
- "test-validation"
- "generate-validators"
testing:
unit_tests:
- "validation.pipe.test.ts"
- "validation.service.test.ts"
- "custom.validators.test.ts"
integration_tests:
- "dto-validation.test.ts"
- "database-validation.test.ts"
e2e_tests:
- "api-validation.e2e.test.ts"
- "form-validation.e2e.test.ts"
performance:
optimization:
- "validation-caching"
- "schema-compilation"
- "lazy-validation"
- "batch-validation"
metrics:
- "validation-time"
- "error-rate"
- "cache-hit-rate"
security:
features:
- "input-sanitization"
- "xss-prevention"
- "sql-injection-prevention"
- "data-type-enforcement"
- "whitelist-validation"
best_practices:
- "strict-validation"
- "input-length-limits"
- "file-type-validation"
- "encoding-validation"
internationalization:
features:
- "multi-language-errors"
- "locale-specific-validation"
- "custom-message-templates"
supported_locales:
- "en"
- "es"
- "fr"
- "de"
- "pt"
compatibility:
node_versions:
- ">=16.0.0"
frameworks:
- "nestjs"
- "express"
- "fastify"
validation_libraries:
- "class-validator"
- "class-transformer"
- "joi"
- "yup"
- "ajv"
documentation:
- "README.md"
- "API.md"
- "VALIDATION_RULES.md"
- "CUSTOM_VALIDATORS.md"
- "EXAMPLES.md"