Dados, retenção e privacidade
Que dado pessoal a API recebe, quanto tempo cada camada guarda, como atender um pedido de exclusão sem rota pública de apagar, e o que ainda não está respondido aqui.
Dados, retenção e privacidade
Esta página existe para a conversa que acontece antes da integração: a do jurídico, a do encarregado de dados, a de quem precisa responder “o que exatamente sai da nossa casa e por quanto tempo fica na de vocês?”.
Ela é honesta em duas direções. Diz o que o serviço faz, com número; e diz claramente o que não é respondido aqui, para você não confundir silêncio com promessa.
1. Que dado pessoal a API recebe
O PushMesh não pede documento, nome, telefone nem e-mail de usuário final. O que ele recebe é o mínimo para entregar uma notificação — e uma parte disso é dado que você escolhe mandar.
| Dado | De onde vem | Pode identificar uma pessoa? |
|---|---|---|
identifier (token de push) | do sistema operacional do aparelho | identifica o aparelho, não a pessoa. É rotativo por natureza |
external_user_id | você decide o valor | sim, se você quiser. É o campo que amarra aparelho e pessoa |
tags | você decide o conteúdo | depende inteiramente do que você colocar lá |
language, timezone, modelo, fabricante, versão do app, tipo de rede, operadora | reportados pelo aparelho | características técnicas; sozinhas não identificam |
pm_msg_id, player_id | gerados pelo serviço | identificadores internos |
A decisão de privacidade mais importante desta API é sua, não nossa: o que você põe em
external_user_ide emtags. Um identificador opaco de conta mantém a base pseudonimizada. Um e-mail em texto claro ou um número de documento faz a sua base de push virar uma base de dados pessoais — com todas as obrigações que isso traz. Prefira o identificador opaco que só o seu sistema sabe resolver.
Anote também: o arquivo de exportação carrega external_user_id, e o que o
protege é a URL ser impossível de adivinhar. URL de export em ticket, em chat ou
em log é vazamento. Ela vale por 72 horas.
2. Quanto tempo cada camada guarda
| Camada | O que é | Por quanto tempo |
|---|---|---|
| Entrega por aparelho (quem recebeu o quê, quando) | a linha detalhada, aparelho a aparelho | 3 dias no banco de consulta rápida; depois é movida para um arquivo frio por cliente |
Contadores por disparo (successful, failed, recebidos, cliques) | o resultado agregado da campanha | sobrevivem à rotatividade — a leitura por janela de tempo funciona para qualquer período, antigo ou recente |
| Aparelho (token, vínculo, tags, último sinal de vida) | o cadastro | enquanto o aparelho existir na base — não há expiração automática por tempo |
| Arquivo de exportação | CSV comprimido publicado sob demanda | 72 horas |
| Recibo de entrega e de clique | a janela em que o servidor ainda aceita a confirmação | 90 dias a partir da criação da entrega |
Duas consequências que valem entender antes de montar relatório:
- Consulta detalhada de entrega tem prazo; número agregado não. Se o seu relatório precisa saber quais aparelhos receberam uma campanha de dois meses atrás, essa granularidade não está mais na consulta rápida. Se ele precisa saber quantos receberam, está — e sempre estará.
- A janela de 90 dias do recibo não é generosidade. Ela cobre o pior caso
legítimo: um agendamento de até 28 dias somado a um prazo de entrega de até 28
dias, mais folga, porque o clique pode vir de uma notificação parada na bandeja
por semanas. Um recibo que chega depois de a linha detalhada já ter esfriado
responde
{"ok": true, "tardio": true}— ele conta, por outro caminho.
3. Como atender um pedido de exclusão
Não existe rota pública que apague um aparelho, e a ausência é deliberada: as rotas de aparelho são públicas por desenho, e uma rota pública capaz de apagar seria uma rota pública capaz de esvaziar a sua base.
O que existe, e é o caminho oficial:
| Você precisa de… | Como se faz | O que some |
|---|---|---|
| Parar de falar com uma pessoa | PUT /api/v1/players/{id} com external_user_id: null | o vínculo pessoa ↔ aparelho. O aparelho continua, sem dono |
| Apagar os aparelhos de uma pessoa | pelo painel, selecionando os aparelhos | o aparelho e o histórico de entregas dele, na mesma transação |
| Apagar tudo de um aplicativo | pelo painel, na exclusão do aplicativo | todo o dado daquele aplicativo, em todas as tabelas e partições, numa transação só |
Receita prática para um pedido de titular, quando você guarda o
external_user_id do seu lado:
- Localize os aparelhos daquela pessoa — o
external_user_idé o seu índice, e o arquivo de exportação traz a coluna. - Faça o logout explícito (
external_user_id: null) para cortar o vínculo na hora, mesmo antes da exclusão. - Apague os aparelhos pelo painel. O rastro de entrega deles vai junto.
Duas honestidades:
- Apagar não é banir. Um aparelho vivo que você apagou volta a se registrar sozinho no próximo uso do aplicativo. Para não voltar a falar com alguém, a ferramenta é o vínculo (logout) ou a sua própria regra de público.
- A exclusão de um aplicativo tem um limite conhecido, e ele está dito aqui em vez de escondido: as imagens que você subiu para usar em push ficam no armazenamento de objetos depois da exclusão. Elas deixam de ser alcançáveis (a única referência a elas morre junto com as mensagens), mas o arquivo em si permanece. Fechar isso é uma pendência registrada.
4. O que o serviço não guarda
- A sua chave de API. No banco fica apenas um resumo criptográfico dela. Ninguém — nem o suporte — consegue exibi-la de novo.
- A chave que assina os recibos, a credencial do Firebase e o
.p8do APNs ficam cifrados e nunca saem do servidor depois de gravados. - A credencial apresentada numa tentativa recusada. O registro de auditoria guarda, no máximo, o identificador público da chave — nunca a chave tentada.
- Dado pessoal nos registros de operação. Os registros do serviço trabalham com identificadores e números; é regra do projeto que dado pessoal não entra neles.
5. O que esta página não responde
Estes pontos não são decididos pela API, e inventar uma resposta aqui seria pior do que não ter nenhuma. Peça-os por escrito antes de fechar contrato:
- Onde os dados ficam fisicamente (região e país de armazenamento);
- Quem são os subprocessadores — além dos óbvios Google (FCM) e Apple (APNs), que são inerentes ao produto: sem eles não existe push;
- Compromisso de disponibilidade (SLA) e página de estado;
- A política de privacidade completa e os termos definitivos.
O que já está publicado hoje está em Privacidade e
Termos de uso, e essas páginas dizem, com todas as letras, que
a versão completa vem antes da abertura comercial. Para o documento que o seu
jurídico precisa agora, escreva para contato@pushmesh.io.
Duas coisas que já são compromisso público e valem repetir aqui: não vendemos dados, não criamos perfis publicitários e não compartilhamos a sua base com terceiros; e os recibos de entrega existem para prestar conta a você, o dono da base.
Veja também
| Assunto | Página |
|---|---|
| o que o registro grava, apaga e preserva | Aparelhos |
| o que o recibo prova e o que ele não prova | Recibos de entrega |
| a exportação da base e a validade do arquivo | Aparelhos |
| onde ficam as credenciais de entrega | Credenciais de entrega |