Reten Docs
Tenants

Configurar Tenant

Crie um novo tenant com seu próprio esquema de banco de dados.

POST /api/tenant/setup

Cria um novo tenant, provisiona um esquema PostgreSQL dedicado, executa as migrações do tenant e cria um usuário administrador para o tenant.

Auth: Obrigatória — permissão tenant:create

Headers

HeaderObrigatórioValor
AuthorizationSimBearer <access_token>

Corpo da Requisição

CampoTipoObrigatórioDescrição
namestringSimNome do tenant
slugstringSimSlug amigável para URL (único)
adminEmailstringSimE-mail do administrador do tenant
adminPasswordstringSimSenha do administrador do tenant
adminFirstNamestringSimPrimeiro nome do administrador
adminLastNamestringSimSobrenome do administrador

Exemplo

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()

Resposta 201 Created

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

O que acontece durante a configuração

  1. Cria o registro do tenant no esquema público
  2. Cria (ou vincula) o usuário administrador
  3. Cria o esquema PostgreSQL tenant_{id}
  4. Executa todas as migrações do tenant no novo esquema
  5. Vincula o usuário administrador ao tenant
  6. Popula os catálogos de activity-config do tenant a partir das constantes padrão do backend — incluindo user_retention_status_configs (os 12 padrões de status de retenção), as configs de activity-reason e as de task-result-type.

Respostas de Erro

StatusDescrição
400Erro de validação
409O slug já existe