erp-core/docs/05-user-stories/mgn-001/US-MGN-001-004-001-crear-tenant.md

2.0 KiB

US-MGN-001-004-001: Crear y Configurar Tenant

RF Asociado: RF-MGN-001-004 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