Shopify app · by Lambda House

Backup, restore and export your Shopify shop — into your own Google Drive.

StoreBack takes point-in-time snapshots of your shop's catalog content and 60-day order metadata, and uploads them file-by-file into a folder we create inside your Drive. Media is stored once and shared across backups, so repeat runs upload almost nothing. Read-only on the Shopify side. No customer PII. No marketing pixels. No data resale.

Currently rolling out: StoreBack — Backup (free). Restore and Export tiers in beta. Hosted in the EU (Hetzner, Falkenstein).

What it does

A focused, narrow tool. Each backup is a self-contained, point-in-time folder in your own Drive — JSON entries plus a manifest.json index, with media bytes deduped into a shared folder. Yours to keep for as long as you want.

Snapshot

Catalog & structure

Products, variants, collections, pages, blogs, articles, metaobjects, files, theme settings, locations, inventory, translations, publications, markets, policies, delivery profiles, discounts.

Snapshot

Order metadata (60 days, no PII)

Line items, totals, taxes, discounts, fulfillment + financial status, timestamps, currency, tags, order number. No customer link, address, email, or phone — by query, by scope.

Destination

Your Google Drive

One folder per backup, plus a shared media/ folder where each image is stored once and reused across runs. We use the drive.file scope — we can only see files we create. Everything else in your Drive is invisible to us.

Retention

30-min server-side window

On our side, snapshot bodies live for 30 minutes — just long enough to push to your Drive or for you to download directly. After that an automatic sweeper deletes them. Long-term retention is yours.

Schedules

Manual or scheduled

Click "Back up now" from inside the Shopify admin, or set a daily / weekly schedule. Concurrency capped at 1 in-flight backup per shop; the 3 most-recent stay in the 30-min window.

Notifications

Email outcomes (opt-in)

Per-category opt-in for "backup succeeded", "backup failed", and "Drive reauth needed". Every email has an "unsubscribe from all" link. No marketing.

How it works

Four steps. The Drive connection step is optional — without it, snapshots are still produced, but only for the 30-minute window.

Install on Shopify

Standard OAuth on the Shopify side. We request only read scopes that match the data above — no read_customers, no read_all_orders.

Connect Drive (optional)

One-tap Google OAuth. We request drive.file only — access limited to the files we create.

Back up

Trigger manually or set a schedule. StoreBack queries Shopify, writes the snapshot into a per-run folder under your shop, and uploads any new media bytes alongside it. Progress is visible per file; partial runs resume cleanly.

Restore or export

Each snapshot folder in your Drive carries a manifest.json that names every entity file and every referenced media sha — self-describing without unpacking. Restore re-applies catalog state from any snapshot; Export transforms a snapshot into a portable bundle (CSV, JSONL, or per-entity files) for external tools.

Google access we ask for

For Google's OAuth verification reviewers and for merchants who want the full picture before connecting Drive.

App name
StoreBack: Backup, Restore and Export (publisher: Lambda House)
Homepage
Privacy policy
Support
Scope requested
https://www.googleapis.com/auth/drive.file
Why this scope
To create one folder per installed shop (named after the shop's myshopify.com domain), one sub-folder per backup, plus a shared media/ folder where each image is uploaded once and reused across runs. The drive.file scope restricts us at the API level to only the files our app creates — we cannot see, list, read, or modify any other file in your Drive. This is the narrowest scope Google offers for write access; we deliberately do not request drive or drive.readonly.
Tokens stored
OAuth refresh token only. Encrypted at rest with AES-256-GCM; the encryption key lives in a separate Kubernetes secret, not in the database.
Revocation
Revoke at any time from myaccount.google.com/permissions. The embedded app will surface a "Reconnect Google Drive" banner the next time it runs.

What we don't touch

The boundary is enforced by scope, by query, and by code — not by promise.

In scope

  • Shopify catalog content (read-only)
  • Order metadata, last 60 days, no PII fields
  • Files in the Shopify admin Files section
  • Theme settings JSON (not theme code)
  • One per-shop folder we create in your Drive (one sub-folder per backup, plus a shared media/)

Out of scope

  • Shopify customers — no read_customers scope
  • Order PII — customer link, address, email, phone (omitted by query)
  • Orders older than 60 days — no read_all_orders scope
  • Draft orders, abandoned checkouts, returns, gift cards, payments, payouts
  • Anything in your Drive we didn't create — drive.file prevents it
  • Analytics SDKs, ad pixels, error trackers, third-party cookies

Where things live

EU hosting

Our side

PostgreSQL on Hetzner Online GmbH (Falkenstein, Germany). Application logs include shop domain + operation id — no tokens, no request/response bodies. TLS in transit; AES-256-GCM at rest for credentials.

Your side

Drive side

Snapshot folders live under one per-shop folder we create in your Drive, under your control. We never read them back or copy them anywhere. Delete them whenever you want — that's the end of the line.

Mandatory webhooks

Shopify GDPR webhooks

customers/data_request · customers/redact · shop/redact — all three handled, HMAC-verified. We have nothing customer-keyed to redact; shop/redact wipes the shop's record inline.

Uninstall

Clean exit

Uninstalling from Shopify admin scrubs the access token on our side immediately. Snapshot bodies are already gone (30-min sweeper). Your Drive folder stays in your Drive — your call whether to keep it.

Talk to us

Questions about scope, privacy, or how a specific entity type is serialized? We answer email.