Pular para o conteúdo

Autenticação

Desenvolvedor

O Prodgy suporta dois métodos de autenticação para acesso a API:

MétodoUso recomendadoHeader
Token de APIIntegrações externas e automaçõesX-API-Token: prodgy_...
JWTSessões de usuário autenticadoAuthorization: Bearer <jwt>

Para integrações externas, utilize sempre tokens de API.


Usuários Super Admin podem sobrescrever o contexto de organização enviando o header X-Organization-Id em qualquer request. Isso permite operar no contexto de uma organização diferente da default do seu perfil.

X-Organization-Id: 6480d1ad-5535-40e1-95b0-05774d3dc4b0

O header deve conter um UUID válido. Ele é injetado automaticamente pelo frontend do Prodgy quando um Super Admin seleciona uma organização no dropdown da sidebar.


Os tokens seguem o formato:

prodgy_<caracteres_aleatórios>

Exemplo: prodgy_k8d9Jf2kL9mP3qR4sT5uV6wX7yZ8aB9c

Inclua o token em uma das seguintes formas no header da requisição:

X-API-Token: prodgy_k8d9Jf2kL9mP3qR4sT5uV6wX7yZ8aB9c

ou

Authorization: Bearer prodgy_k8d9Jf2kL9mP3qR4sT5uV6wX7yZ8aB9c
curl -X GET https://<instância>/api/agent-base/product/<product_id> \
  -H "X-API-Token: prodgy_k8d9Jf2kL9mP3qR4sT5uV6wX7yZ8aB9c"

Os seguintes endpoints são acessíveis via Token de API, agrupados por categoria:

EndpointMétodosDescrição
/api/agent-baseGET, POST, DELETEListar, instalar e desinstalar agentes de um workspace
/api/agent-base/{id}/executionsGETListar execuções de um agente específico
/api/agent-base/triggersGET, POSTListar e executar triggers manuais
EndpointMétodosDescrição
/api/workflow/executePOSTExecutar um teste de workflow
/api/workflow/{executionId}/statusGETObter status da execução
/api/workflow/{executionId}/eventsGETStream de eventos da execução (SSE)
/api/workflow/{executionId}/stopPOSTParar uma execução em andamento
/api/workflow/{executionId}/pausePOSTPausar uma execução em andamento
/api/workflow/{executionId}/continuePOSTRetomar uma execução pausada
EndpointMétodosDescrição
/api/workflow-baseGET, POST, PUT, DELETEGerenciar definições de workflow base
EndpointMétodosDescrição
/api/nodes/executePOSTExecutar um node individual
/api/nodes/status/{nodeId}GETObter status da execução do node
EndpointMétodosDescrição
/api/integrations-baseGET, POST, PUT, DELETEGerenciar configurações de integrações
/api/external/integrationsGETListar integrações ativas da organização
EndpointMétodosDescrição
/api/knowledge-base/{productId}GETListar bases de conhecimento de um workspace
/api/knowledge-base/embeddingsGET, POST, PUT, DELETEGerenciar embeddings e busca semântica
/api/knowledge-base/storageGET, POST, PUT, DELETEUpload, download e gerenciamento de arquivos
EndpointMétodosDescrição
/api/assistant/chatPOSTEnviar mensagem e receber resposta da IA (streaming)
/api/assistant/chat/historyGETRecuperar histórico de sessão de chat
EndpointMétodosDescrição
/api/api-token/auth/validateGETValidar o token de API atual

Tokens são criados pela interface do Prodgy ou via API (com autenticação JWT).

  1. Acesse as configurações do workspace (botão de engrenagem na navbar)
  2. Clique na aba Tokens de API
  3. Clique em Criar Token
  4. Informe o nome e, opcionalmente, uma data de expiração
  5. Copie o token gerado — ele é exibido apenas uma vez
POST /api/api-tokens
Content-Type: application/json
Authorization: Bearer <jwt_token>

{
  "product_id": "644c3604-4fd3-4681-846b-8ae14f18f00d",
  "token_name": "Minha Integração",
  "expires_at": "2026-12-31T23:59:59Z"
}

Resposta (201):

{
  "success": true,
  "message": "API token created successfully",
  "data": {
    "id": "uuid",
    "token": "prodgy_...",
    "token_name": "Minha Integração",
    "token_prefix": "prodgy_k8...",
    "product_id": "644c3604-...",
    "expires_at": "2026-12-31T23:59:59Z",
    "created_at": "2026-03-05T10:00:00Z"
  }
}

Para verificar se um token é válido:

GET /api/api-token/auth/validate
X-API-Token: prodgy_<token>

Resposta (200) — Token válido:

{
  "success": true,
  "authType": "api_token",
  "userId": "uuid",
  "productId": "uuid",
  "organizationId": "uuid",
  "apiTokenId": "uuid"
}

Resposta (401) — Token inválido:

{
  "error": "Unauthorized",
  "message": "Invalid API token"
}

GET /api/api-tokens/product/{productId}
Authorization: Bearer <jwt_token>
PUT /api/api-tokens/{id}
Content-Type: application/json
Authorization: Bearer <jwt_token>

{
  "token_name": "Novo Nome",
  "is_active": true,
  "expires_at": "2027-06-30T23:59:59Z"
}
POST /api/api-tokens/{id}/revoke
Authorization: Bearer <jwt_token>
POST /api/api-tokens/{id}/renew
Content-Type: application/json
Authorization: Bearer <jwt_token>

{
  "expires_at": "2027-12-31T23:59:59Z"
}
POST /api/api-tokens/{id}/regenerate
Authorization: Bearer <jwt_token>
DELETE /api/api-tokens/{id}
Authorization: Bearer <jwt_token>

Cada uso de token é registrado automaticamente. Para consultar os logs:

GET /api/api-tokens/{id}/audit-logs?limit=100
Authorization: Bearer <jwt_token>

Resposta:

{
  "success": true,
  "data": [
    {
      "action": "used",
      "ip_address": "192.168.1.100",
      "user_agent": "curl/7.88.0",
      "endpoint": "/api/agent-base/product/...",
      "status_code": 200,
      "created_at": "2026-03-05T14:30:00Z"
    }
  ]
}
AçãoDescrição
createdToken foi criado
usedToken foi utilizado em uma requisição
revokedToken foi revogado
expiredToken expirou
renewedExpiração do token foi estendida
regeneratedNovo token foi gerado a partir do anterior

  • Utilize HTTPS em todas as requisições em produção
  • Nunca exponha tokens em repositórios de código ou logs públicos
  • Configure datas de expiração para tokens temporários
  • Rotacione tokens periodicamente usando a função de regenerar
  • Monitore os logs de auditoria para detectar acessos suspeitos
  • Utilize um token por integração para facilitar o rastreamento