Pular para a documentação
DocumentaçãoExportação do registro

Exportação do registro

Baixe o registro assinado em JSON Lines ou receba os eventos escolhidos conforme acontecem.

Nesta página

Toda chamada, decisão e mudança vai para o seu registro. Leve uma cópia completa quando quiser, para o seu SIEM ou o seu arquivo.

Baixe pelo console

Abra Atividade e toque em Baixar registro. O arquivo traz toda a cadeia da sua organização. Proprietários podem baixá-lo, assim como administradores e auditores da organização inteira que não tenham um papel mais restrito em nenhum espaço de trabalho. Um administrador ou auditor de um só espaço de trabalho não pode, nem um administrador da organização que no espaço de um cliente é só membro ou convidado. Para lê-lo na tela, abra a aba Registro ao lado: cada entrada, quem a fez e a que se refere. Cada pessoa vê as entradas dos espaços onde é proprietária, administradora ou auditora, e as da própria organização.

Baixe por um script

Um script entra com uma chave de API do console. Um proprietário cria uma em Chaves de API com Nova chave de API, e ela aparece uma única vez. Guarde-a em SALLYPORT_CONSOLE_KEY:

Cole a chave quando o terminal pedir; ela não aparece na tela
read -rs SALLYPORT_CONSOLE_KEY && export SALLYPORT_CONSOLE_KEY
A cadeia inteira em um arquivo
curl --fail --silent --show-error -H "Authorization: Bearer $SALLYPORT_CONSOLE_KEY" "https://mcp.sallyport.cloud/v1/audit/export" -o sallyport-audit.jsonl

Acrescente from_seq e to_seq para pegar um intervalo. Os dois são números inteiros a partir de zero, e as duas pontas entram. Sem to_seq, o arquivo vai até o fim da cadeia.

Tudo a partir da entrada 1001
curl --fail --silent --show-error -H "Authorization: Bearer $SALLYPORT_CONSOLE_KEY" "https://mcp.sallyport.cloud/v1/audit/export?from_seq=1001" -o sallyport-audit-1001.jsonl

Para trazer só o que é novo, leia to_seq na primeira linha do último arquivo e comece o próximo download uma entrada depois. Se events for 0, não há nada novo: peça de novo mais tarde com o mesmo from_seq.

Por padrão, o Sallyport guarda 180 dias de registro, então baixe pelo menos com essa frequência. Registro e histórico de chamadas (dias) em Configurações, Organização, muda isso. A sessão do console usa a mesma rota em https://my.sallyport.cloud/api/v1/audit/export.

O que o arquivo contém

Cabeçalho da respostaValor
Content-Typeapplication/x-ndjson; charset=utf-8
Content-Dispositionattachment; filename="sallyport-audit-{UUID da organização}.jsonl"
Cache-Controlno-store
X-Content-Type-Optionsnosniff

A primeira linha descreve o arquivo: schema (spc-chain/2), tenant_id, from_seq, to_seq e events. Cada linha seguinte é uma entrada em ordem: seq, occurred_at, kind, payload, prev_hash, this_hash, sig e signer_kid.

Cada entrada traz o hash da anterior, então uma linha que falta ou foi editada quebra a cadeia. Cada entrada é assinada com Ed25519, e as chaves públicas ficam em https://mcp.sallyport.cloud/.well-known/sallyport-audit-keys.json sem precisar de conta.

Compare o número de linhas com events para notar um download interrompido. O arquivo não traz valores de chaves, corpos de requisições nem listas completas de argumentos.

Receba os eventos na hora

Um webhook envia ao seu endpoint HTTPS cada nova entrada do registro dos tipos que você escolher, em cerca de um minuto. Um proprietário ou administrador o adiciona em Webhooks, Configurações: toque em Adicionar webhook, digite o endpoint e marque os eventos. Um script usa a API:

Crie um webhook para chamadas e decisões
curl --fail --silent --show-error -X POST -H "Authorization: Bearer $SALLYPORT_CONSOLE_KEY" -H "Content-Type: application/json" -d '{"url": "https://siem.example.com/sallyport", "events": ["call.intent", "call.result", "approval.decided"]}' "https://mcp.sallyport.cloud/v1/webhooks"

O segredo de assinatura aparece uma única vez: no console depois de Adicionar webhook e como secret na resposta da API. Cada entrega é um POST com X-Sallyport-Event, X-Sallyport-Delivery e X-Sallyport-Signature: t=<unix seconds>,v1=<hex>.

Confira v1 como HMAC-SHA256 de <t>.<body>, com o segredo inteiro como chave. O corpo traz delivery_id, tenant_id, kind, occurred_at, seq, this_hash e payload.

  • Responda com um status 2xx. Uma entrega que falhou é tentada de novo com pausas que dobram a partir de 5 segundos, 8 tentativas no total. Depois de uns 15 minutos ela fica marcada como falha.
  • As novas tentativas mantêm o mesmo X-Sallyport-Delivery, então descarte repetições por ele.
  • Um webhook entrega o que a pessoa que o criou pode ler do registro: as entradas dos espaços onde ela é proprietária, administradora ou auditora, e as da própria organização. Enquanto ela não puder ler nada disso, ele não entrega nada, e essas entradas não são enviadas depois. Um webhook criado com uma chave de API entrega o registro inteiro.
  • Um webhook começa no momento em que é criado. Para entradas mais antigas, use a exportação; seq e this_hash batem com as linhas dela.
  • Os nomes de evento são os valores kind do registro, como call.intent, call.result, approval.requested, approval.decided, grant.created e access_request.created. Qualquer kind que aparece na exportação serve. Um nome desconhecido é recusado ao criar o webhook, e o erro o cita.
  • Entregas, na linha do webhook, lista o que foi enviado, e Enviar de novo reenvia uma que falhou. Na API: GET /v1/webhooks/{id}/deliveries e POST /v1/webhooks/{id}/deliveries/{delivery_id}/retry.
  • A lista em Webhooks marca o webhook que está falhando. O interruptor dele desliga as entregas sem excluí-lo.