Segurança
Segurança do Workflow Trigger Extensions para Shopify Flow: TypeScript e Node.js, alojamento na UE (Bélgica), encriptação e isolamento dos dados da loja.
O Workflow Trigger Extensions é desenvolvido e gerido 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 aos proprietários de lojas e a qualquer pessoa que preencha um questionário de segurança. A parte jurídica (política de privacidade, acordo de tratamento de dados, subcontratantes) encontra-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. Todas as partes da aplicação, desde as páginas de administração até aos workers que processam os seus eventos, 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 e o armazenamento de ficheiros encontram-se na própria região. |
| Integração com o Shopify | Shopify |
| A sua loja virtual | Nada é executado no seu tema. O pixel da web opcional associado ao Acionadores da loja virtual é executado no ambiente de teste de pixels da Shopify e só é instalado quando ativa um gatilho da loja virtual. |
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 loja 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 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 os meios de armazenamento são encriptados em repouso com chaves que gerimos no Google Cloud KMS.
Encriptação ao nível do campo, como camada adicional. Os valores mais sensíveis recebem uma segunda camada de proteção: o token de acesso da sua loja ao Shopify e os dados protegidos dos clientes (nomes, endereços de e-mail, números de telefone, endereços postais) lidos pelos gatilhos de dados pessoais com consentimento prévio. Cada registo é encriptado individualmente com AES-256-GCM utilizando uma chave separada no Cloud KMS, com rotação automática de chaves. Os valores são desencriptados na memória apenas no momento em que são necessários, por exemplo, quando um gatilho é acionado, e nunca são gravados nos registos. A deteção de alterações nos dados pessoais compara hashes, pelo que a aplicação consegue determinar que um valor foi alterado sem o desencriptar.
Segredos. As credenciais e chaves da API estão armazenadas no Google Secret Manager e são carregadas quando um 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 não solicita acesso a quaisquer dados aquando da instalação. Todas as autorizações são de aceitação expressa, limitadas a um único tipo de dados e podem ser revogadas a qualquer momento. Consulte Autorizações e acesso aos dados.
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 dados de outra loja.
- Apenas pedidos verificados. As páginas no painel de administração do Shopify são autenticadas através de tokens de sessão do Shopify. Os webhooks e os callbacks do Shopify Flow são verificados através da assinatura HMAC do Shopify, e as mensagens internas através de identidades assinadas pelo Google, antes de qualquer dado ser processado. Cada evento do Shopify é processado uma única vez, sendo desduplicado com base no seu ID de evento.
- Gatilho personalizado. O código JavaScript que escreve para Gatilhos personalizados é executado num ambiente isolado (sandbox) com limites de tempo e de memória, numa infraestrutura separada dos servidores da própria aplicação. Este código nunca tem acesso às credenciais da aplicação nem ao seu token de acesso ao Shopify. A única forma de aceder à sua loja é através de um token de curta duração, vinculado à sua loja e que expira no prazo de um minuto.
- 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 tipos e linting, testes estáticos de segurança de aplicações (SAST), deteção de segredos, 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.
- Revisões de segurança. É executada uma auditoria de segurança automatizada antes de qualquer alteração que afete a autenticação, as sessões ou a exposição de dados, e realizamos uma revisã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 conservados durante um período máximo de 30 dias e nunca contêm tokens, segredos ou dados de clientes.
Conservação e eliminação
- O histórico de eventos é eliminado automaticamente após 30 dias.
- Os registos que a aplicação mantém para detetar alterações (o último estado conhecido de um produto, pedido ou cliente) permanecem enquanto a aplicação estiver instalada, uma vez que a próxima alteração é detetada em comparação com esses registos.
- Quando desinstalar a aplicação, o acesso da mesma à sua loja é eliminado imediatamente. O pedido de remoção/supressão da Shopify, que ocorre 48 horas após a desinstalação, apaga os dados protegidos dos clientes e tudo o que o seu gatilho personalizado tenha armazenado.
- Shopify
- Os subcontratantes e o calendário completo de retenção de dados constam da privacypolicy. Pode solicitar-se um acordo de tratamento de dados assinado através do endereço [workflow-trigger-extensions.app/dpaxml-ph-0004.
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.
