Profile Server API
Endpoints

Tenants

CRUD de tenants — instâncias de um App para um Customer.

Instância de um App para um Customer. Base path: /api/tenants · autenticação de usuário.

MétodoRotaScopeResourceSucesso
POST/api/tenantscreateresource:tenants201
GET/api/tenantsreadresource:tenants200
GET/api/tenants/:idreadresource:tenants_id200
PUT/api/tenants/:idupdateresource:tenants_id200
DELETE/api/tenants/:iddeleteresource:tenants_id204

Criar tenant

POST /api/tenants — vincula um tenant a um customer e a um app.

Corpo

CampoTipoObrigatórioRegras
customerIduuidsimCustomer existente (404 se não existir)
appIduuidsimApp existente (404 se não existir)
namestringsimmín. 1 caractere
activebooleannãopadrão true
metadataobjectnãomapa livre; pode ser null
keycloakClientIdstringnãoclient Keycloak; pode ser null
allowedScopesstring[]nãoescopos app-to-app; ou null
curl -X POST http://localhost:3000/api/tenants \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "customerId": "c1b2c3d4-e5f6-4789-a123-456789abcdef",
    "appId": "a1b2c3d4-e5f6-4789-a123-456789abcdef",
    "name": "Tenant Exemplo",
    "active": true,
    "allowedScopes": ["cooperatives:read"]
  }'

201 Created

{
  "id": "t1b2c3d4-e5f6-4789-a123-456789abcdef",
  "customerId": "c1b2c3d4-e5f6-4789-a123-456789abcdef",
  "appId": "a1b2c3d4-e5f6-4789-a123-456789abcdef",
  "name": "Tenant Exemplo",
  "active": true,
  "metadata": null,
  "allowedScopes": ["cooperatives:read"]
}

O keycloakClientId conecta o tenant ao fluxo de autenticação app-to-app: o azp do token de serviço é resolvido para o tenant por esse campo.

404 Not Found — o customerId ou o appId informado não existe. O use case valida ambas as referências antes de criar o tenant.


Listar tenants

GET /api/tenants — lista paginada (page, limit).


Obter tenant por id

GET /api/tenants/:id404 se não existir.


Editar tenant

PUT /api/tenants/:id — atualização parcial.

CampoTipoRegras
namestringmín. 1 caractere
activeboolean
metadataobjectou null
keycloakClientIdstringou null
allowedScopesstring[]ou null

Retorna 200; 404 se não existir.


Remover tenant

DELETE /api/tenants/:id — retorna 204 No Content.