Reten Docs
Tenants

Configurar Tenant

Crear un nuevo tenant con su propio esquema de base de datos.

POST /api/tenant/setup

Crea un nuevo tenant, aprovisiona un esquema PostgreSQL dedicado, ejecuta las migraciones del tenant y crea un usuario administrador para el tenant.

Auth: Requerida — permiso CREATE_TENANT

Encabezados

EncabezadoRequeridoValor
AuthorizationBearer <access_token>

Cuerpo de la Solicitud

CampoTipoRequeridoDescripción
namestringNombre del tenant
slugstringSlug amigable para URL (único)
adminEmailstringCorreo electrónico del administrador del tenant
adminPasswordstringContraseña del administrador del tenant
adminFirstNamestringNombre del administrador
adminLastNamestringApellido del administrador

Ejemplo

curl -X POST https://api.reten.ai/api/tenant/setup \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "slug": "acme-corp",
    "adminEmail": "admin@acme.com",
    "adminPassword": "SecurePass123!",
    "adminFirstName": "Acme",
    "adminLastName": "Admin"
  }'
const response = await fetch("https://api.reten.ai/api/tenant/setup", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name: "Acme Corp",
    slug: "acme-corp",
    adminEmail: "admin@acme.com",
    adminPassword: "SecurePass123!",
    adminFirstName: "Acme",
    adminLastName: "Admin",
  }),
});
const tenant = await response.json();
import requests

response = requests.post(
    "https://api.reten.ai/api/tenant/setup",
    headers={"Authorization": "Bearer <token>"},
    json={
        "name": "Acme Corp",
        "slug": "acme-corp",
        "adminEmail": "admin@acme.com",
        "adminPassword": "SecurePass123!",
        "adminFirstName": "Acme",
        "adminLastName": "Admin",
    },
)
tenant = response.json()

Respuesta 201 Created

{
  "id": "660e8400-e29b-41d4-a716-446655440000",
  "name": "Acme Corp",
  "slug": "acme-corp"
}

Qué ocurre durante la configuración

  1. Crea el registro del tenant en el esquema público
  2. Crea (o vincula) el usuario administrador
  3. Crea el esquema PostgreSQL tenant_{id}
  4. Ejecuta todas las migraciones del tenant en el nuevo esquema
  5. Vincula el usuario administrador al tenant

Respuestas de Error

EstadoDescripción
400Error de validación
409El slug ya existe