API Management
1. Visão Geral
A tela de API Management gerencia as rotas, consumidores e autenticação das APIs expostas pela plataforma — o painel de administração do API Gateway da Nukk.
Um API Gateway é a porta de entrada única para as APIs de um sistema: em vez de cada Flow ou Backend App expor seu próprio endpoint diretamente, todas as chamadas passam por ele, que aplica de forma centralizada segurança (autenticação, API Keys), controle de tráfego (rate limit), timeouts e roteamento para o destino correto. Isso evita expor a infraestrutura interna diretamente à internet, padroniza autenticação entre serviços diferentes, e permite trocar/mover o destino real de uma API sem impactar quem a consome.
A tela tem três abas:
- Routes — mapeia uma URL pública para um Flow ou Backend App.
- Consumers — credenciais (API Keys) e limites de uso de quem consome as rotas protegidas por API Key.
- Auth — configurações de autenticação do gateway.
2. Expondo uma API
Para expor um Flow ou Backend App como API, dois passos costumam ser necessários:
- Criar uma Route (aba Routes) — define a URL pública, os métodos HTTP permitidos e para qual Flow/Backend App a chamada deve ser encaminhada.
- Criar um Consumer (aba Consumers) — necessário apenas se a rota tiver o
Security Typeconfigurado como API Key. O Consumer representa quem vai consumir a API e recebe a chave (API Key) usada para autenticar as chamadas.
Se a rota não usa API Key como tipo de segurança, o passo do Consumer não é necessário.
3. Aba Routes
Lista as rotas cadastradas, filtráveis por Squad e Environment. A tabela mostra: Route, URI Prefix, Target, Security Type, Last Update, Status e Actions.
Criando uma Route
O formulário New Route tem os seguintes campos:
| Campo | Descrição |
|---|---|
| Route Name | Nome de identificação da rota. |
| Target Type | Tipo de destino da rota: Flow ou Backend App. |
| Flow / Backend App | Seleção do Flow ou Backend App específico que receberá as chamadas, de acordo com o Target Type escolhido. |
| URI Prefix | Prefixo da URL pública da rota (ex: /api/v1/example). |
| HTTP Methods | Métodos HTTP permitidos nessa rota (ex: GET, POST, DELETE, PATCH, PUT, OPTIONS). |
| Security Type | Tipo de segurança aplicado à rota. Ex: API Key — exige que a chamada informe uma API Key válida de um Consumer cadastrado. |
Timeouts (advanced) — opcionais; se deixados em branco, usam o padrão do gateway (~60s). Valores em milissegundos:
| Campo | Descrição |
|---|---|
| Read timeout (ms) | Tempo máximo de espera pela resposta do destino (Flow/Backend App). |
| Send timeout (ms) | Tempo máximo para enviar a requisição até o destino. |
| Connect timeout (ms) | Tempo máximo para estabelecer a conexão com o destino. |
4. Aba Consumers
Lista os consumidores de API cadastrados, filtráveis por Squad e Environment. A tabela mostra: Consumer, API Key, Rate Limit by Second, Rate Limit by Minute, Last Update, Status e Actions.
Cada Consumer representa uma credencial de acesso, usada para autenticar chamadas em rotas com Security Type = API Key.
| Coluna | Descrição |
|---|---|
| Consumer | Nome do consumidor. |
| APIKEY | Chave de API gerada para esse consumidor, usada nas requisições. |
| Rate Limit by Second | Limite de requisições por segundo permitido para esse consumidor. |
| Rate Limit by Minute | Limite de requisições por minuto permitido para esse consumidor. |
| Status | Status do consumidor (ex: INSTALLING durante o provisionamento). |
TODO: detalhar o formulário de criação de um New Consumer (campos e como configurar os rate limits).
5. Aba Auth
TODO: detalhar as opções de configuração de autenticação disponíveis nessa aba.
6. Perguntas frequentes
Toda rota precisa de um Consumer?
Não — só é necessário criar um Consumer quando a rota usa Security Type = API Key. Outros tipos de segurança podem dispensar esse passo.
Dá para ter mais de um Consumer usando a mesma rota? TODO: confirmar se múltiplos consumers podem acessar a mesma rota com limites diferentes.
O que acontece se os timeouts não forem configurados? O gateway usa o valor padrão (~60 segundos) para leitura, envio e conexão.