Files
motor-de-encuestas/docs/estado/ESTADO_PROYECTO_JUNIO_2026.md
2026-06-11 16:56:17 -03:00

155 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ESTADO DEL PROYECTO — Datos País sobre el Cuidado
## Documento de continuidad — 11 junio 2026
> Director: Marcos · Metodología: Maria Mersan · Contacto Fundación: Valeria Arce
---
## 1. URLs operativas
| Recurso | URL |
|---|---|
| Formulario Demo | https://economia-cuidado.inqualityhq.com/?s=30000000-0000-0000-0000-000000000001 |
| Formulario InQuality | https://economia-cuidado.inqualityhq.com/?s=30000000-0000-0000-0000-000000000002 |
| Formulario Fundación Solidaridad | https://economia-cuidado.inqualityhq.com/?s=30000000-0000-0000-0000-000000000003 |
| Dashboard — Todos | https://economia-cuidado.inqualityhq.com/dashboard?survey_id=00000000-0000-0000-0000-000000000000 |
| Dashboard — InQuality | https://economia-cuidado.inqualityhq.com/dashboard?survey_id=30000000-0000-0000-0000-000000000002 |
| Dashboard — Fundación Solidaridad | https://economia-cuidado.inqualityhq.com/dashboard?survey_id=30000000-0000-0000-0000-000000000003 |
| Dashboard — Demo | https://economia-cuidado.inqualityhq.com/dashboard?survey_id=30000000-0000-0000-0000-000000000001 |
| Control de respuestas | https://economia-cuidado.inqualityhq.com/admin/responses |
---
## 2. Infraestructura — OPERATIVA ✅
- **App:** Next.js 15.3.8 (CVE-2025-66478 resuelto ✅)
- **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, GFS (3 días diarios + domingos 14 días)
- **Studio:** solo vía SSH tunnel → `ssh -L 3001:localhost:3001 administrator@172.20.5.11`
---
## 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 (validado con datos reales ✅)
- **Nueva pregunta 6.6:** voluntariado en redes de apoyo (Sí/No/Tal vez)
- **2.4 eliminada**, **2.1 → multiple_choice**
- "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" en 1.3 y 1.10
---
## 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 | 15 (8 InQuality + 7 Demo — todas de prueba) |
| answers | ~500 (estimado) |
---
## 5. Dashboard — multitenante operativo ✅
- Selector de empresa en el header: Todos / InQuality / Fundación Solidaridad / Demo
- "Todos" usa UUID especial `00000000-0000-0000-0000-000000000000` → pool agregado
- Implementado via flag en `_dash_responses` (migración `20260611000001`)
- Validado visualmente con n=15: KPIs, heatmap departamental, perfil población ✅
---
## 6. Vista de control /admin/responses
- Tabla plana: una fila por answer, agrupada por submission
- Colapsar/expandir por submission (Client Component island)
- Excluye: `text_long`, `is_sensitive=true` (TECH-DEBT-008 — sin auth)
- Sin columna "Tipo"
---
## 7. Método — Sprint 2 cerrado ✅
- `method/PATTERNS.md` y `method/ANTI_PATTERNS.md` creados en el repo
- C.8 promovido a estable con casos reales del proyecto
- AP.10 y AP.11 documentados con casos reales
---
## 8. 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) |
| TECH-DEBT-009 | Rotar secrets Supabase post-CVE-2025-66478 | SÍ — antes del primer dato real |
---
## 9. Pendientes próxima sesión
1. TECH-DEBT-006 — backup remoto S3
2. TECH-DEBT-009 — rotar secrets Supabase
3. RE Index — confirmar mapeo G1/G2/G4/G5 → códigos seed con Marcos
4. Informe descargable — prometido en deck comercial
5. Onboarding empresas reales — cuando validación esté lista
---
## 10. Decisiones tomadas — no reabrir
1. Supabase en Dokploy siempre via modo Git
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
7. NEXT_PUBLIC_SUPABASE_URL via Build Argument en Dokploy
8. App conecta a https://db.inqualityhq.com
9. /admin/responses no muestra is_sensitive=true sin auth (TECH-DEBT-008)
10. brand_config.org_name alimenta el nombre de empresa en el formulario
11. Organizaciones separadas para cada encuesta
12. conditional_rules referencian códigos de pregunta, no UUIDs
13. UUID cero `00000000-...` es el flag p_all del dashboard
14. Next.js pinneado a versión exacta `15.3.8` (sin caret)
---
## 11. Contexto comercial
- 2 empresas comprometidas para piloto (InQuality y Fundación Solidaridad en espacio de pruebas)
- 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
---
## 12. Prompt para nueva sesión
Pegá al inicio de la nueva conversación:
---
Sos el copiloto técnico del proyecto "Datos País sobre el Cuidado" — plataforma soberana
de encuestas sobre economía del cuidado en Paraguay. Tenemos múltiples sesiones de trabajo.
Stack: Next.js 15.3.8 + Supabase self-hosted + Dokploy v0.29.4.
URL: https://economia-cuidado.inqualityhq.com
Repos en Gitea: git.inquality.com.py/marcos/
El estado completo está en `docs/estado/ESTADO_PROYECTO_JUNIO_2026.md` en el repo.
Los prompts de etapas pasadas están en `sprints/`.
Las reglas no negociables están en `CLAUDE.md`.
Próximos pasos: [COMPLETAR CON LO QUE VAS A HACER]