Beveiliging

Beveiliging

Pagina kopiëren

Beveiliging van Workflow Trigger Extensions voor Shopify Flow: techniek, hosting in de EU (België), versleuteling, gegevensisolatie en updates.

Workflow Trigger Extensions wordt ontwikkeld en beheerd door Code Creation Labs. Op deze pagina wordt uitgelegd waaruit de app bestaat, waar deze draait, hoe de gegevens van uw winkel worden beschermd en hoe wij alles up-to-date houden. Deze pagina is bedoeld voor winkeleigenaren en voor iedereen die een beveiligingsvragenlijst invult. De juridische aspecten (privacybeleid, gegevensverwerkingsovereenkomst, subverwerkers) vindt u op Juridische informatie en gegevensbescherming.

Waarop de app is gebaseerd

Laag Wat wij gebruiken
Toepassingscode TypeScript op Node.js, een huidige release met langdurige support. Elk onderdeel van de applicatie, van de beheerpagina’s tot de workers die uw gebeurtenissen verwerken, maakt deel uit van één codebasis.
Database en cache PostgreSQL (Google Cloud SQL) en Redis (Google Cloud Memorystore)
Hosting Containers op Google Kubernetes Engine in de Google Cloud-regio europe-west1 (België, Europese Unie). Databases, caches en bestandsopslag bevinden zich binnen de regio.
Shopify-integratie Shopify
Uw webshop Er wordt niets uitgevoerd in uw thema. De optionele webpixel achter Triggers voor de winkelpagina wordt uitgevoerd binnen de pixel-sandbox van Shopify en wordt alleen geïnstalleerd wanneer u een webshop-trigger inschakelt.

Er wordt nergens in de dienst gebruikgemaakt van PHP, WordPress, Java of andere runtime-omgevingen. De app staat vermeld in de Shopify App Store en heeft de app-beoordeling van Shopify doorstaan, waarbij wordt getoetst of de app voldoet aan de vereisten van Shopify op het gebied van beveiliging en de bescherming van klantgegevens.

Hoe uw gegevens worden beschermd

Tijdens de overdracht. Elke verbinding tussen uw browser, Shopify en de app maakt gebruik van TLS. De database en de cache hebben geen openbaar adres: ze zijn uitsluitend bereikbaar vanuit ons interne netwerk.

In rust. Alle databases en opslag worden in rust versleuteld met sleutels die wij beheren in Google Cloud KMS.

Daarnaast wordt er versleuteling op veldniveau toegepast. De meest gevoelige waarden krijgen een tweede beveiligingslaag: het Shopify-toegangstoken van uw winkel en de beschermde klantgegevens (namen, e-mailadressen, telefoonnummers, postadressen) die worden gelezen door de opt-in-triggers voor persoonsgegevens. Elk record wordt afzonderlijk versleuteld met AES-256-GCM onder een aparte sleutel in Cloud KMS, met automatische sleutelrotatie. De waarden worden pas in het geheugen gedecodeerd op het moment dat ze nodig zijn, bijvoorbeeld wanneer een trigger wordt geactiveerd, en ze worden nooit naar logbestanden geschreven. Bij het detecteren van wijzigingen in persoonsgegevens worden hashes vergeleken, zodat de app kan vaststellen dat een waarde is gewijzigd zonder deze te decoderen.

Geheimen. API-inloggegevens en -sleutels worden bewaard in Google Secret Manager en worden geladen wanneer een dienst wordt gestart. Ze staan niet in de code, niet in de containerimages en niet in de build-pijplijn.

Gegevensminimalisatie. De app vraagt bij de installatie geen toegang tot gegevens. Elke toestemming is op basis van opt-in, beperkt tot één soort gegevens en kan te allen tijde worden ingetrokken. Zie Toestemmingen en toegang tot gegevens.

