Skip to main content
src/core reúne configuraciones globales que preparan una aplicación NestJS: CORS, Swagger/OpenAPI, validación y transformación y middleware de trazabilidad. No contiene controllers, services, queries ni lógica de negocio.

Reglas obligatorias

  1. Nomenclatura: todos los archivos de esta carpeta deben terminar en .core.ts, en kebab-case: cors.core.ts, swagger.core.ts, transform.core.ts y traceflow.core.ts.
  2. Una función por archivo: cada archivo *.core.ts declara y exporta una sola función de configuración. No declares funciones auxiliares adicionales dentro de estos archivos.
  3. Nombre obligatorio: setup + nombre del archivo convertido a PascalCase, sin el sufijo .core.ts. Ejemplos: cors.core.ts → setupCors; traceflow.core.ts → setupTraceFlow.
  4. Un único parámetro: la función recibe exclusivamente app: INestApplication. No agregues otros parámetros.
  5. Separación de responsabilidades: cada función configura una sola característica global sobre app. No inicies el servidor, no crees NestFactory ni registres endpoints dentro del archivo.
  6. Integración centralizada: importa y llama a estas funciones desde src/main.ts, después de crear la aplicación y antes de app.listen(...).
  7. Sin duplicar implementaciones: los ejemplos completos y los ajustes concretos viven en las páginas hijas. Este índice define las convenciones.

Plantilla de un archivo core

ejemplo.core.ts

Archivos y responsabilidades

Inicialización previa a la aplicación

Si una librería necesita inicializarse antes de NestFactory.create(AppModule) —por ejemplo, la instrumentación de TraceFlow— ejecuta ese arranque en src/main.ts o en una fase de bootstrap previa, no creando una segunda función dentro de *.core.ts. setupTraceFlow(app) solo se encarga del middleware una vez que existe la aplicación.

Seguridad y comprobaciones

  • No uses origin: '*' indiscriminadamente en producción; configura los orígenes autorizados según la política del proyecto.
  • Usa la captura de bodies, cookies y cabeceras sensibles de TraceFlow solo en local con datos de prueba.
  • Al modificar un *.core.ts, comprueba que conserva la única función setup... y que main.ts la invoca correctamente.
Consulta cada página hija para el código fuente y sus opciones actualizadas.

cors.core.ts

swagger.core.ts

transform.core.ts

traceflow.core.ts