Estructura del método + fundación de datos Sprint 1 (pre-ejecución)
This commit is contained in:
16
CLAUDE.md
16
CLAUDE.md
@@ -40,6 +40,20 @@ discapacidad) → la privacidad no es una feature, es una restricción de diseñ
|
||||
- **v1 corre solo Modo A.** El campo existe pero la lógica dual no se construye todavía.
|
||||
8. **La empresa nunca accede a dato individual crudo.** Solo recibe agregados/dashboards autorizados
|
||||
por encima del umbral. (Coherente con Modo A + k-anonimato.)
|
||||
9. **Manejo de API keys de Supabase — transversal y crítico.** La `anon` key es pública y **respeta
|
||||
RLS**: es la única que puede tocar el frontend/cliente. La `service_role` key **bypassa RLS por
|
||||
completo** y por lo tanto saltea k-anonimato, consentimiento y todo el modelo de ADR-001. Reglas:
|
||||
- La `service_role` **NUNCA** va al frontend, al cliente, a un artefacto público ni a git. Solo
|
||||
vive server-side (Edge Functions / backend), cargada desde variable de entorno.
|
||||
- `.env` y `.env.*` siempre en `.gitignore`. Una `service_role` en el historial de git es un
|
||||
incidente de seguridad aunque el repo sea privado → rotar la key de inmediato.
|
||||
- Toda operación de cara al respondente o a la empresa usa `anon` key + RLS. Si algo "necesita"
|
||||
`service_role` para funcionar en el cliente, está mal diseñado: revisar las policies, no exponer
|
||||
la key.
|
||||
10. **El flujo del respondente NUNCA se ata a un IdP / SSO.** Encuestas anónimas = sin login, sin
|
||||
Keycloak, sin cookie de sesión identificable. El SSO (Keycloak) es solo para staff interno. RLS
|
||||
lee claims por nombre (`org_id`, `role`) para que el emisor del token sea intercambiable; nunca
|
||||
basar RLS en `user_metadata` (modificable por el usuario). (Ver ADR-004.)
|
||||
|
||||
---
|
||||
|
||||
@@ -114,4 +128,4 @@ importar el tamaño técnico.
|
||||
- **Nombre/marca del producto** (Nivel 3).
|
||||
- **Residencia de datos**: Supabase Cloud vs self-host (ADR-002).
|
||||
- **`CONVENTIONS.md`**: formato de cifras, idioma de la UI, tono de los mensajes. Apenas una
|
||||
convención se pregunte 2 veces, documentarla acá (anti-patrón AP.4).
|
||||
convención se pregunte 2 veces, documentarla acá (anti-patrón AP.4).
|
||||
Reference in New Issue
Block a user