Segurança
Segurança do Workflow Transactional Email para Shopify Flow: alojamento na UE (Bélgica), encriptação de credenciais SMTP e dados, isolamento e atualizações.
O Workflow Transactional Email é desenvolvido e operado pela Code Creation Labs. Esta página explica em que consiste a aplicação, onde é executada, como os dados da sua loja são protegidos e como mantemos tudo atualizado. Destina-se a proprietários de lojas e a qualquer pessoa que preencha um questionário de segurança. O que a aplicação armazena e por quanto tempo pode ser consultado em Dados, privacidade e segurança; os aspetos legais (política de privacidade, acordo de tratamento de dados, subcontratantes) encontram-se em Informações legais e proteção de dados.
Em que se baseia a aplicação
| Camada | O que utilizamos |
|---|---|
| Código da candidatura | TypeScript no Node.js, uma versão atual com suporte a longo prazo. As páginas de administração, o editor de layout e os serviços que executam as suas etapas do Shopify Flow fazem parte de uma única base de código. |
| Base de dados e cache | PostgreSQL (Google Cloud SQL) e Redis (Google Cloud Memorystore) |
| Alojamento | Contentores no Google Kubernetes Engine na região europe-west1 (Bélgica, União Europeia) do Google Cloud. As bases de dados, as caches, o armazenamento de ficheiros e os registos das aplicações estão localizados nessa região. |
| Integração com o Shopify | As bibliotecas de aplicações oficiais da Shopify, as ações do Shopify Flow, a API GraphQL de administração para as permissões opcionais e os webhooks da Shopify |
| Entrega de e-mails | A caixa de correio que liga: o seu próprio servidor SMTP, o Microsoft 365 ou o Google Workspace. Os e-mails de alerta que a própria aplicação lhe envia passam pelo Amazon SES em Frankfurt. |
| A sua loja virtual | Nada funciona no seu tema nem no seu checkout. |
Não existe PHP, WordPress, Java nem qualquer outro ambiente de execução em nenhuma parte do serviço. A aplicação está listada na App Store da Shopify e foi aprovada na avaliação de aplicações da Shopify, que abrange os requisitos de segurança da Shopify e de proteção dos dados dos clientes.
Como os seus dados são protegidos
Em trânsito. Todas as ligações entre o seu navegador, a Shopify, o seu fornecedor de e-mail e a aplicação utilizam o protocolo TLS. A base de dados e a cache não têm qualquer endereço público: só são acessíveis a partir do interior da nossa rede privada.
Em repouso. Todas as bases de dados e o armazenamento de ficheiros são encriptados em repouso com chaves que gerimos no Google Cloud KMS.
Encriptação ao nível do campo, como camada adicional. Tudo o que possa ser utilizado para envio recebe uma segunda camada de proteção: nomes de utilizador e palavras-passe SMTP, tokens OAuth do Microsoft 365 e do Google, os segredos que armazena, o token de acesso ao Shopify da sua loja e os endereços na sua lista de cancelamento de subscrição. Cada valor é encriptado individualmente com AES-256-GCM utilizando uma chave separada no Cloud KMS, com rotação automática de chaves, e desencriptado na memória apenas no momento em que uma ação é executada. Cada descriptografia de um valor protegido é registada num registo de acesso interno. Os valores secretos são ocultados do histórico de ações antes de este ser gravado e nunca são devolvidos pela API do Desenvolvedor nem ao Sidekick.
Segredos. As credenciais e chaves da API do próprio serviço estão armazenadas no Google Secret Manager e são carregadas quando o serviço é iniciado. Não se encontram no código, nem nas imagens dos contentores, nem no pipeline de compilação.
Minimização de dados. A aplicação é instalada sem acesso aos dados da sua loja. Os dados dos clientes só chegam a um endereço de e-mail porque os transmite a partir do Shopify Flow. As quatro autorizações opcionais (ler o ficheiro de um metacampo relativo a um pedido ou a um cliente, criar um código de desconto único) são solicitadas no momento, concedidas através da caixa de diálogo própria do Shopify e podem ser revogadas a qualquer momento. Consulte Autorizações: o que a aplicação pode ler na sua loja.
Quem pode aceder a quê
- Apenas a sua loja. Cada registo contém a loja a que pertence e cada consulta está limitada à loja que foi autenticada. Uma loja nunca pode ler nem alterar os layouts, remetentes, segredos ou histórico de outra loja.
- Apenas pedidos verificados. As páginas no painel de administração do Shopify são autenticadas com tokens de sessão do Shopify. As etapas do Shopify Flow e os webhooks próprios do Shopify são verificados pela assinatura HMAC do Shopify antes de qualquer dado ser processado, e uma etapa do Shopify Flow que seja enviada duas vezes é executada apenas uma vez.
- Conteúdo renderizado. Os layouts são renderizados nos nossos servidores e o resultado é sanitizado antes do envio: scripts, manipuladores de eventos, URLs «javascript:», iframes e elementos de formulário são removidos, para que um valor transmitido pelo Shopify Flow não se possa transformar em conteúdo ativo na caixa de entrada de alguém.
- Pedidos de saída. Os URLs aos quais a aplicação se liga em seu nome, para a ação HTTP Request, para anexos obtidos a partir de um URL e para ficheiros referenciados por um metacampo, são verificados antes da ligação: são recusados endereços de loopback, link-local, metadados na nuvem e endereços de redes privadas, incluindo através de um redirecionamento. Os redirecionamentos são limitados e o tamanho das respostas é restringido.
- A nossa equipa. O acesso aos sistemas de produção é feito exclusivamente através do Google Cloud IAM, com contas individuais. As ferramentas de manutenção internas não estão expostas à Internet.
Como mantemos a aplicação atualizada
- Todas as alterações são analisadas antes de poderem ser lançadas. O pipeline executa verificações de tipo e linting, testes estáticos de segurança de aplicações (SAST), deteção de informações confidenciais, análise de vulnerabilidades nas dependências e análise de imagens de contentores. O nosso critério de lançamento é a ausência total de vulnerabilidades conhecidas nas dependências e na imagem.
- Ambiente de execução e sistema operativo. A imagem do contentor, o Node.js na sua base Alpine Linux, é recompilada em cada lançamento, pelo que as atualizações do ambiente de execução e do sistema operativo são disponibilizadas de forma contínua. A plataforma Kubernetes gerida mantém os nós subjacentes atualizados.
- Plataforma Shopify. Acompanhamos as versões da API da Shopify e os avisos de segurança relativos às bibliotecas de aplicações da Shopify, aplicando as atualizações de forma imediata. A aplicação funciona com uma versão atual da API de administração.
- Avaliações de segurança. Realizamos uma avaliação interna completa de todas as rotas, percursos de dados e consultas à base de dados a intervalos regulares, tendo a mais recente ocorrido em outubro de 2026.
- Monitorização. A disponibilidade é monitorizada 24 horas por dia e publicada na nossa statuspágina, e os erros alertam-nos. Os registos operacionais são armazenados na mesma região da UE, mantidos durante um período máximo de 30 dias e nunca contêm credenciais nem informações confidenciais.
Conservação e eliminação
- O histórico de ações, que regista o que foi enviado e que, por conseguinte, constitui dados do cliente, é eliminado automaticamente após 30 dias.
- A desinstalação elimina tudo: layouts, remetentes, segredos, histórico, a lista de cancelamento de subscrição e os ficheiros carregados, de forma imediata e irrecuperável.
- Os pedidos de privacidade obrigatórios da Shopify (clientes/data_request, clientes/redact e shop/redact) são tratados automaticamente dentro dos prazos definidos pela Shopify, incluindo a inclusão de um cliente na lista de cancelamento de subscrição.
- A tabela completa do que é armazenado encontra-se em Dados, privacidade e segurança. Os subcontratantes e o calendário de retenção constam da privacye. Pode solicitar-se um acordo de tratamento de dados assinado em workflow-transactional-email.app/dpa.
Comunicar um problema de segurança
Caso considere que identificou uma vulnerabilidade ou necessite de preencher um questionário de segurança, envie um e-mail para support@codecreationlabs.com. Os relatórios de segurança são analisados e respondidos com prioridade.
