Pular para o conteúdo
andarama

Instituições

Segurança e proteção de dados

O que o departamento de TI ou o encarregado de proteção de dados costuma perguntar antes de contratar, respondido com o que existe de verdade.

Arquitetura

andarama.com funciona sobre a Cloudflare: um Worker serve a API, o Studio e os tours; o banco de dados é o D1 (SQLite gerenciado); as mídias e os tiles são guardados no R2 (armazenamento de objetos); o KV guarda dados técnicos de curta duração e os Durable Objects coordenam a edição em tempo real e as visitas ao vivo. As contas, o login e a cobrança ficam com a Clerk. A analítica de visitas é própria e sem cookies, e a do site é feita pelo Plausible.

Onde ficam os dados

  • Banco de dados (D1) e mídias (R2): em centros de dados da Cloudflare na Europa Ocidental. É a localização escolhida ao criá-los; estamos trabalhando para fixá-la também por jurisdição da União Europeia.
  • Execução: o código roda na rede da Cloudflare, no centro de dados mais próximo de quem visita.
  • KV: dados técnicos efêmeros (sessões de leitura, ponteiros de publicação) replicados em toda a rede.
  • Contas e cobrança: na Clerk, nos Estados Unidos (e-mail, nome, sessão e dados de faturamento). Os tours e as mídias não passam pela Clerk.
  • Analítica do site: Plausible, na União Europeia, sem cookies nem endereços IP.

Se a instituição precisar que tudo fique em casa, a mesma aplicação se instala na sua própria infraestrutura (veja mais abaixo).

Criptografia

Todo o tráfego passa por HTTPS com TLS e HSTS. A Cloudflare criptografa em repouso o banco de dados D1 e os objetos do R2. As senhas e os segredos do serviço nunca são guardados em texto claro, e os tokens de API são guardados como hash.

Acesso e autenticação

Em andarama.com o acesso é gerido pela Clerk, com verificação em duas etapas disponível. Dentro da aplicação, as organizações têm papéis (administra, edita, colabora, lê) e as permissões são verificadas no servidor em cada rota. Numa instalação própria há ainda contas locais com verificação em duas etapas (TOTP) e SSO institucional por OIDC.

Proteção da aplicação

Política de segurança de conteúdo (CSP) com nonces, proteção CSRF de token duplo, limites de requisições, Turnstile contra abuso em formulários, sanitização de SVG, Markdown e CSS, e um registro de auditoria das ações de administração. A integração contínua executa os testes e a auditoria de dependências a cada mudança.

Cópias de segurança

O D1 permite recuperar o banco de dados para um ponto no tempo (Time Travel) durante o período que a Cloudflare oferece, e o painel de administração exporta uma cópia completa do banco de dados. As mídias do R2 não têm versões automáticas: por isso recomendamos conservar os originais das fotografias e exportar os tours importantes.

Código auditável

O código completo está publicado sob EUPL-1.2 no GitHub: qualquer pessoa pode revisar como os dados são tratados. As vulnerabilidades são comunicadas de forma privada conforme o arquivo SECURITY.md do repositório. Mais na página de código aberto.

Plano de saída

Nada do que se cria fica preso. Os tours são exportados a qualquer momento como ZIP estático, HTML único ou PWA, que funcionam sem o Andarama, e como arquivo .andarama. O formato tour.json está documentado. E a mesma aplicação pode ser instalada na infraestrutura da instituição (Docker, a sua conta da Cloudflare ou um executável de desktop), então, no dia em que o serviço hospedado deixar de ser contratado, o trabalho continua.

O que não temos (ainda)

O Andarama não tem uma certificação própria do Esquema Nacional de Seguridad (ENS) espanhol nem ISO 27001. A Cloudflare e a Clerk têm as suas próprias certificações como fornecedores. Se a instituição exigir o ENS, a instalação própria na sua infraestrutura fica sob o ENS dela. Sob pedido, preparamos o contrato de tratamento de dados (artigo 28 do RGPD) e uma ficha técnica com estas informações.

Precisam da documentação?

Contrato de tratamento de dados, ficha técnica, declaração de acessibilidade ou uma reunião com o seu departamento de TI: peçam e nós enviamos.