# 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:**
```yaml
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:**
```yaml
# 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:**
```yaml
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
