Security & Incident Response
Last updated July 12, 2026
GateKeeper is built and operated by 8th Origin LLC. This page describes how we protect the data our app holds, and exactly what we do if something goes wrong. It is deliberately specific: a policy that cannot be checked is not a policy.
What we hold
Deliberately very little. Your store domain and plan, the rules and settings you create, a log of the orders our rules acted on, and a log of storefront visitors the firewall blocked (IP, country, user agent, page). If — and only if — you switch on the Repeat-offender blocklist, we also store the email, phone, and shipping address of buyers whose orders you cancelled or held for fraud. We hold no payment details, no card data, and no customer records beyond that.
How it is protected
- Encryption in transit — all traffic to the app and to our database runs over TLS. The app is served only over HTTPS.
- Encryption at rest — our database (Neon) encrypts stored data and its backups.
- Least privilege — we request the minimum Shopify scopes the features need, and we request protected customer fields only for the blocklist, which is off by default.
- Tenant isolation — every record is scoped to a single store. One merchant's rules, logs, and blocklist are never readable by another; blocklist entries are never pooled or shared across stores.
- Secrets — access tokens and API keys live in server-side environment configuration, never in the client bundle and never in source control.
- Access control — 8th Origin LLC is a single-operator company. Production access is limited to the owner, through provider accounts protected by strong, unique credentials and multi-factor authentication where the provider supports it.
- Separation of environments — development runs against a separate local database. Real merchant data is not copied into development.
- Logging — application, hosting, and database access logs are retained by our providers and are reviewable when investigating an incident.
Data minimisation and retention
Storefront block events are automatically deleted after 90 days and are capped per store per day, so logs cannot grow without bound. Everything we hold for a store is deleted when the app is uninstalled (Shopify's shop/redact). Individual customers are deleted on customers/redact, including any blocklist entry matching them.
If there is a security incident
An incident is any unauthorised access to, loss of, or disclosure of data we hold — or a credible report of one. Our response:
- 1. Contain (immediately). Revoke or rotate the affected credentials, and if necessary take the app offline rather than leave data exposed.
- 2. Assess (within 24 hours). Determine what data was affected, which stores are involved, and how it happened, using hosting and database access logs.
- 3. Notify (without undue delay, and within 72 hours of confirming a personal-data breach). We notify affected merchants directly by email, and Shopify, with what we know, what is affected, and what we are doing. We would rather send an early, incomplete notice than a late, tidy one.
- 4. Remediate. Fix the root cause, not the symptom, and confirm the fix in production.
- 5. Write it down. Record what happened and what changed so the same class of failure cannot recur silently.
Reporting a vulnerability
If you believe you have found a security issue in GateKeeper, please email danny@8thorigin.com with the details and how to reproduce it. We will acknowledge within two business days. We will not pursue legal action against anyone who reports a genuine issue in good faith and does not access or modify other merchants' data while doing so.
Third-party audits
We hold no third-party security certification (such as SOC 2) at this time. We would rather say so plainly than imply an assurance we do not have.
Contact
8th Origin LLC — danny@8thorigin.com