# ADR-0002: Multi-tenancy con esquema compartido

- Estado: Propuesto
- Fecha: 2026-07-12

## Contexto

El requisito inicial especifica MySQL y cientos o miles de clientes. MySQL no dispone de Row Level Security equivalente a PostgreSQL.

## Decisión propuesta

Usar una base y esquema compartidos, `tenant_id` obligatorio, `TenantContext` no opcional, constraints e índices compuestos, autorización por recurso y pruebas negativas para cada endpoint. Preparar routing de conexiones para planes con base dedicada.

## Alternativas

- PostgreSQL con RLS: ofrece defensa adicional y debe reevaluarse antes del Sprint 1.
- Esquema/base por tenant: mayor aislamiento, pero eleva migraciones y operación para miles de tenants.

## Consecuencias

Es eficiente y económico, pero una omisión en aplicación puede causar exposición cruzada. Este ADR debe ser aceptado explícitamente antes del Sprint 1.

