Platform Marketing Content: - Add PaginationParams, PaginationMeta, PaginatedResponse interfaces - Fix JwtAuthGuard import paths (common/guards instead of modules/auth) - Add missing fields to CRM interfaces (address, keywords, features, benefits) - Install @nestjs/throttler dependency ERP Suite - Construccion: - Create tsconfig.node.json for web frontend - Add vite-env.d.ts for Vite types - Fix implicit return errors in Express controllers - Prefix unused parameters with underscore ERP Suite - ERP Core: - Export PoolClient type from database config - Fix invoice type comparison (customer/supplier vs out_invoice) - Refactor base.service.ts query handling for proper type inference - Rename Role type to RoleType to avoid conflict with entity - Fix ProtectedRoute to use role?.name instead of roles array ERP Suite - POS Micro: - Add vite-env.d.ts for Vite types - Fix Sale property names (discountAmount, changeAmount) - Export TodaySummary interface from sales service All projects now pass npm install and npm run build successfully. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
6.7 KiB
ANALISIS DE PUERTOS - WORKSPACE
Fecha: 2025-12-08 Generado por: Architecture-Analyst Con datos de: DevEnv Agent Version: 1.0.0
RESUMEN EJECUTIVO
| Metrica | Valor |
|---|---|
| Total proyectos escaneados | 6 |
| Total archivos de configuracion | 40+ |
| Total puertos configurados | 87 |
| Conflictos detectados | 5 |
| Conflictos P0 (criticos) | 2 |
| Conflictos P1 (importantes) | 2 |
| Conflictos P2 (recomendaciones) | 1 |
HALLAZGOS CRITICOS (P0)
CONFLICT-001: Puerto 3000 Compartido
Severidad: P0 - CRITICO Puerto: 3000 Impacto: 4 proyectos no pueden ejecutarse simultaneamente
| Proyecto | Archivo | Variable |
|---|---|---|
| erp-suite/erp-core | .env.example | PORT |
| erp-suite/mecanicas-diesel | .env.example | APP_PORT |
| erp-suite/pos-micro | backend/.env.example | PORT |
| platform_marketing_content | apps/backend/.env.example | PORT |
Causa raiz: Se uso el puerto default de desarrollo (3000) sin considerar el estandar del workspace.
Resolucion propuesta:
erp-core: 3000 -> 3106 (rango erp-suite: 3100-3119)
mecanicas-diesel: 3000 -> 3166 (rango: 3160-3179)
pos-micro: 3000 -> 3226 (rango: 3220-3239)
pmc: 3000 -> 3606 (rango: 3600-3699)
CONFLICT-002: PostgreSQL 5432 Compartido
Severidad: P0 - CRITICO (condicional) Puerto: 5432 Impacto: Multiples proyectos comparten el puerto default de PostgreSQL
| Proyecto | Archivo |
|---|---|
| gamilit | apps/backend/.env |
| trading-platform | apps/database/.env |
| erp-suite/erp-core | .env.example |
| erp-suite/mecanicas-diesel | .env.example |
| platform_marketing_content | apps/backend/.env.example |
Analisis:
- Si los proyectos corren en maquinas diferentes: ACEPTABLE
- Si los proyectos corren en el mismo host: CONFLICTO
Resolucion propuesta:
# Para desarrollo en mismo host, usar puertos diferenciados:
gamilit: 5432 (produccion - mantener)
trading-platform: 5432 (ya diferenciado con test en 5433)
erp-core: 5440 (nuevo)
mecanicas-diesel: 5441 (nuevo)
pmc: 5442 (nuevo)
Nota: Los proyectos ERP-suite verticales ya tienen puertos diferenciados (5433-5437).
HALLAZGOS IMPORTANTES (P1)
CONFLICT-003: Vidrio-Templado vs Grafana
Severidad: P1 - IMPORTANTE Puerto: 3200
| Proyecto | Uso | Archivo |
|---|---|---|
| erp-suite/vidrio-templado | Backend API | .env.example (APP_PORT) |
| trading-platform | Grafana Monitoring | .env.ports (GRAFANA_PORT) |
Analisis: El backend de vidrio-templado (3200) colisiona con el puerto reservado para Grafana en trading-platform.
Resolucion propuesta:
vidrio-templado: 3200 -> 3146 (dentro de su rango: 3140-3159)
CONFLICT-004: PgAdmin Compartido
Severidad: P1 - IMPORTANTE Puerto: 5050
| Proyecto | Archivo |
|---|---|
| trading-platform | docker-compose.yml |
| erp-suite/erp-core | database/docker-compose.yml |
Analisis: Herramienta de desarrollo, no corre simultaneamente. ACEPTABLE mantener como esta.
Resolucion: Ninguna requerida. Documentar que no deben ejecutarse simultaneamente.
RECOMENDACIONES (P2)
CONFLICT-005: Proyectos sin .env.ports
Los siguientes proyectos no tienen archivo centralizado de puertos:
- erp-suite
- betting-analytics
- inmobiliaria-analytics
- platform_marketing_content
Resolucion: Crear .env.ports en cada proyecto siguiendo el template de trading-platform.
ANALISIS DE CUMPLIMIENTO DEL ESTANDAR
Estandar Base (gamilit)
Frontend: 3005 (base + 5)
Backend: 3006 (base + 6)
Cumplimiento por Proyecto
| Proyecto | Cumple Estandar | Observacion |
|---|---|---|
| gamilit | SI | Proyecto de referencia |
| trading-platform | PARCIAL | Tiene su propio esquema documentado |
| erp-suite/erp-core | NO | Usa 3000, deberia ser 3106 |
| erp-suite/construccion | NO | Usa 3100, deberia ser 3126 |
| erp-suite/vidrio-templado | NO | Usa 3200, deberia ser 3146 |
| erp-suite/mecanicas-diesel | NO | Usa 3000, deberia ser 3166 |
| erp-suite/retail | NO | Usa 3400, deberia ser 3186 |
| erp-suite/clinicas | NO | Usa 3500, deberia ser 3206 |
| erp-suite/pos-micro | NO | Usa 3000, deberia ser 3226 |
| platform_marketing_content | NO | Usa 3000, deberia ser 3606 |
| betting-analytics | N/A | Sin configurar |
| inmobiliaria-analytics | N/A | Sin configurar |
MATRIZ DE PUERTOS PROPUESTOS
Backends (Patron: base + 6)
| Proyecto | Puerto Actual | Puerto Propuesto | Cambio Requerido |
|---|---|---|---|
| gamilit | 3006 | 3006 | NO |
| erp-core | 3000 | 3106 | SI |
| construccion | 3100 | 3126 | SI |
| vidrio-templado | 3200 | 3146 | SI |
| mecanicas-diesel | 3000 | 3166 | SI |
| retail | 3400 | 3186 | SI |
| clinicas | 3500 | 3206 | SI |
| pos-micro | 3000 | 3226 | SI |
| trading-platform | 4000 | 4000 | NO |
| pmc | 3000 | 3606 | SI |
Frontends (Patron: base + 5)
| Proyecto | Puerto Actual | Puerto Propuesto | Cambio Requerido |
|---|---|---|---|
| gamilit | 3005 | 3005 | NO |
| erp-core | - | 3105 | CREAR |
| construccion | 5174 | 5174 o 3125 | REVISAR |
| vidrio-templado | 5175 | 5175 o 3145 | REVISAR |
| trading-platform | 3100 | 3100 | NO |
| pmc | - | 3605 | CREAR |
VALIDACION DEL PLAN CONTRA REQUERIMIENTOS
Requerimiento 1: No conflictos de puertos
- Estado: CUBIERTO
- Validacion: Todas las propuestas eliminan conflictos existentes
Requerimiento 2: Seguir estandar gamilit
- Estado: CUBIERTO
- Validacion: Propuestas siguen patron base+5 (FE), base+6 (BE)
Requerimiento 3: Rangos por proyecto
- Estado: CUBIERTO
- Validacion: Cada proyecto tiene rango de 100 puertos asignado
Requerimiento 4: Documentacion actualizada
- Estado: EN PROCESO
- Validacion: Crear .env.ports en proyectos faltantes
Requerimiento 5: Puertos de produccion protegidos
- Estado: CUBIERTO
- Validacion: gamilit 3005/3006 no se modifican
RIESGOS IDENTIFICADOS
| Riesgo | Probabilidad | Impacto | Mitigacion |
|---|---|---|---|
| Cambio de puerto rompe configuracion existente | ALTA | MEDIO | Actualizar todos los archivos .env simultaneamente |
| Frontend no conecta a nuevo backend | MEDIA | ALTO | Actualizar VITE_API_URL junto con backend |
| Docker-compose desactualizado | MEDIA | MEDIO | Verificar todos los docker-compose.yml |
| CI/CD con puertos hardcodeados | BAJA | ALTO | Revisar pipelines de Jenkins |
SIGUIENTE PASO
Ver: PLAN-CORRECCION-PUERTOS.md para el plan de implementacion detallado.
Version: 1.0.0 | Generado por: Architecture-Analyst + DevEnv