diff --git a/PROJECT_STATUS.md b/PROJECT_STATUS.md new file mode 100644 index 0000000..96a2266 --- /dev/null +++ b/PROJECT_STATUS.md @@ -0,0 +1,114 @@ +# ESTADO DEL PROYECTO — Datos País sobre el Cuidado +## Documento de continuidad — junio 2026 (actualización) + +> Director: Marcos · Metodología: Maria Mersan · Contacto Fundación: Valeria Arce +> Última actualización: 10 junio 2026 + +--- + +## 1. URLs operativas + +| Encuesta | URL | +|---|---| +| Demo (Empresa Demo) | https://economia-cuidado.inqualityhq.com/?s=30000000-0000-0000-0000-000000000001 | +| InQuality | https://economia-cuidado.inqualityhq.com/?s=30000000-0000-0000-0000-000000000002 | +| Fundación Solidaridad | https://economia-cuidado.inqualityhq.com/?s=30000000-0000-0000-0000-000000000003 | +| Control de respuestas | https://economia-cuidado.inqualityhq.com/admin/responses | +| Dashboard | https://economia-cuidado.inqualityhq.com/dashboard | + +--- + +## 2. Infraestructura — OPERATIVA ✅ + +- **App:** Next.js 15.3.3 + TypeScript + Tailwind CSS (⚠️ CVE-2025-66478 pendiente) +- **DB:** Supabase self-hosted en Dokploy v0.29.4 +- **VPS:** inq-mart-2, IP VPN: 172.20.5.11 +- **Repos:** + - App: `git.inquality.com.py/marcos/motor-de-encuestas` (rama main) + - Supabase stack: `git.inquality.com.py/marcos/supabase-motor-fomularios` (rama master) +- **API Supabase:** https://db.inqualityhq.com (Kong + SSL) +- **Backups:** `/var/backups/supabase-prod/`, cron 3AM, retención GFS (3 días diarios + domingos 14 días) + +--- + +## 3. Instrumento — v2.1 ACTIVO + +- **44 preguntas**, 8 secciones +- **Salto triple:** 1.1=No AND 1.6=No AND 1.13=No → salta a 6.4 +- **Nueva pregunta 6.6:** "¿Estarías dispuesto/a a ser voluntario/a en iniciativas y/o redes de apoyo?" +- **2.4 eliminada** (similar a 2.1) +- **2.1 → multiple_choice** (TECH-DEBT: falta ranking de prioridad) +- "Prefiero no decir" eliminado de todas las preguntas +- Hint "Podés marcar más de una opción" en todas las multiple_choice +- "Tecnología asistiva" agregada en 1.3 y 1.10 (penúltima posición) + +--- + +## 4. DB — estado actual + +| Tabla | Filas | +|---|---| +| organizations | 3 (Empresa Demo, InQuality, Fundación Solidaridad) | +| surveys | 3 (una por organización) | +| questions | 132 (44 × 3 surveys) | +| responses | 3 (todas de prueba) | +| answers | 97 (de prueba) | + +--- + +## 5. Vista de control /admin/responses + +- Tabla plana: una fila por answer, agrupada por submission +- Excluye: `text_long`, `is_sensitive=true`, `3.4` (salary) +- Sin auth — URL no publicada (TECH-DEBT-008) +- **Pendiente:** contraer/expandir por submission + eliminar columna Tipo + +--- + +## 6. Deuda técnica abierta + +| ID | Descripción | Bloqueante | +|---|---|---| +| TECH-DEBT-006 | Backup remoto S3 | **SÍ — antes del primer dato real** | +| TECH-DEBT-007 | auth.jwt() deprecado en GoTrue v2.189+ | No (piloto) | +| TECH-DEBT-008 | /admin/responses sin auth | No (URL no publicada) | +| CVE-2025-66478 | Next.js 15.3.3 con vulnerabilidad crítica | **SÍ — antes del primer dato real** | + +--- + +## 7. Pendientes inmediatos (en orden) + +1. **CVE-2025-66478** — actualizar Next.js (bloqueante antes del primer dato real) +2. **TECH-DEBT-006** — backup remoto S3 (bloqueante antes del primer dato real) +3. **Etapa 2G** — cierre Sprint 2: C.8, AP.10, AP.11 en el método +4. **Admin/responses** — contraer/expandir + eliminar columna Tipo +5. **RE Index** — confirmar mapeo G1/G2/G4/G5 → códigos seed antes de implementar +6. **Informe descargable** — prometido en deck comercial + +--- + +## 8. Decisiones tomadas — no reabrir + +1. Supabase en Dokploy siempre via modo Git (no docker raw) +2. POSTGRES_PASSWORD siempre con `openssl rand -hex` +3. kong.yml: una sola entrada por bloque keyauth_credentials +4. SMTP_PORT=587 siempre explícito aunque SMTP esté desactivado +5. GOTRUE_EXTERNAL_ANONYMOUS_USERS_ENABLED=false siempre explícito +6. LUA_AUTH_EXPR con prefijo "Bearer " en kong-entrypoint.sh rama legacy +7. NEXT_PUBLIC_SUPABASE_URL via Build Argument en Dokploy +8. App Next.js conecta a https://db.inqualityhq.com (URL pública) +9. /admin/responses no muestra is_sensitive=true hasta tener auth (TECH-DEBT-008) +10. brand_config.org_name es el campo que alimenta el nombre de empresa en el formulario +11. Organizaciones separadas para cada encuesta (InQuality y Fundación Solidaridad) +12. conditional_rules referencian códigos de pregunta, no UUIDs + +--- + +## 9. Contexto comercial + +- 2 empresas comprometidas para piloto +- Cronograma: JUN inicio · JUL-AGO relevamiento · SEP análisis · OCT informe + evento +- Meta: 20 empresas pioneras +- Precios: Gs. 4.5M (≤50) · 7.5M (≤200) · 12M (≤400) +- GAPs deck vs producto: RE Index no implementado, informe descargable no existe +- Contacto Fundación: Valeria Arce — ddff@fundacionsolidaridad.org.py · +595 991 854333