Skip to content
Go to Lynx

Características

This content is not available in your language yet.

La solidez operativa de apps/nest no solo recae en el framework, sino en las integraciones elegidas cuidadosamente para manejar seguridad, bases de datos y validaciones de manera eficiente.

La lógica del servidor en Lynx delega en bibliotecas externas para no reinventar estándares operativos:

  • Validación de Entradas: nestjs-zod (basado en zod) es el orquestador principal. Valida peticiones HTTP y limpia (sanitize) las entradas antes de inyectarlas en los controladores.
  • Autenticación en Contexto: Utilizando @thallesp/nestjs-better-auth, Better Auth queda encapsulado en NestJS de forma idiomática, proporcionando guards y decoradores.
  • Capa de Persistencia: drizzle-orm conectándose directamente con un driver ligero de PostgreSQL (pg).
  • Seguridad y Trazabilidad:
    • nestjs-cls (Continuación Local de Almacenamiento) para contexto global por solicitud (Request-Scoped).
    • @nestjs/throttler para mitigación de ataques y límites de tasa (Rate Limiting).
    • helmet para inyección de encabezados de seguridad HTTP.
    • csrf-csrf para protección intrínseca en ataques Cross-Site Request Forgery.

La estrategia de testing abandona herramientas heredadas (como Jest) en favor de Vitest.

  1. Unitarias (DI mockeado): Se enfoca en servicios, controladores, filtros y proveedores puros utilizando @suites/di.nestjs. Se validan usando el comando nativo.
  2. End-to-End (E2E): Simula todo el ciclo de una petición montando la aplicación contra una instancia emulada (usualmente in-memory o DB de prueba).

| Tipo | Comando a ejecutar | Configuración Interna | | :--------------- | :------------------------- | :---------------------------------------------- | | Unit Testing | pnpm test o vitest run | Archivos *.spec.ts colocados junto al módulo. | | Pruebas E2E | pnpm test-e2e | Utiliza --config ./vitest.config.e2e.ts. |

El ciclo de vida del servidor requiere interacciones continuas con los esquemas persistentes definidos en @lynx/models. A continuación se destacan los comandos principales para ejecutar desde la raíz con pnpm:

  • pnpm db:generate: Analiza los modelos expuestos en el código y crea los archivos de migración .sql para Drizzle.
  • pnpm db:migrate: Ejecuta las migraciones generadas y actualiza el esquema de PostgreSQL a la versión más reciente.
  • pnpm dev: Levanta el entorno interactivo de desarrollo de NestJS con soporte nativo de Hot Module Replacement (HMR).