Skip to main content
A API REST do AIOps Platform permite integrar qualquer sistema externo com a plataforma de operações autônomas do ChatCLI. Todos os endpoints seguem convenções RESTful e retornam JSON. A API é servida pelo Web Dashboard na porta 8090 (configurável via CHATCLI_AIOPS_PORT).

Autenticação

Todas as requisições autenticadas devem incluir o header X-API-Key:
As chaves são configuradas via ConfigMap chatcli-api-keys no namespace do operator:
Quando nenhuma chave de API está configurada (ConfigMap ausente), a API opera em modo dev — todas as requisições são permitidas sem autenticação.
Nunca use modo dev em produção. Configure ao menos uma chave de API antes de expor o serviço.
A API aplica rate limiting de 100 requisições por minuto por IP.Quando o limite é excedido, a API retorna:

Formato de Resposta

Todas as respostas seguem o envelope padrão: Sucesso (item único):
Sucesso (lista com paginação):
Erro:

Health

Endpoints de health check não requerem autenticação.

GET /healthz

Verifica se o servidor está vivo.
none
Nenhuma autenticação necessária.
Resposta 200 OK:

GET /readyz

Verifica se o servidor está pronto para receber tráfego (conectado ao cluster, reconcilers ativos). Resposta 200 OK:
Resposta 503 Service Unavailable:

Incidents

Gerenciamento de incidentes detectados pelo pipeline AIOps.

GET /api/v1/incidents

Lista todos os incidentes com filtros e paginação. Role mínimo: viewer
string
Filtrar por severidade. Valores: critical, high, medium, low.
string
Filtrar por estado. Valores: detected, analyzing, remediating, resolved, escalated.
string
Filtrar por namespace Kubernetes.
integer
default:"1"
Número da página.
integer
default:"20"
Itens por página. Máximo: 100.
string
Data/hora de início no formato ISO 8601. Ex: 2026-03-01T00:00:00Z.
string
Data/hora de fim no formato ISO 8601.
Resposta 200 OK:

GET /api/v1/incidents/:name

Retorna detalhes completos de um incidente específico. Role mínimo: viewer
string
required
Nome do incidente (Issue CR name).
string
default:"default"
Namespace do incidente.
Resposta 200 OK:

POST /api/v1/incidents/:name/acknowledge

Marca um incidente como reconhecido (acknowledged). Role mínimo: operator
string
required
Nome do incidente.
Resposta 200 OK:

POST /api/v1/incidents/:name/snooze

Suspende notificações de um incidente por uma duração especificada. Role mínimo: operator
string
required
Nome do incidente.
string
required
Duração do snooze. Formato Go duration: 30m, 1h, 2h30m, 24h.
Request body:
Resposta 200 OK:

GET /api/v1/incidents/:name/timeline

Retorna a timeline completa de um incidente — desde a detecção até a resolução. Role mínimo: viewer
string
required
Nome do incidente.
Resposta 200 OK:

GET /api/v1/incidents/:name/remediation

Retorna detalhes da remediação de um incidente, incluindo o plano, ações executadas e resultados. Role mínimo: viewer
string
required
Nome do incidente.
Resposta 200 OK:

SLOs

Gerenciamento de Service Level Objectives.

GET /api/v1/slos

Lista todos os SLOs configurados. Role mínimo: viewer Resposta 200 OK:

GET /api/v1/slos/:name

Retorna detalhes de um SLO específico. Role mínimo: viewer
string
required
Nome do SLO.
Resposta 200 OK:

GET /api/v1/slos/:name/budget

Retorna o error budget detalhado de um SLO. Role mínimo: viewer
string
required
Nome do SLO.
Resposta 200 OK:

Runbooks

CRUD de runbooks de remediação.

GET /api/v1/runbooks

Lista todos os runbooks disponíveis. Role mínimo: viewer Resposta 200 OK:

GET /api/v1/runbooks/:name

Retorna detalhes de um runbook específico. Role mínimo: viewer
string
required
Nome do runbook.
Resposta 200 OK:

POST /api/v1/runbooks

Cria um novo runbook. Role mínimo: admin Request body:
Resposta 201 Created:

PUT /api/v1/runbooks/:name

Atualiza um runbook existente. Role mínimo: admin
string
required
Nome do runbook a atualizar.
Request body: Mesmo formato do POST (corpo completo do RunbookSpec). Resposta 200 OK:

DELETE /api/v1/runbooks/:name

Remove um runbook. Role mínimo: admin
string
required
Nome do runbook a remover.
Runbooks auto-gerados (platform.chatcli.io/auto-generated=true) podem ser recriados automaticamente pela IA em futuras remediações.
Resposta 200 OK:

Approvals

Gerenciamento de aprovações para ações que requerem intervenção humana.

