Ir para o conteúdo

Usa TablePro todo dia? Uma licença adiciona recursos pagos e financia a próxima versão. Usa todo dia? Comprar licença

Segurança

Onde o TablePro guarda suas credenciais, o que os apps enviam, como são assinados e atualizados, e até onde vai cada proteção.

Onde ficam as credenciais

No Mac

Senhas, frases secretas de chaves, chaves de API de provedores de IA e a chave de licença ficam nas Chaves do macOS. A lista de conexões no disco não contém senhas, e uma chave SSH continua sendo um arquivo no disco.

No iPhone e iPad

Senhas e chaves SSH coladas ficam nas Chaves.

iCloud Sync

O iCloud Sync fica desativado até você ativá-lo. Os registros vão para um banco privado na sua própria conta iCloud, que o TablePro não pode ler, e não levam senhas. Senhas só são sincronizadas se você também ativar Passwords no Mac ou Sync Passwords no iPhone e iPad, e então passam pelas Chaves do iCloud.

O que o TablePro recebe

As consultas que você executa, os resultados e suas senhas não são enviados ao TablePro. A exceção é uma Team Library em que você decide publicar: ela recebe configurações de conexão e consultas salvas, nunca senhas.

Limites que você precisa conhecer

  • No Mac, a sincronização de senhas também leva as chaves de API de provedores de IA e a chave de licença.
  • Uma fonte de senha como o 1Password ou um comando de shell executa um programa no seu Mac a cada conexão.

O que sai do seu dispositivo

Para seus servidores e provedores

Consultas e resultados trafegam entre o app e seus próprios servidores de banco de dados, nunca pelo TablePro. Solicitações de IA vão direto ao provedor que você adicionar.

Para o TablePro

Sem licença ativada, a única solicitação do app para Mac ao TablePro é um relatório diário de uso, ativado por padrão e que pode ser desativado nos ajustes. No iPhone e iPad, nada vai ao TablePro a menos que você ative Share Usage Data. Um relatório nunca contém nomes de host, nomes de usuário, senhas, consultas nem linhas, e nenhum dos dois apps contém relator de falhas nem biblioteca de análise de terceiros.

Limites que você precisa conhecer

  • O app para Mac envia o primeiro relatório de uso sem perguntar, e nosso servidor guarda o endereço IP de cada relatório e de cada verificação de licença.

Como os apps chegam até você

Assinados e autenticados

As versões para Mac são assinadas com Developer ID, usam o Hardened Runtime e são autenticadas pela Apple. As imagens de disco ficam no GitHub Releases, cada uma com um checksum SHA-256. O cask do Homebrew baixa a mesma imagem e verifica o SHA-256 dela.

Atualizações

O app para Mac se atualiza pelo Sparkle e, antes de instalar cada atualização, verifica a assinatura EdDSA com a chave pública incluída no app. Essa verificação não pode ser desativada. As atualizações automáticas podem, nos ajustes ou por um perfil de configuração.

Plugins de driver

Os drivers que não vêm com o app para Mac são baixados do GitHub. Cada um precisa corresponder ao SHA-256 do registro de plugins e ter uma assinatura de código válida: a do próprio TablePro, ou o Developer ID de outro desenvolvedor depois que você aceita confiar nesse desenvolvedor pelo nome.

iPhone e iPad

O app para iPhone e iPad está na App Store, que também entrega as atualizações dele. Os drivers são integrados, e ele não baixa plugins.

Limites que você precisa conhecer

  • O app para Mac não usa o App Sandbox do macOS: ele roda com o acesso da sua conta de usuário a arquivos e à rede.
  • Um plugin de driver roda como parte do TablePro e pode ler as credenciais de todas as conexões que você abrir.

O que protege um banco de dados de um erro

Níveis de Safe Mode

Cada conexão tem um nível de Safe Mode: Silent, Alert, Alert (Full), Safe Mode, Safe Mode (Full) e Read-Only. Alert pede confirmação antes de uma gravação, os níveis Safe Mode também pedem Touch ID ou a senha do Mac, os níveis Full pedem confirmação também antes de leituras, e Read-Only recusa gravações. Uma organização pode impor um nível mínimo nos Macs dela por um perfil de configuração. No iPhone e iPad, os níveis são Off, Confirm Writes e Read-Only.

Instruções destrutivas

Em todos os níveis no Mac, DROP, TRUNCATE e um DELETE sem WHERE param e pedem confirmação primeiro, mostrando a instrução completa.

Limites que você precisa conhecer

  • O Safe Mode roda dentro do TablePro e protege contra erros. Ele não é um sandbox nem um sistema de permissões: para uma regra que precisa valer sempre, use os privilégios do próprio banco de dados.
  • Novas conexões começam em Silent, onde as instruções são executadas como escritas, inclusive um UPDATE sem WHERE.
  • Nos modos Edit e Agent do chat, o assistente de IA pode executar instruções, e em Silent as gravações dele executam sem perguntar. O Agent mode, que ocupa a janela inteira, mantém a conexão em Alert ou mais rigoroso, o que é um lembrete, não um bloqueio.

O servidor MCP

Somente local

O servidor MCP existe só no app para Mac e fica desativado até você ativá-lo ou um cliente configurado iniciá-lo. Ele escuta em 127.0.0.1, sem modo remoto, e os clientes nunca veem uma senha.

Como um cliente é aprovado

Por padrão, cada solicitação precisa de um token com um escopo (Read Only, Read & Write ou Full Access), e uma caixa de diálogo no Mac pergunta a você na primeira vez que um cliente acessa uma conexão.

O que um cliente pode fazer

Cada conexão define o que clientes externos podem fazer: Blocked, Read Only (padrão) ou Read & Write. Gravações continuam passando pelo nível de Safe Mode dela, DROP e TRUNCATE exigem um token Full Access e sua aprovação toda vez, e cada chamada fica registrada no seu Mac.

Limites que você precisa conhecer

  • 127.0.0.1 diz onde o servidor escuta, não quem consegue alcançá-lo. Qualquer programa no seu Mac pode se conectar, assim como uma página aberta em claude.ai ou app.cursor.com. Cada um ainda precisa de um token, então mantenha a autenticação obrigatória.
  • O que um cliente lê, ele envia ao próprio serviço de IA, sob os termos desse serviço.

Código aberto

O código é público

Os dois apps são de código aberto sob a AGPLv3, incluindo o código dos recursos pagos. O que esta página descreve pode ser lido no repositório, junto com os scripts que assinam e autenticam cada versão, e você pode compilar o app para Mac por conta própria.

Relatar uma vulnerabilidade

Como relatar

Envie um email para [email protected] ou relate em particular no GitHub, em inglês ou vietnamita. Não abra issue, discussão ou pull request públicos para uma vulnerabilidade.

O que incluir

O que é afetado e a versão: o app para Mac, o app para iPhone e iPad, um plugin ou este site. Inclua a versão do macOS ou do iOS, o tipo de banco de dados quando um driver estiver envolvido, os passos ou uma prova de conceito, e o que um invasor ganha.

Quais versões recebem correções

Só a versão mais recente de cada app e de cada plugin recebe correções de segurança, então confirme que o problema continua na versão mais recente antes de relatar.