Beveiliging
AppFly schrijft en draait code voor jou. Hier staat precies wat dat betekent voor je gegevens: de isolatiegrens, wat versleuteld wordt, wat nooit wordt verzameld en wat er met alles gebeurt als je vertrekt.
De ene app kan niet bij de andere
Elke app krijgt een eigen Postgres-database en een eigen inlogrol, aangemaakt met REVOKE CONNECT … FROM PUBLIC. De isolatie is een eigenschap van de database, niet van de applicatiecode: een query die een agent in de ene app schrijft, kan niet bij de gegevens van een andere app, ook niet als hij het probeert.
Elke app draait bovendien in een eigen container, met een eigen werkruimte op schijf. Alleen de host wordt gedeeld.
Geheimen zijn versleuteld en worden nooit volledig getoond
Providersleutels, tokens en omgevingsvariabelen worden in rust versleuteld met AES-256-GCM. Een pagina krijgt alleen een gemaskeerde hint — de laatste vier tekens — zodat een scherm of buildlog nooit een volledige sleutel kan lekken.
Sleutels worden in de eigen .env van de gegenereerde app geschreven, in diens werkruimte, de enige plek die ze kan lezen. Zelf geven we precies één omgevingsvariabele uit: de database-URL van de app, omdat wij de database leveren.
De gegevens van je klanten zijn niet van ons
AppFly bewaart accounts, winkeldomeinen, prompts en gegenereerde code. Het leest nooit de klanten, bestellingen of persoonsgegevens in je winkel, en de rechten die we bij Shopify aanvragen omvatten die niet.
Shopify verplicht elke app om drie compliance-webhooks te beantwoorden, en we beantwoorden ze alle drie. De twee over klantgegevens worden bevestigd met een logregel die vastlegt dat we het hebben gecontroleerd en niets hadden — het antwoord dat een merchant later van ons vastgelegd kan willen hebben.
Verwijderen is de standaard, geen supportticket
Een app verwijderen haalt de container, de database, de bestanden, de deployment, het DNS-record en de toegang weg. De databaserij gaat als laatste, zodat een verwijdering die halverwege mislukt opnieuw wordt geprobeerd in plaats van een wees te laten draaien.
Verwijderen uit Shopify wist alles van je winkel binnen 48 uur. Een geplande taak draait elke vijf minuten om af te maken wat de uninstall-handler niet kon voltooien, zodat een onderbroken verwijdering nooit herrijst als actieve app.
Uitloggen trekt de sessie op de server in. Je account opheffen verwijdert alles wat het Privacybeleid (Engels) beschrijft.
Grenzen die we bewaken
Elk verzoek naar een ingelogde pagina is geauthenticeerd, en API-routes beantwoorden een niet-geauthenticeerde aanroep met een leesbare 401 in plaats van een HTML-inlogpagina.
Facturatiewebhooks zijn ondertekend en worden gecontroleerd tegen de ruwe request-body. Een deployment zonder ingesteld webhookgeheim geeft voor dat endpoint 404 — niet ondertekend is niet geauthenticeerd, niet open — en een foute handtekening is een 401.
De beheerconsole zit achter een wachtwoord en een ondertekende cookie, en de bevoorrechte hostbewerkingen zijn een vaste lijst functies zonder generieke shell. Hij is niet bereikbaar via de publieke site en robots.txt sluit hem uit.
Een kwetsbaarheid melden
Stuur hem naar [email protected] met genoeg details om hem te reproduceren en een idee van de impact. We bevestigen de ontvangst en vertellen je wat we eraan doen. Geef ons een redelijke termijn voordat je hem openbaar maakt, en test niet tegen gegevens van andere klanten.
Voor alles wat geen beveiligingskwestie is, is [email protected] het juiste adres.