# US-MGN-001-004-001: Crear y Configurar Tenant **RF Asociado:** [RF-MGN-001-004](../../02-modelado/requerimientos-funcionales/mgn-001/RF-MGN-001-004-multi-tenancy.md) **Módulo:** MGN-001 - Fundamentos **Epic:** Multi-Tenancy **Prioridad:** P0 (MVP) **Story Points:** 5 **Sprint:** Sprint 3 **Estado:** Ready for Development **Fecha:** 2025-11-24 --- ## User Story **Como** super administrador del sistema, **Quiero** crear y configurar nuevos tenants (clientes), **Para** aislar datos entre diferentes organizaciones en el sistema multi-tenant. --- ## Criterios de Aceptación ### Escenario 1: Crear tenant nuevo **Cuando** creo tenant con nombre, subdomain "acme", plan, límites, **Entonces** sistema crea registro en auth.tenants, crea schema "tenant_acme", ejecuta migrations, crea usuario administrador inicial. ### Escenario 2: Subdomain duplicado **Cuando** intento crear tenant con subdomain existente, **Entonces** retorna error 400 "Subdomain ya existe". ### Escenario 3: Tenant isolation verificado **Cuando** usuario de tenant A intenta acceder a datos de tenant B, **Entonces** sistema bloquea acceso via RLS policies. --- ## Reglas de Negocio - **RN-1:** Subdomain único globalmente (ej: acme.erp.com) - **RN-2:** Cada tenant tiene su propio schema PostgreSQL - **RN-3:** Migrations se ejecutan automáticamente en schema del tenant - **RN-4:** Al crear tenant: crear usuario admin default --- ## Tareas Técnicas ### Backend - [ ] POST /api/v1/admin/tenants - Crear tenant (solo super admin) - [ ] TenantsService.createTenant(name, subdomain, plan) - [ ] Crear schema PostgreSQL: `CREATE SCHEMA tenant_{subdomain}` - [ ] Ejecutar migrations en nuevo schema - [ ] Crear usuario administrador inicial - [ ] Tests (8 casos) --- ## Estimación: 5 SP (9 horas) --- ## Referencias - [RF-MGN-001-004](../../02-modelado/requerimientos-funcionales/mgn-001/RF-MGN-001-004-multi-tenancy.md) - [ET-BACKEND-MGN-001-004](../../02-modelado/especificaciones-tecnicas/backend/mgn-001/ET-BACKEND-MGN-001-004-multi-tenancy.md)