C C-Connect Documentação

Limites e retenção

Quanto tempo guardamos o quê, e onde estão os tectos.

Retenção

O quê Quanto tempo Configurável
Conteúdo da mensagem O que estiver em Definições, em dias e em número de mensagens Sim
Cronologia de eventos 30 dias Não
Linha da mensagem Fica Não
Entregas de webhooks 30 dias Não
Registo de auditoria Fica Não

O conteúdo tem dois limites e fica guardado só enquanto estiver dentro dos dois: um número de dias, e um número de mensagens. Guardamos o conteúdo das mais recentes até esse número, 50 no máximo, que é também o valor por omissão.

São dois porque dizem coisas diferentes. Os dias dizem durante quanto tempo e nunca quanto: uma conta que envie facturas com PDF anexado pode pôr dez gigabytes por semana em disco sem passar dos sete dias. O número de mensagens é um tecto no espaço, e é também a pergunta que o suporte recebe de facto, que é sempre sobre a mensagem que acabou de sair.

Pôr o número de mensagens a zero quer dizer não guardar nada depois de a mensagem sair. Se o que envias são recuperações de password, códigos de uso único ou links mágicos, é o que deves escolher: um corpo guardado é um link que continua a funcionar para quem conseguir ler a base de dados.

O prazo em dias é fixado em cada mensagem quando ela é criada. Mudar a definição não apaga nada do que já enviaste, e também não prolonga o que já estava marcado para desaparecer. É a única forma de a definição ser previsível: baixar o número não pode apagar retroactivamente o que alguém precisa hoje. O número de mensagens é diferente: baixá-lo é um pedido para guardar menos, e esse aplica-se ao que está guardado.

Enquanto está guardado, o conteúdo está cifrado na base de dados. Isso não nos impede de o ler, impede quem tenha uma cópia da base sem ter a chave: uma cópia de segurança, um dump. É por isso que a resposta a "e se vos roubarem a base de dados?" é esta e não só o prazo.

Quando o prazo passa, o corpo da mensagem é apagado e fica registado que isso aconteceu. A linha, o estado e a cronologia ficam, por isso continuas a poder responder a "esta mensagem foi entregue?" muito depois de o conteúdo ter desaparecido.

Limites da API

Pedidos por minuto, por chave 600
Mensagens por hora, por conta 2 000
Mensagens por dia, por conta 20 000
Onde vês o que falta Resumo do painel, GET /v1/me, cabeçalhos de cada 202
Tamanho de uma mensagem em raw 25 MB
Destinatários por mensagem 1
Cabeçalhos por mensagem sem limite fixo, 998 caracteres cada
Linhas por página (limit) 200, 50 por omissão

O limite de 25 MB é o mesmo que quase todos os destinos praticam. Uma mensagem maior passaria aqui para ser recusada lá, depois de já ter gasto a tentativa.

Limites das supressões

Linhas por importação 50 000
Tamanho do ficheiro 10 MB
Endereços na lista sem limite

Webhooks

Tentativas por evento 7, ao longo de ~33 horas
Tempo de espera por resposta 10 segundos
Falhas seguidas até desactivar 10
Resposta guardada primeiros 4 KB

Guardamos só os primeiros 4 KB da resposta do teu endpoint. Um endpoint avariado que devolva uma página de erro em HTML a cada tentativa encheria a tabela sem acrescentar nada ao diagnóstico.

Onde os dados vivem

Toda a infraestrutura está na União Europeia. O painel não carrega nada de redes externas: os tipos de letra, os ícones e a referência da API são servidos por nós, o que também quer dizer que o painel funciona atrás de um proxy de empresa que bloqueie CDNs.

Cada conta tem a sua própria base de dados. Não é uma coluna tenant_id numa tabela partilhada: são bases separadas, o que torna impossível uma consulta mal escrita devolver dados de outro cliente.

O que não guardamos

  • A tua chave de API. Guardamos um hash e o prefixo.
  • O segredo de assinatura de um webhook em claro, depois de to mostrarmos.
  • O conteúdo das mensagens para além do prazo de retenção.

Se precisares de mais

Os limites acima são os do plano base. Se o teu volume ou a tua retenção precisarem de outros números, fala connosco: quase todos são configuração e não arquitectura.