docs: actualizar estado — cierre release v3.0.0 + ETAPA_AUTH + incidente VPS
Sprint 4 completo (widgets Mirada Empresa, tema claro, 4F, 4I/release ya estaban hechos antes de esta sesión). Documenta el incidente de colisión de container_name en el VPS y su recuperación, y el cierre de TECH-DEBT-008 (auth de staff) en esta sesión. Próximos pasos quedan abiertos a decisión del director (dashboard País/Humana, sprint de compliance, o mantenimiento de dependencias).
This commit is contained in:
17
TECH_DEBT.md
17
TECH_DEBT.md
@@ -77,14 +77,15 @@
|
||||
|
||||
## [TECH-DEBT-008] /admin/responses sin autenticación
|
||||
|
||||
- **Estado:** ABIERTO.
|
||||
- **Descripción:** la vista de control `/admin/responses` no tiene auth. Por diseño
|
||||
explícito, excluye preguntas `is_sensitive=true` (14 preguntas de salud/
|
||||
discapacidad) y `text_long`. Para mostrar esas preguntas en la vista, primero
|
||||
implementar un gate de autenticación para staff (Basic Auth con env var como
|
||||
mínimo viable).
|
||||
- **Impacto actual:** ninguno en producción — la URL no está publicada.
|
||||
- **Bloqueante para:** ampliar visibilidad de datos en la vista de control.
|
||||
- **Estado:** RESUELTO (27 jun 2026, ETAPA_AUTH).
|
||||
- **Descripción:** la vista de control `/admin/responses` no tenía auth. Se implementó
|
||||
login con Supabase Auth (`@supabase/ssr`), `middleware.ts` protegiendo
|
||||
`/admin/:path*` y `/dashboard/:path*` con redirect a `/login` sin sesión, y la página
|
||||
migrada de `service_role` a la sesión del usuario (`anon` key + RLS). Sigue
|
||||
excluyendo preguntas `is_sensitive=true` y `text_long` — ese diseño no cambió.
|
||||
- **Nota:** la vista no distingue roles dentro de staff todavía (todo usuario con fila
|
||||
en `user_roles` ve lo mismo). Diferenciar `platform_admin` de `org_admin` ahí sería
|
||||
una etapa nueva, no parte de este cierre.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user