Wie heeft toegang tot wat?

  • Uw winkel uitsluitend. Elk record bevat de winkel waartoe het behoort, en elke zoekopdracht is beperkt tot de winkel waarmee men is geauthenticeerd. De ene winkel kan nooit de gegevens van een andere winkel lezen of wijzigen.
  • Alleen geverifieerde verzoeken. Pagina’s binnen de Shopify-beheerdersomgeving worden geauthenticeerd met Shopify-sessietokens. Webhooks en Shopify Flow-callbacks worden geverifieerd aan de hand van de HMAC-handtekening van Shopify, en interne berichten aan de hand van door Google ondertekende identiteiten, voordat er gegevens worden verwerkt. Elke Shopify-gebeurtenis wordt één keer verwerkt en op dubbele exemplaren gecontroleerd aan de hand van de gebeurtenis-ID.
  • Aangepaste trigger. JavaScript dat u zelf schrijft voor Aangepaste triggers, wordt uitgevoerd in een geïsoleerde sandbox met een tijds- en geheugenlimiet, op een infrastructuur die losstaat van de eigen servers van de app. Het krijgt nooit inzage in de inloggegevens van de app of uw Shopify-toegangstoken. De enige manier waarop het toegang krijgt tot uw winkel is via een kortstondig token dat aan uw winkel is gekoppeld en binnen een minuut verloopt.
  • Ons team. Toegang tot de productiesystemen is uitsluitend mogelijk via Google Cloud IAM met individuele accounts. Interne onderhoudstools zijn niet toegankelijk via het internet.

Hoe wij de app up-to-date houden

  • Elke wijziging wordt gescand voordat deze kan worden uitgebracht. De pijplijn voert typecontroles en linting uit, evenals statische applicatiebeveiligingstests (SAST), detectie van vertrouwelijke gegevens, het scannen op kwetsbaarheden in afhankelijkheden en het scannen van containerimages. Onze release-drempel is nul bekende kwetsbaarheden in de afhankelijkheden en in de image.
  • Runtime en besturingssysteem. De containerimage, Node.js op basis van Alpine Linux, wordt bij elke release opnieuw gebouwd, waardoor er voortdurend patches voor de runtime en het besturingssysteem worden geleverd. Het beheerde Kubernetes-platform zorgt ervoor dat de onderliggende knooppunten up-to-date blijven.
  • Het Shopify-platform. Wij volgen de API-versies van Shopify en de beveiligingsadviezen voor de app-bibliotheken van Shopify op de voet en voeren updates onmiddellijk door. De app draait op een actuele versie van de Admin API.
  • Beveiligingscontroles. Voorafgaand aan elke wijziging die betrekking heeft op authenticatie, sessies of blootstelling van gegevens wordt een geautomatiseerde beveiligingscontrole uitgevoerd, en wij voeren met regelmatige tussenpozen een volledige interne controle uit van elke route, elk gegevenspad en elke databasequery; de meest recente controle vond plaats in oktober 2026.
  • Monitoring. De beschikbaarheid wordt 24 uur per dag gemonitord en gepubliceerd op onze statuspagina; bij fouten ontvangen wij een melding. Operationele logbestanden worden maximaal 30 dagen bewaard en bevatten nooit tokens, geheime gegevens of klantgegevens.

Bewaring en verwijdering

  • De gebeurtenisgeschiedenis wordt na 30 dagen automatisch verwijderd.
  • De momentopnames die de app bijhoudt om wijzigingen te detecteren (de laatst bekende status van een product, bestelling of klant) blijven bewaard zolang de app is geïnstalleerd, omdat de volgende wijziging aan de hand daarvan wordt gedetecteerd.
  • Wanneer u de app verwijdert, wordt de toegang tot uw winkel onmiddellijk beëindigd. Het verzoek tot verwijdering of redigering van Shopify, dat 48 uur na het verwijderen wordt verzonden, wist de beschermde klantgegevens en alle gegevens die uw aangepaste trigger had opgeslagen.
  • Shopify
  • De subverwerkers en het volledige bewaarschema zijn te vinden in het privacybeleid. Een ondertekende gegevensverwerkingsovereenkomst kunt u opvragen via workflow-trigger-extensions.app/dpa.

Een beveiligingsprobleem melden

Indien u denkt een kwetsbaarheid te hebben ontdekt, of indien u een beveiligingsvragenlijst wilt laten invullen, kunt u een e-mail sturen naar support@codecreationlabs.com. Beveiligingsrapporten worden met voorrang behandeld en beantwoord.