Gerido por nós em vez de comprado
O registo de erros corre numa instância GlitchTip auto-alojada na nossa própria infraestrutura Scaleway: os relatórios de falhas não saem dos nossos servidores. E não te contêm a ti: antes de um relatório sair, são removidos a identidade do utilizador, o IP, os cookies, os cabeçalhos, os tokens de autorização, o corpo do pedido e a query string. O corpo é a parte importante: caso contrário, estariam lá conteúdos de notas e pesquisas. O tracing de desempenho está desativado por predefinição. As estatísticas de visitas deste site não usam cookies (Plausible, UE) e na app não há nenhumas.
Chaves que só podem fazer uma coisa
As chaves de acesso seguem o princípio do privilégio mínimo: cada sistema recebe apenas as permissões de que realmente precisa. Exemplo: o deploy automático deste site não tem nenhuma chave de CDN com alcance de toda a conta, apenas um token que faz exatamente uma coisa: limpar a cache destas páginas. As chaves centrais ficam no Secret Manager da Scaleway, não em sistemas de build externos.
A separação está na base de dados, não no código
Na maioria dos serviços, é o código da aplicação que impede que vejas dados alheios. Basta então um «where user = …» esquecido numa única consulta para haver uma fuga. No Memexa, a separação está uma camada abaixo: o PostgreSQL impõe-na através de row-level security. Sem um contexto de utilizador definido, a base de dados não devolve linha nenhuma: não as erradas, mas nenhuma. O contexto é definido por transação e desaparece automaticamente quando esta termina, por isso não pode passar para a ligação seguinte do pool. Para que continue assim, corre com os testes uma verificação que dispara assim que surge uma nova tabela sem row-level security ou sem classificação explícita: o build falha em vez de passar em silêncio.
O que a tua IA pode fazer decides tu, e podes revogá-lo
O Claude, o ChatGPT e o Cursor não recebem uma chave-mestra. O acesso passa por OAuth: antes de autorizares, vês que app de IA está a pedir e para onde vai o acesso, e confirmas tu mesmo. O clipper do navegador e o acesso completo de IA têm permissões separadas: o clipper pode guardar, não pesquisar o teu acervo. Podes desligar as apps de IA ligadas a qualquer momento no Memexa; além disso, uma app de IA pode devolver o seu acesso por iniciativa própria. E a verificação de acesso não depende de um único ponto central: cada interface verifica a sessão por si, para que um erro num sítio não abra tudo.
Apagar é apagar: por esta ordem
Podes apagar a tua conta tu mesmo, com confirmação por e-mail. O que acontece a seguir está invertido de propósito: primeiro são removidos todos os ficheiros do armazenamento de objetos, em todo o prefixo do utilizador, ou seja, incluindo ficheiros órfãos que já não pertencem a nenhuma entrada. Só depois são apagados os registos da base de dados. Se a eliminação dos ficheiros falhar, todo o processo é interrompido e a tua conta mantém-se, em vez de os dados de gestão desaparecerem e os documentos ficarem para trás. O processo pode ser repetido sem risco. Conteúdos individuais podes apagá-los um a um a qualquer momento, sem tocar na conta.
As ligações pelo meio
Cada troço é cifrado: TLS 1.2 ou superior na periferia, as versões mais antigas estão desativadas; também as ligações à base de dados verificam o certificado e o nome de host, não apenas «cifradas de alguma forma». A base de dados está numa rede privada sem endereço público. À frente estão uma WAF e proteção contra DDoS, e o servidor de origem só aceita pedidos vindos da rede da CDN, por isso não se chega a ele diretamente. O contentor da aplicação corre sem privilégios de root, as dependências são construídas a partir de um lockfile fixado, e o único binário externo de que precisamos está fixado a uma versão e a uma soma de verificação.