API: Tenants¶
Visão Geral¶
Gerenciamento de tenants (empresas/organizações). Apenas SuperAdmins têm acesso a estes endpoints.
Endpoints¶
GET /api/tenants¶
Lista todos os tenants.
Autorização: SuperAdmin
Response (200 OK):
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Empresa XYZ",
"slug": "empresa-xyz",
"isActive": true,
"createdAt": "2024-01-15T10:00:00Z"
}
]
GET /api/tenants/{id}¶
Retorna detalhes de um tenant.
Autorização: SuperAdmin
Response (200 OK):
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Empresa XYZ",
"slug": "empresa-xyz",
"settings": null,
"isActive": true,
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-01-15T10:00:00Z"
}
POST /api/tenants¶
Cria um novo tenant.
Autorização: SuperAdmin
Request:
Response (201 Created):
PUT /api/tenants/{id}¶
Atualiza um tenant.
Autorização: SuperAdmin
Request:
DELETE /api/tenants/{id}¶
Remove um tenant e todos os dados associados.
Autorização: SuperAdmin
Response: 204 No Content
Atenção: Esta operação remove em cascata: - Usuários - Agentes - Instâncias - Conversas - Modelos de IA
Validações¶
| Campo | Regra |
|---|---|
| Name | Obrigatório, máx 100 caracteres |
| Slug | Obrigatório, único, apenas letras minúsculas, números e hífens |
Multi-tenancy¶
O sistema implementa isolamento de dados por tenant:
- Query Filters: Todas as entidades com
TenantIdsão filtradas automaticamente - JWT: Token contém
tenant_idclaim - TenantProvider: Extrai
TenantIddo token para cada request
SuperAdmin¶
TenantId = nullno JWT- Acesso a todos os tenants
- Pode gerenciar tenants, usuários globais, configurações do sistema
Erros Comuns¶
| Status | Código | Descrição |
|---|---|---|
| 404 | TENANT_NOT_FOUND | Tenant não encontrado |
| 409 | SLUG_EXISTS | Slug já em uso |
| 403 | FORBIDDEN | Usuário não é SuperAdmin |