UNPKG

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
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"