Privacy Policy
App: Bucketback (the "App") Operator: Ravish Labs, a sole proprietorship of {{OWNER_LEGAL_NAME}}, {{STREET_ADDRESS}}, Bengaluru, Karnataka {{PIN}}, India ("we", "us") Contact: privacy@{{DOMAIN}} Effective: {{DATE}} · Version 1.0
This policy explains what data the App accesses when a Shopify merchant ("you") installs it, where that data goes, how long we keep it, and your rights. It is written to meet Shopify's privacy requirements for App Store apps (https://shopify.dev/docs/apps/launch/privacy-requirements), the EU/UK GDPR, the California CCPA/CPRA, and India's Digital Personal Data Protection Act, 2023 (DPDP Act).
1. Roles
For store data processed on your instructions (backing up and restoring your catalog, content and themes) you are the controller (GDPR) / business (CCPA) / data fiduciary (DPDP) and we are your processor / service provider / data processor. Section 11 contains the processing terms that apply to that relationship.
For the limited account data we hold about you as our customer (section 2.3), we are the controller.
2. What we access and store
2.1 Store data accessed through the Shopify Admin API
On install the App requests these access scopes: read_products, write_products, read_content, write_content, read_online_store_navigation, write_online_store_navigation, read_themes, write_themes, read_discounts, write_discounts. Using them, the App reads and (only during a restore you start) writes:
- Products, variants, prices, SKUs, product metafields
- Collections
- Online-store pages
- Navigation menus
- Discounts (codes and automatic discounts)
- Theme files (Liquid, JSON, CSS, JavaScript, settings)
We do not request access to orders, customers, inventory levels, checkouts, payments or any other scope. The App does not receive Shopify "protected customer data" and does not process end-customer personal data. If a merchant stores personal data inside a product, page, metafield or theme file, it is backed up as-is; see section 6.
The App also receives webhooks from Shopify for product, collection and theme create/update/delete events, app/uninstalled, app/scopes_update, and the three mandatory compliance topics (section 7).
2.2 Where store data is stored
Your bucket (primary copy). Every backup is written as plain JSON and Liquid files to an S3-compatible storage bucket that you own and configure (for example AWS S3, Cloudflare R2, Backblaze B2 or MinIO). We are not the controller or processor of data at rest in your bucket beyond writing to it and reading from it on your instruction. Its location, encryption, retention and access are governed by your agreement with that storage provider.
Our database (working copy). To compute diffs and the change log we keep, on our servers:
- The current state of your products, collections and pages (not historical versions, not themes, not discounts);
- Backup metadata: snapshot IDs, timestamps, object keys and checksums, byte counts, job status;
- The change log: for each edit, the resource ID, the changed field names with before/after values, the timestamp, and the Shopify staff account name or ID that Shopify reports as having made the change.
2.3 Account and configuration data
- Your
myshopify.comdomain, shop ID, store name, store owner name and email, and the Shopify plan name (from the Shopifyshopresource), used to run the App and to send service emails about failed backups, restores and billing. - The bucket endpoint, region, bucket name and access key pair you enter. The secret key is encrypted at rest (AES-256-GCM) with a key held outside the database and is decrypted only inside the backup worker at run time.
- Your chosen plan and trial status, as reported by Shopify App Pricing.
- Support correspondence you send us.
2.4 Technical data
Standard server logs (IP address, user agent, request path, timestamp, error traces) for security and debugging. We do not use advertising cookies, third-party analytics beacons, or any tracking inside the App. The App sets only the session cookies required by Shopify App Bridge/session-token authentication.
3. Why we process it (purposes and legal bases)
| Purpose | Data | Legal basis (GDPR) |
|---|---|---|
| Run backups, diffs, change log and restores you request | 2.1, 2.2 | Performance of contract (Art. 6(1)(b)); your instructions as controller |
| Operate your account, bill through Shopify, send service notices | 2.3 | Performance of contract |
| Security, abuse prevention, debugging | 2.4 | Legitimate interests (Art. 6(1)(f)) |
| Legal compliance (tax records, lawful requests) | 2.3 | Legal obligation (Art. 6(1)(c)) |
We do not sell personal data, do not "share" it for cross-context behavioural advertising (CCPA), do not use it to train models, and do not use it for any purpose other than providing the App.
4. Who can see it (subprocessors)
| Subprocessor | Purpose | Location |
|---|---|---|
| Shopify Inc. / Shopify International Ltd | Platform, APIs, webhooks, billing, session auth | Canada / Ireland / global |
| {{HOSTING_PROVIDER}} (e.g. Fly.io / Railway / Hetzner) | Application and worker hosting | {{REGION}} |
| {{POSTGRES_HOST}} (e.g. Neon / Supabase / self-hosted on the above) | Managed PostgreSQL for the data in 2.2-2.3 | {{REGION}} |
| {{EMAIL_PROVIDER}} (e.g. Postmark / Resend) | Transactional service emails | {{REGION}} |
| Your storage provider (AWS, Cloudflare, Backblaze, your MinIO host) | Your bucket; engaged by you, not by us | Your choice |
We will update this table and notify you by email at least 14 days before adding a subprocessor that will handle your store data. No other third party receives your data except as required by law.
5. International transfers
We are established in India. Data in 2.2-2.4 is stored with the hosting and database providers above in {{REGION}}. Where EU/UK personal data is transferred to India or any other third country, we rely on the EU Standard Contractual Clauses (and the UK Addendum) incorporated into section 11, plus the technical measures in section 8.
6. Personal data inside your store content
Shopify catalog, page, menu, discount and theme data is normally not personal data. If you place personal data in those objects (for example a customer's name in a page or a metafield), the App will copy it faithfully into your bucket and into our working copy, and you remain responsible for having a lawful basis for that. We never attempt to extract or index personal data from those fields.
7. Shopify compliance webhooks
The App subscribes to all three mandatory topics, verifies the Shopify HMAC on every request (rejecting invalid signatures with HTTP 401), and acknowledges with HTTP 200:
customers/data_request– we hold no end-customer data, so we respond to Shopify and to you that there is nothing to return. If a merchant believes customer data is present in backed-up content (section 6), contact us and we will search the working copy within 30 days.customers/redact– same as above; nothing to delete in the working copy. Data in your bucket is yours to delete.shop/redact– sent by Shopify 48 hours after uninstall. We permanently delete every row for that shop: sessions, configuration (including the encrypted bucket credentials), current-state data, metadata and change log. Completed within 30 days; in practice within minutes of receipt. We never delete anything in your bucket.
8. Security
- All traffic to Shopify, to your bucket and to the App over TLS 1.2+.
- Bucket secret keys encrypted at rest (AES-256-GCM); database encrypted at rest by the provider; least-privilege credentials for the worker.
- Session-token (JWT) authentication through Shopify App Bridge; no password store of our own.
- Each restore writes an automatic safety backup first, so a restore cannot destroy data irrecoverably.
- Access to production systems is limited to the operator, protected by hardware-key MFA, and logged.
- We will notify you without undue delay, and in any event within 72 hours of becoming aware, of a personal-data breach affecting your data, with the information you need to meet your own notification duties.
9. Retention
| Data | Kept until |
|---|---|
| Current-state working copy, metadata, change log, configuration | shop/redact (48 h after uninstall) or your written request, whichever first |
| Sessions / access tokens | Uninstall (app/uninstalled) |
| Backups in your bucket | Never touched by us; controlled by you and your bucket lifecycle rules |
| Server logs | 30 days |
| Billing and tax records (invoice-level only, no store data) | 8 years, as required by Indian tax law |
| Support email | 2 years |
10. Your rights
Merchants, store staff whose names appear in the change log, and any other individual may ask us to access, correct, delete, restrict or port personal data we hold, or object to processing, by emailing privacy@{{DOMAIN}}. We answer within 30 days (shorter where the law requires). EU/UK residents may complain to their supervisory authority; California residents have the rights in the CCPA/CPRA (we do not sell or share data, so there is nothing to opt out of); Indian data principals may escalate to the Data Protection Board of India. We will not discriminate against you for exercising a right. For requests about data in your store, we will usually act on your instruction as controller.
11. Data processing terms (apply when you are the controller)
- We process store data only on your documented instructions, which are: install, backup, diff, change log, restore, export, and deletion as described here.
- Persons we authorise are bound by confidentiality.
- We implement the measures in section 8.
- We engage only the subprocessors in section 4 under written terms no less protective than these, and remain liable for them.
- We assist you with data-subject requests, security, breach notification and DPIAs as far as the App's design allows.
- On termination we delete the working copy as in section 9; your bucket copy is already in your possession.
- We make available the information needed to demonstrate compliance and allow audits, at your cost, once a year on 30 days' notice, under NDA.
- Transfers: the EU SCCs (Module 2, controller-to-processor) and UK Addendum are incorporated by reference; the parties' details and annexes are this policy's sections 2, 4 and 8.
12. Children
The App is a business tool for Shopify merchants and is not directed at anyone under 18.
13. Governing law and changes
This policy is governed by the laws of India, without prejudice to protections you have under the GDPR, UK GDPR or CCPA. We will post changes here, update the version and date, and email you at least 14 days before any change that reduces your rights.
14. Contact
Ravish Labs ({{OWNER_LEGAL_NAME}}), {{STREET_ADDRESS}}, Bengaluru, Karnataka {{PIN}}, India privacy@{{DOMAIN}} · support@{{DOMAIN}} Grievance officer (DPDP Act / IT Rules): {{OWNER_LEGAL_NAME}}, same address and email; acknowledges within 24 hours, resolves within 15 days.