Primer commit - Sprint 1
This commit is contained in:
52
ADR-002-stack-tecnologico.md
Normal file
52
ADR-002-stack-tecnologico.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# ADR-002 — Stack tecnológico y residencia de datos
|
||||
|
||||
- **Estado:** Aceptado (stack) · **Abierto** (residencia de datos)
|
||||
- **Fecha:** (completar con fecha de commit)
|
||||
|
||||
---
|
||||
|
||||
## Contexto
|
||||
|
||||
Se necesita un stack moderno, con experiencia móvil fluida, reportes potentes, soberanía de datos y
|
||||
sin lock-in caro. El volumen no justifica una suite SaaS profesional. Se tratan datos sensibles.
|
||||
|
||||
## Decisión (stack)
|
||||
|
||||
| Capa | Tecnología | Razón |
|
||||
|---|---|---|
|
||||
| Frontend | Next.js (App Router) | SSR/SSG, ecosistema maduro, buena DX, móvil sólido |
|
||||
| Form engine | React + react-hook-form + zod | Validación tipada, flexible, sin vendor lock-in |
|
||||
| Backend / datos | Supabase (Postgres + Auth + RLS + Realtime) | Postgres real para reportes SQL, RLS nativo multi-tenant, self-host posible |
|
||||
| Auth | Supabase Auth | Anónimo / OAuth / magic link según encuesta |
|
||||
| Reportes/gráficos | ECharts (preferido) o Recharts | Gratis, potente, tipos de gráfico variados (heatmap, polar, pirámide), no-SaaS |
|
||||
| Deploy app | Vercel | Rápido para arrancar, migrable |
|
||||
|
||||
Supabase es la pieza clave: Postgres real habilita los reportes cruzados (filtrar respuesta A por
|
||||
respuesta B), RLS da el aislamiento multi-tenant que ADR-001 exige, y el modo self-host (Docker)
|
||||
preserva la opción de soberanía total.
|
||||
|
||||
## Decisión ABIERTA — residencia de los datos
|
||||
|
||||
Supabase Cloud aloja datos en regiones US/EU por defecto. Para un producto cuyo requisito explícito
|
||||
es **soberanía** y que trata **datos sensibles de ciudadanos paraguayos**, la ubicación física del
|
||||
dato no es neutral:
|
||||
|
||||
- La Ley 7593/2025 tiene reglas de **transferencia internacional** (requiere nivel de protección
|
||||
adecuado o garantías apropiadas en el país destinatario).
|
||||
- "Soberanía total" sugiere self-host (Supabase en infraestructura propia/regional).
|
||||
|
||||
**Opciones:**
|
||||
1. **Supabase Cloud** (US/EU) — más rápido de arrancar, menos operación, pero transferencia
|
||||
internacional a evaluar legalmente y tensión con "soberanía".
|
||||
2. **Supabase self-host** (Docker, infra propia o proveedor regional) — soberanía real, más operación.
|
||||
3. **Híbrido:** arrancar en Cloud para el POC interno, migrar a self-host antes de producción con
|
||||
datos reales de ciudadanos.
|
||||
|
||||
**No se cierra todavía.** Requiere: (a) decisión del director sobre apetito de operación, (b) input
|
||||
legal sobre transferencia internacional bajo Ley 7593. **Bloqueante para producción, no para v1
|
||||
interno** si v1 corre con datos de prueba/simulados.
|
||||
|
||||
## Consecuencias
|
||||
- (+) Stack migrable; Supabase no es lock-in si se self-hostea.
|
||||
- (−) Mantener la opción self-host implica disciplina (no usar features Cloud-only sin registrarlo).
|
||||
- Registrar en este ADR cuándo y cómo se resuelve la residencia.
|
||||
Reference in New Issue
Block a user