Skip to main content
POST
string
obrigatório
Nome da solicitação de aprovação (ex.: approval-payment-service-oom-kill-1773933600-plan-1)
string
Namespace do Kubernetes. Se omitido, todos os namespaces são pesquisados (primeira ocorrência).
string
obrigatório
Nome de quem aprova, registrado junto com a identidade da API key. Valor vazio retorna 400.
string
Justificativa opcional
A chamada registra uma decisão numa solicitação Pending, do mesmo jeito que a annotation platform.chatcli.io/approve: ela adiciona uma entrada a status.decisions com o aprovador, o motivo e um timestamp. Ela nunca define status.state por conta própria. O ApprovalReconciler então avalia as decisões contra a regra: quando as aprovações necessárias chegam (uma no manual, requiredApprovers aprovadores distintos no quorum) e a change window está aberta, a solicitação vira Approved e o RemediationPlan que aguardava passa para Executing. A resposta volta logo depois de a decisão ser registrada, então costuma ainda mostrar Pending, com a nova entrada em decisions e em approvedBy. O item vem em spec e em status, mais resourceMeta.
  • Identidade do aprovador. O aprovador é gravado como <approver> (api-key: <identidade>), onde a identidade é o name da entrada da API key, senão o description, senão uma impressão digital key-<hash> (dev-mode no dev mode). O nome digitado tem os espaços das pontas removidos, perde caracteres de controle e é cortado em 128 caracteres.
  • O quórum conta API keys. Duas aprovações feitas com a mesma chave contam uma vez, sejam quais forem os nomes digitados, e a mesma chave não decide duas vezes sobre uma solicitação. Uma chave compartilhada, ou o dev mode, não satisfaz requiredApprovers: 2: dê a cada aprovador a sua própria chave.
  • 409 quando a solicitação não está mais Pending (já aprovada, rejeitada ou expirada), ou quando a mesma chave já registrou uma decisão nela.
  • Change window. Uma aprovação registrada fora da janela da regra é mantida; a solicitação vira Approved quando a janela abre e não expira enquanto espera. Veja Fluxo de Aprovação.

Autorizações

X-API-Key
string
header
obrigatório

API key sent in the X-API-Key header. Keys are read from the Secret chatcli-operator-secrets, key api-keys (fallback: ConfigMap chatcli-operator-config, key api-keys) in the operator namespace, as a YAML list of {key, role, name, description} (name is the identity recorded on approval decisions); the operator chart creates it only with apiKeys.create: true. Roles: viewer < operator < admin — any other role string is denied everywhere. Changes are picked up within about 30 seconds; deleting both the Secret and the ConfigMap revokes every key. With no keys configured every /api/ call returns 401, unless CHATCLI_OPERATOR_DEV_MODE=true, which grants admin without a key (development only).

Parâmetros de caminho

name
string
obrigatório

ApprovalRequest name.

Exemplo:

"payment-oom-plan-1-approval"

Parâmetros de consulta

namespace
string

Namespace of the object. When omitted, all namespaces are searched and the first object with this name is used.

Corpo

application/json
approver
string
obrigatório

Name of the person deciding, recorded next to the identity of the API key. Required (400 when empty); control characters are dropped and it is cut at 128 characters.

Exemplo:

"sre-oncall"

reason
string

Why.

Resposta

Decision recorded

apiVersion
string
Exemplo:

"v1"

kind
string
Exemplo:

"ApprovalRequest"

spec
object
status
object

The same approval object as spec.

resourceMeta
object