GET /api/v1/approvals

Lista aprovações pendentes ou históricas. Role mínimo: viewer
string
Filtrar por estado. Valores: pending, approved, rejected, expired.
Resposta 200 OK:

GET /api/v1/approvals/:name

Retorna detalhes de uma aprovação específica. Role mínimo: viewer
string
required
Nome da aprovação.
Resposta 200 OK:

POST /api/v1/approvals/:name/approve

Aprova uma ação pendente. Role mínimo: operator
string
required
Nome da aprovação.
string
required
Identificador de quem aprova.
string
Motivo da aprovação.
Request body:
Resposta 200 OK:

POST /api/v1/approvals/:name/reject

Rejeita uma ação pendente. Role mínimo: operator
string
required
Nome da aprovação.
string
required
Identificador de quem rejeita.
string
required
Motivo da rejeição.
Request body:
Resposta 200 OK:

PostMortems

Consulta e gerenciamento de post-mortems gerados automaticamente.

GET /api/v1/postmortems

Lista todos os post-mortems. Role mínimo: viewer Resposta 200 OK:

GET /api/v1/postmortems/:name

Retorna detalhes completos de um post-mortem. Role mínimo: viewer
string
required
Nome do post-mortem.
Resposta 200 OK:

POST /api/v1/postmortems/:name/review

Marca um post-mortem como em revisão. Role mínimo: operator
string
required
Nome do post-mortem.
Resposta 200 OK:

POST /api/v1/postmortems/:name/close

Fecha um post-mortem após revisão. Role mínimo: operator
string
required
Nome do post-mortem.
Resposta 200 OK:

Analytics

Métricas agregadas e tendências da plataforma AIOps.

GET /api/v1/analytics/summary

Retorna um resumo geral da plataforma. Role mínimo: viewer Resposta 200 OK:

GET /api/v1/analytics/mttd

Retorna o Mean Time to Detect (tempo médio de detecção). Role mínimo: viewer
string
default:"30d"
Janela de tempo. Valores: 7d, 14d, 30d, 90d.
Resposta 200 OK:

GET /api/v1/analytics/mttr

Retorna o Mean Time to Resolve (tempo médio de resolução). Role mínimo: viewer
string
default:"30d"
Janela de tempo. Valores: 7d, 14d, 30d, 90d.
Resposta 200 OK:

GET /api/v1/analytics/trends

Retorna tendências de incidentes ao longo do tempo. Role mínimo: viewer Resposta 200 OK:

GET /api/v1/analytics/top-resources

Retorna os recursos com mais incidentes. Role mínimo: viewer Resposta 200 OK:

GET /api/v1/analytics/remediation-stats

Retorna estatísticas de remediação. Role mínimo: viewer Resposta 200 OK:

Clusters

Informações sobre clusters Kubernetes gerenciados.

GET /api/v1/clusters

Lista todos os clusters monitorados. Role mínimo: viewer Resposta 200 OK:

GET /api/v1/clusters/:name

Retorna detalhes de um cluster específico. Role mínimo: viewer
string
required
Nome do cluster.
Resposta 200 OK:

GET /api/v1/clusters/global-status

Retorna o status global de todos os clusters. Role mínimo: viewer Resposta 200 OK:

Audit

Log de auditoria de todas as ações na plataforma.

GET /api/v1/audit

Lista eventos de auditoria com filtros. Role mínimo: viewer
string
Tipo de evento. Valores: incident.created, incident.acknowledged, incident.resolved, incident.escalated, remediation.executed, remediation.failed, approval.approved, approval.rejected, runbook.created, runbook.deleted, api.access.
string
Filtrar por severidade do evento de auditoria. Valores: info, warning, critical.
string
Filtrar por nome do recurso afetado.
string
Data/hora de início (ISO 8601).
string
Data/hora de fim (ISO 8601).
integer
default:"1"
Número da página.
integer
default:"50"
Itens por página. Máximo: 200.
Resposta 200 OK:

GET /api/v1/audit/export

Exporta o log de auditoria completo em formato CSV ou JSON. Role mínimo: admin
string
default:"json"
Formato de exportação. Valores: json, csv.
string
Data/hora de início (ISO 8601).
string
Data/hora de fim (ISO 8601).
Resposta 200 OK (JSON):
Resposta 200 OK (CSV): O header Content-Type será text/csv e o body conterá o CSV com colunas: id,timestamp,type,severity,actor,resource,namespace,description

Códigos de Erro


SDKs e Integração

curl

Todos os exemplos nesta página usam curl. Copie e adapte.

Go Client

Use o pacote operator/pkg/client para integração nativa em Go.

Webhook

Configure notificações via webhook no Instance CR (spec.notifications).

Grafana

Consulte Web Dashboard e Grafana para dashboards pré-configurados.