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
| Encabezado | Requerido | Valor |
|---|---|---|
Authorization | Sí | Bearer <access_token> |
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name | string | Sí | Nombre del tenant |
slug | string | Sí | Slug amigable para URL (único) |
adminEmail | string | Sí | Correo electrónico del administrador del tenant |
adminPassword | string | Sí | Contraseña del administrador del tenant |
adminFirstName | string | Sí | Nombre del administrador |
adminLastName | string | Sí | Apellido 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
- Crea el registro del tenant en el esquema público
- Crea (o vincula) el usuario administrador
- Crea el esquema PostgreSQL
tenant_{id} - Ejecuta todas las migraciones del tenant en el nuevo esquema
- Vincula el usuario administrador al tenant
Respuestas de Error
| Estado | Descripción |
|---|---|
400 | Error de validación |
409 | El slug ya existe |