Dados Sensíveis
Como impedir que CPF, e-mail, token e outros dados que nascem durante a execução fiquem gravados nos logs, no debug e nas exportações.
- O que a execução grava
- Cofre ou Dado sensível?
- Onde marcar um dado como sensível
- O que muda quando você marca
- Parâmetros de entrada: o tipo Secreto
- Imagens da tela
- Debug, 📌 Fixar e arquivo de teste do script
- Fila de execução e webhook de desenvolvimento
- Etapa Agêntica e o provedor do modelo
- O Copilot e as marcas
- O que a marca não cobre
- Dado sensível e a LGPD
- Boas práticas
O que a execução grava
Cada execução registra na Trilha de Auditoria o que aconteceu, e esse registro fica guardado pelo prazo do plano e pode ser exportado. Para o registro ser útil, ele traz valores de verdade: o que foi digitado num campo, o texto capturado da página, o texto reconhecido por OCR, o retorno de uma API, de um conector ou de um banco de dados, a mensagem de um erro.
Quase sempre isso é o que você quer ver ao investigar uma falha. Mas quando o valor é um CPF, um e-mail de cliente ou um token que a própria API acabou de emitir, você não quer esse dado gravado. É para isso que existe a marca Dado sensível.
Cofre ou Dado sensível?
São dois recursos com propósitos diferentes, e um não substitui o outro.
| Cofre de Senhas | Dado sensível | |
|---|---|---|
| Para quê | Credencial que você cadastra antes: senha de login, API Key, token fixo. | Dado que nasce durante a execução: CPF lido da tela, token devolvido por uma API, linha de banco de dados. |
| Como usar | Você escreve {vault.CHAVE} no campo. O valor nunca vira variável do processo. | Você marca a linha que cria a variável. A variável existe normalmente e as etapas seguintes recebem o valor real. |
| Onde o valor mora | Criptografado no KMS. | Só na memória da execução. Não é gravado em banco nem em log. Quando precisa atravessar um serviço (a resposta síncrona de um webhook, o retorno de um agente chamado por outro), vai cifrado com uma chave que existe só na memória de quem vai receber: o que fica de passagem não abre. |
Regra prática: se você já sabe o segredo antes de rodar, ele vai para o Cofre. Se o dado aparece durante a execução, marque como sensível.
Como usar o Cofre: primeiro cadastrar, depois só referenciar
- Cadastre a credencial. No Menu, em Meu Cofre de Senhas, crie a credencial com um nome (por exemplo
erp_senha) e o valor. Isso é feito uma vez, fora do processo. Veja Criar uma credencial. - Use só o nome no processo. No campo que precisa da credencial, escreva
{vault.erp_senha}, ou escolha Valor do Cofre como Objeto de Tela de um mapeamento de Preencher. O valor em si nunca aparece no desenho do processo, nem no log. Veja Onde a credencial pode ser usada.
Se a chave não existir no Cofre, ou existir sem valor, a etapa falha e a mensagem diz qual chave e qual campo. Já o dado que nasce durante a execução não tem como passar pelo Cofre: para ele existe a marca de dado sensível.
Onde marcar um dado como sensível
A marca fica em cada lugar que cria uma variável, ao lado do nome dela:
| Onde | Como aparece |
|---|---|
| Mapeamento de Preencher | Chave Dado sensível?, logo abaixo do nome do mapeamento. Não aparece quando o Objeto de Tela é Valor do Cofre, porque esse valor nunca vira variável. |
| Mapeamento de Obter Informação | A mesma chave. Ela vale também para o texto reconhecido por OCR nessa linha. |
| Resultados de Chamar API Rest | Um cadeado ao lado de cada linha da tabela. Marque só as linhas que carregam o dado. |
| Saídas de um conector | Um cadeado ao lado de cada variável de saída. A marca fica no cadastro do conector, então vale em toda etapa que usar aquele conector. |
| Variáveis do Fluxo | A opção Dado sensível no cartão de cada linha, tanto ao criar uma variável quanto ao atribuir a uma existente. |
O que muda quando você marca
- Some do log. No lugar do valor aparece
«•••». Isso vale para a mensagem da própria linha e para qualquer outro lugar onde o valor reapareça durante a execução: a resposta crua de uma API, o retorno de um banco, a mensagem de um erro, o log de uma etapa seguinte. - Some das exportações. A Trilha de Auditoria exporta a mensagem como foi gravada, então o que não foi gravado não sai em nenhum formato.
- Não vai para o snapshot do debug nem para o arquivo de teste de um projeto de script. Veja Debug, 📌 Fixar e arquivo de teste do script.
- Não gera imagem da tela. Uma imagem mostra tudo o que está na tela e não dá para escondê-la em partes. Veja Imagens da tela.
- A variável continua funcionando. As etapas seguintes recebem o valor real: você pode digitá-lo em outro campo, enviá-lo numa API ou compará-lo numa decisão. A marca protege o registro, não esconde o dado da automação.
Parâmetros de entrada: o tipo Secreto
Quando um processo é disparado por API ou por webhook, quem chama envia parâmetros, e eles podem carregar dado sensível. Na Matrix, o tipo Secreto existe para isso:
- O valor aparece no log como
«•••»e some de todo registro da execução. - Não há valor padrão. Ele existiria em texto puro na definição do processo, então o campo fica bloqueado na tela. O valor só existe se quem disparou o enviou.
- A etapa usa o parâmetro normalmente:
{matrix.nome}devolve o valor real durante a execução.
Imagens da tela
Uma marca esconde um valor em texto, mas não consegue esconder um pedaço de uma imagem: se a página mostra o CPF, ele aparece no print. Por isso, quando há dado sensível em uso, a plataforma não gera a imagem. Isso vale para os três casos em que uma imagem seria gravada:
- a Gerar Evidência da etapa ou do mapeamento, e o Manter evidência em sessão;
- a evidência que a plataforma gera sozinha quando há uma falha;
- o Anexar evidência de tela nas notificações por e-mail da etapa de navegador e do mapeamento.
A regra é aplicada de duas maneiras:
- Na etapa que lida com dado sensível. Se a etapa tem qualquer linha marcada (um mapeamento, um Resultado de API, uma variável do fluxo), ela nunca gera imagem. Nas etapas de navegador, o controle Gerar Evidência aparece no formulário como Bloqueada, com a explicação, e ao salvar ele vai desligado. Nas demais etapas (API, Conector, Regra e Decisão) esse controle não existe.
- No resto da execução. Assim que existe um valor sensível na execução (um parâmetro Secreto que recebeu valor, um valor marcado que já foi lido, uma saída de conector marcada), as etapas seguintes também não geram imagem, mesmo as que não têm marca nenhuma. Se você precisa de evidência visual, coloque a etapa que a gera antes do primeiro dado sensível. Um parâmetro Secreto que ninguém enviou não conta: sem valor, não há dado a proteger, e a evidência continua sendo gerada.
Quando uma imagem deixa de ser gerada, a Trilha de Auditoria registra o aviso Imagem da tela não gerada: dado sensível em uso, uma vez por etapa, para que a ausência da evidência não pareça uma falha.
Debug, 📌 Fixar e arquivo de teste do script
O debug guarda o estado do processo a cada etapa para permitir reiniciar de uma etapa e fixar saídas. Variáveis marcadas como sensíveis ficam de fora desse estado guardado.
- 📌 Fixar a saída: o campo sensível aparece em branco no editor. O valor que a automação capturou nunca é copiado para o valor fixado. Se você quiser um valor para teste, digite à mão: só o que você digitar é gravado.
- Reiniciar daqui: a variável sensível não volta com o estado guardado. Se a etapa seguinte precisa dela, fixe a etapa que a produz e digite um valor de teste.
- Projetos de script: quando o projeto é executado pela primeira vez, a plataforma cria um arquivo de teste com o retrato das variáveis, para você rodar o script na sua máquina. Esse arquivo não leva variáveis sensíveis, segredos do Cofre, o conteúdo de arquivos baixados nem os dados capturados de diálogos e erros, e lista só os nomes do que deixou de fora. Durante a execução de verdade, o script recebe tudo normalmente.
Fila de execução e webhook de desenvolvimento
Dois lugares guardam um dado por um tempo, antes ou fora da execução propriamente dita:
- Fila de execução. Uma execução disparada por API ou por webhook espera na fila até o runtime buscá-la: segundos com o runtime no ar, mais tempo com a fila offline ligada ou com o runtime em modo sequencial. Nesse intervalo o valor de um parâmetro Secreto fica cifrado para o runtime que vai executar: a chave que abre existe só na memória desse runtime, e é ele quem abre o valor, já autenticado, ao pedir a autorização daquela execução. Ninguém no meio do caminho consegue ler, e se o runtime for reiniciado a chave some com ele: a execução termina com uma falha visível pedindo o reenvio, sem expor nada. Por isso o runtime precisa estar ligado para receber um parâmetro Secreto: com o runtime desligado (mesmo com a fila offline ligada) a execução não entra na fila e quem chamou recebe um erro dizendo isso. Um runtime antigo, que ainda não publica a própria chave, recebe o valor cifrado no KMS, como antes. Os parâmetros comuns não são cifrados na fila.
- Webhook de desenvolvimento. Para você mapear, a URL DEV guarda o corpo que recebeu (as últimas 10 capturas). Quando o mapeamento aponta um campo para um parâmetro Secreto, o valor desse campo é trocado por
«•••»ao gravar a captura, e também nas capturas que já existiam quando você salva o mapeamento. Se o mesmo valor aparece em outro ponto da captura, por exemplo repetido num header, ele também some. O resto do corpo continua guardado, então envie dados de teste à URL DEV. A URL de produção não guarda o corpo. - Resposta síncrona do webhook. Quando quem chamou o webhook fica esperando a resposta (etapa Webhook Response), o corpo que o agente devolve atravessa a plataforma cifrado com uma chave que existe só na memória da chamada que está esperando. Quando a resposta é entregue, a chave é descartada: o que passou pelo caminho não abre mais.
- Retorno de um agente chamado por outro. Nas etapas Chamar Agente e Paralelizar Agentes, o que o agente chamado devolve ao pai viaja na memória do runtime quando os dois rodam no mesmo runtime, e cifrado para a chave do runtime do pai quando rodam em runtimes diferentes. Uma variável marcada como sensível no agente chamado só é devolvida se o dono dele a liberou, e chega ao pai com a marca: o pai não a desmarca.
Etapa Agêntica e o provedor do modelo
A Etapa Agêntica manda a tarefa, as instruções, a conversa anterior e o retorno das ferramentas ao provedor do modelo (Anthropic, OpenAI e os outros), fora da plataforma. A marca vale também nesse envio:
- Sem liberação, nada marcado vai ao provedor. Variável marcada como sensível, parâmetro Secreto e segredo do Cofre citados na tarefa, nas instruções ou na conversa anterior fazem a etapa falhar antes da primeira consulta. No retorno de uma ferramenta, o valor chega ao modelo como
«dado sensível, retido». - Enviar dado sensível ao modelo, na etapa (tarefa, instruções e conversa anterior), e Enviar o retorno sensível ao modelo, em cada ferramenta, liberam o envio, cada um só para o seu lado. Quando a liberação é usada, todas as variáveis que a etapa grava saem marcadas como sensíveis, e o log da execução registra que houve envio por liberação.
- O registro da etapa. O log da execução em produção e o terminal do debug trazem o texto do modelo e os argumentos de cada ferramenta com a máscara aplicada, e o tamanho de cada retorno. O retorno em si não é registrado.
- Agente importado chega sem as liberações: quem importa decide de novo, na própria conta.
O Copilot e as marcas
O Copilot conhece este recurso: se você perguntar o que é um dado sensível ou como marcar um campo, ele explica e diz o lugar exato da tela. A marca, porém, é sempre uma decisão sua, feita na tela: o Copilot não liga nem desliga a marca de nenhuma linha.
Ao corrigir ou regravar algo por você (um mapeamento, os Resultados de uma API, as Variáveis do Fluxo), o Copilot mantém as marcas que já existem, inclusive quando muda o nome da variável ou o caminho de uma linha marcada. Uma linha só perde a marca se a própria linha for removida, e ele avisa antes. Quando cria uma variável que parece carregar dado pessoal, ele sugere marcá-la, mas quem marca é você. Ele também não cria parâmetros do tipo Secreto: esse tipo se escolhe no modal Variáveis Globais do Fluxo - Matrix.
O que a marca não cobre
- Valores muito curtos. O valor de 4 ou mais caracteres é escondido em qualquer mensagem. O de 3 caracteres (um código de segurança, por exemplo) só é escondido quando aparece como palavra inteira, para não apagar um pedaço de outro número: o
123sumiria de dentro de1234. Valores de 1 ou 2 caracteres não são procurados em outras mensagens, porque apagariam trechos legítimos do log. Em qualquer tamanho, o log da própria linha marcada é sempre escondido por inteiro. - Valor digitado no desenho do processo. Um texto fixo escrito no campo Valor de um mapeamento, ou o valor de uma variável do fluxo, faz parte da definição do processo, não da execução. A marca protege a execução, e não esse cadastro: o valor digitado fica gravado em texto puro. Por isso, quando a linha está marcada como sensível e tem um valor digitado, o formulário mostra um aviso. Para um dado que precisa de proteção, use o Cofre ou armazene o valor em uma variável protegida, como um parâmetro do tipo Secreto. O Copilot não enxerga esse valor: para ele a linha aparece como
«oculto: dado sensível», e ele nunca o grava de volta. - Quem edita o processo. Como no Cofre, a marca protege o registro, não é barreira contra quem tem permissão para editar o agente: alguém com essa permissão pode montar uma etapa que exiba o valor.
- Ambientes Runtime desatualizados. A marca é aplicada pelo runtime que executa o agente. Um runtime antigo ignora a marca e não abre o valor cifrado de um parâmetro Secreto: ele recebe o parâmetro vazio e a execução falha de forma visível, sem expor nada. Ele também não consegue rodar um agente que chama outro: a execução é recusada antes de começar, com a mensagem de que o runtime precisa ser atualizado. Mantenha o executável atualizado, veja Ambientes Runtime.
- Webhook de desenvolvimento. Só os campos que o mapeamento aponta para um parâmetro Secreto são escondidos nas capturas. O resto do corpo fica guardado para você mapear: envie dados de teste à URL DEV. Veja Fila de execução e webhook de desenvolvimento.
- Textos que não são variáveis. O nome de um arquivo baixado, a URL da página e a mensagem de um diálogo do navegador passam apenas pela proteção do Cofre, porque não são uma variável que você declara.
Dado sensível e a LGPD
A Lei Geral de Proteção de Dados (Lei nº 13.709/2018) usa dois termos. Dado pessoal é qualquer informação de uma pessoa natural identificada ou identificável, como nome, CPF, e-mail e telefone (art. 5º, I). Dado pessoal sensível é uma categoria restrita: origem racial ou étnica, convicção religiosa, opinião política, filiação a sindicato ou a organização de caráter religioso, filosófico ou político, dado de saúde ou da vida sexual, dado genético ou biométrico (art. 5º, II).
A marca Dado sensível da plataforma não segue essa divisão: ela vale para qualquer valor que não deve ficar gravado, seja dado pessoal, dado pessoal sensível ou um token de acesso, que não identifica ninguém. Um CPF não é dado pessoal sensível na lei e, na plataforma, é marcado como sensível.
Controladora e operadora
Nos dados pessoais que as suas automações tratam, a sua empresa é a controladora e a browserMate é a operadora (art. 5º, VI e VII). A sua empresa define a finalidade e a base legal de cada processo, informa os titulares e atende aos pedidos deles (art. 18). A browserMate trata esses dados segundo as instruções da sua empresa. Detalhes da divisão: cláusula 15 dos Termos de Uso.
Mascaramento nos registros
Para qualquer dado pessoal, a marca é uma medida técnica de segurança sobre o registro da execução (art. 46) e limita o que fica guardado ao necessário (art. 6º, III). Quando o processo trata dado pessoal sensível ou dado de criança e adolescente, os Termos de Uso pedem base legal específica (arts. 11 e 14), o tratamento limitado ao necessário e o mascaramento que impede esses dados de ficarem gravados em texto claro (cláusula 15.11). Na plataforma, o mascaramento é feito assim:
- Dado que nasce na execução: a marca Dado sensível na linha que cria a variável.
- Parâmetro de entrada: o tipo Secreto na Matrix.
- Credencial: o Cofre de Senhas.
- Imagem da tela: com dado marcado em uso, a imagem não é gerada. Na etapa sem marca cuja página exibe dado pessoal, desligue Gerar Evidência.
- Log customizado: registre identificadores, e não o dado.
- Etapa Agêntica: dado marcado só vai ao provedor do modelo com liberação.
O que fica guardado e por quanto tempo
Na LGPD, armazenar também é tratamento (art. 5º, X). Nos registros da plataforma:
- Log detalhado e evidências: ficam na Trilha de Auditoria pelo prazo do plano e depois são expurgados.
- Dashboards: os números e o histórico de erros ficam sem prazo. O histórico de erros traz a mensagem de cada erro, e um valor marcado aparece nela como
«•••». - Exportação: o arquivo exportado da Trilha de Auditoria sai da plataforma e fica sob o controle de quem exportou.
- Webhook de desenvolvimento: a URL DEV guarda as últimas 10 capturas do corpo recebido, para o mapeamento. Veja Fila de execução e webhook de desenvolvimento.
Envio ao provedor do modelo
O modelo da Etapa Agêntica é chamado com a chave de API do conector que a sua empresa cadastrou, e o provedor (Anthropic, OpenAI e os outros) recebe o dado sob o contrato da sua empresa com ele. O que não está marcado vai ao provedor como parte da tarefa ou do retorno da ferramenta. Dado marcado só vai com as liberações Enviar dado sensível ao modelo e Enviar o retorno sensível ao modelo. Quando o provedor trata o dado fora do Brasil, o envio é uma transferência internacional (art. 33).
O que você escreve ao Copilot e os trechos do processo que ele lê vão à Anthropic. Pela cota da plataforma, a Anthropic atende como suboperadora da browserMate (cláusula 15.9 dos Termos de Uso); pela sua própria chave, sob o contrato da sua empresa com ela.
Pedido de titular ou da ANPD
Pedido de titular, requisição da ANPD ou relatório de impacto sobre dados das automações é conduzido pela sua empresa, como controladora. A browserMate presta o auxílio técnico pelo Suporte e encaminha à sua empresa o pedido de titular que chegar a ela. Um acordo de tratamento de dados em instrumento próprio também se pede pelo Suporte (cláusulas 15.10 e 15.12 dos Termos de Uso).
Boas práticas
- Marque como sensível todo dado pessoal que passa pelo processo, mesmo que a etapa que o lê não pareça importante: o valor reaparece em outras mensagens.
- Prefira o Cofre para tudo que você já conhece antes de executar.
- Depois de marcar, rode um debug e abra a Trilha de Auditoria para conferir que o valor não aparece.
- Em logs customizados, registre identificadores, nunca o dado em si.
