docs: estado del proyecto 11 junio 2026

This commit is contained in:
markosbenitez
2026-06-11 16:56:17 -03:00
parent edf82bf7fd
commit cfd2eb0624
3 changed files with 279 additions and 114 deletions

View File

@@ -0,0 +1,155 @@
# 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]