Pular para o conteúdo principal

Base URL

http://<operator-host>:8090/api/v1
A API REST do ChatCLI AIOps Platform fornece acesso programatico completo a todas as funcionalidades da plataforma, incluindo gerenciamento de incidentes, SLOs, runbooks, aprovações, postmortems, analytics e auditoria.

Autenticação

Todas as requisicoes devem incluir o header X-API-Key com uma chave valida.
curl -H "X-API-Key: seu-token-aqui" \
  http://operator:8090/api/v1/incidents

Roles

RoleDescriçãoPermissoes
viewerSomente leituraGET em todos os endpoints
operatorOperadorGET + POST (acknowledge, approve, reject)
adminAdministradorAcesso completo (GET, POST, PUT, DELETE)
As chaves de API são configuradas no ConfigMap do operator:
apiVersion: v1
kind: ConfigMap
metadata:
  name: chatcli-operator-config
  namespace: chatcli-system
data:
  api-keys: |
    - key: "ck_live_abc123..."
      role: admin
      description: "CI/CD Pipeline"
    - key: "ck_live_def456..."
      role: operator
      description: "NOC Team"

Rate Limiting

PlanoLimiteJanela
Padrão100 reqpor minuto
Operator500 reqpor minuto
Admin1000 reqpor minuto
Headers de rate limit retornados em cada resposta:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1710864000

Formato de Resposta

Todas as respostas seguem o padrão Kubernetes-like:
{
  "apiVersion": "v1",
  "kind": "ResourceType",
  "metadata": {
    "totalCount": 42,
    "page": 1,
    "pageSize": 20
  },
  "items": [...]
}
Para recursos individuais:
{
  "apiVersion": "v1",
  "kind": "Incident",
  "metadata": {
    "name": "INC-20260319-001",
    "namespace": "production",
    "createdAt": "2026-03-19T15:20:00Z"
  },
  "spec": {...},
  "status": {...}
}

Codigos de Erro

CódigoDescrição
400Requisicao invalida — parâmetros ausentes ou mal formatados
401Não autenticado — X-API-Key ausente ou invalida
403Sem permissao — role insuficiente para a operação
404Recurso não encontrado
409Conflito — recurso já existe ou estado invalido para a operação
429Rate limit excedido
500Erro interno do servidor
Exemplo de resposta de erro:
{
  "apiVersion": "v1",
  "kind": "Error",
  "error": {
    "code": 401,
    "message": "API key invalida ou ausente",
    "details": "Inclua o header X-API-Key com uma chave valida"
  }
}

Paginacao

Endpoints que retornam listas suportam paginacao via query parameters:
  • page — Número da pagina (padrão: 1)
  • pageSize — Itens por pagina (padrão: 20, maximo: 100)
curl -H "X-API-Key: $KEY" \
  "http://operator:8090/api/v1/incidents?page=2&pageSize=50"

Versionamento

A API utiliza versionamento via path (/api/v1/). Versoes futuras serão adicionadas como /api/v2/ mantendo compatibilidade retroativa com v1.