Security

How we protect your store and your shoppers’ data.

What the product does today to protect store and shopper data, what it does not do yet, and where the limits are.

Access and tenant isolation

Your data stays inside your workspace.

Every dashboard session is verified, and every action is checked against the workspace that owns it, on every request.

  • Dashboard access requires a signed-in session, checked in middleware and again on every page you load.
  • Each merchant’s sites, leads, domains, and conversations are resolved from your session server-side. You only ever see your own workspace.
  • Every action that changes a site, domain, or intent re-checks that it belongs to your workspace before it runs, not just once at login.
  • Requests from Shopify are verified before we trust them: signed OAuth callbacks, signed embedded-app session tokens, and signed storefront requests.
  • Shopify Admin API tokens are encrypted at rest (AES-256-GCM). The database key with full access never reaches the browser; the browser only ever gets a locked-down key with no access to tenant tables.

Shopper photos and data retention

Your photo is not kept longer than it needs to be.

What happens to a photo from the moment you upload it for a try-on.

  • Your try-on photo is sent directly to our AI provider to generate the preview. We do not store the uploaded photo on our servers.
  • The generated result is kept for up to 30 minutes, then automatically deleted by a cleanup job that runs every 10 minutes.
  • The generated result is only reachable through short-lived signed links, capped at 5 minutes and tied to your own session. It never has a public URL.

Shopify data and privacy requests

Shopify privacy requests are verified, recorded, and handled.

We receive Shopify’s three mandatory privacy webhooks. Each one is signature-verified and recorded the moment it arrives, and our team is notified by email.

  • Shop redact (after uninstall): the store’s operational data is removed. Billing and transaction records are kept for accounting and legal purposes.
  • Customer redact: that customer’s matched visitor record, conversations, and uploaded attachments are removed.
  • Customer data request: the records we hold on that customer are compiled for the merchant, who responds to the shopper, as Shopify’s process requires.

Automated fulfillment of these requests is built but currently switched off. Today our team fulfills each request after it is recorded.

Analytics and monitoring

Nothing is tracked until you say yes.

  • No analytics events or analytics cookies are collected until a visitor gives consent. The default is off.
  • What we track is behavior, like which step a shopper reached, not personal content. No photos, emails, phone numbers, or message text are ever sent to analytics.
  • Short-lived authentication tokens in URLs are stripped before any error or analytics event leaves your browser or our servers.
  • Error and performance monitoring runs across the app so we can fix problems. It is not tied to the analytics choice, and the same token scrubbing applies.

Application safeguards

Guardrails on the parts that touch money, data, and the AI.

  • API requests are rate-limited per IP and session. If the rate limiter itself is unavailable, requests are rejected rather than let through unchecked.
  • Knowledge-base URL imports are restricted to public HTTPS destinations and block known private and internal network addresses.
  • The support AI treats store knowledge, merchant notes, and shopper messages as reference data, never as instructions. Account and order actions are authorized by your verified session, never by anything the AI outputs.
  • Calls to AI providers are bounded by a hard timeout and are not automatically retried, so a stalled provider cannot cascade into duplicate work.
  • Every release runs a dependency audit and a container vulnerability scan before it can ship. The exact image we deploy is re-scanned, and each deploy is verified live against the deployed commit before it is considered complete.

Service providers that process data

Who else touches your data, and why.

This reflects what is actually wired into the product today. It changes if we add or remove a provider.

  • OpenRouter

    Receives your try-on photo and the garment image to generate the preview, and image attachments sent in support chat. We have not independently verified OpenRouter’s own data-retention terms.

    AI image generation
  • Groq

    Receives conversation text and voice audio to power chat replies, speech-to-text, and text-to-speech. Photos are never sent to Groq.

    AI chat and voice
  • Supabase

    Stores operational and support data, conversations, and uploaded try-on results, behind access restricted to our backend. Nothing in these tables is publicly reachable.

    Database and file storage
  • Clerk

    Handles dashboard authentication and holds the account email linked to your sign-in.

    Merchant sign-in
  • Gmail SMTP

    Sends Store Chat handoff notifications to your team and privacy-request alerts to ours. An outreach email sender for prospective merchants exists in the code but is switched off in production.

    Email delivery
  • Sentry

    Receives error reports, stack traces, and page addresses with sign-in tokens removed. Runs for every visitor to keep the service working.

    Error and performance monitoring
  • PostHog

    Receives usage events only after a visitor allows analytics. No photos, message text, emails, or phone numbers.

    Product analytics
  • Upstash

    Receives the requester’s IP address and request keys to enforce usage limits.

    Rate limiting
  • Hostinger

    Runs the servers that serve this site and the app, so all traffic passes through it.

    Application hosting

Honest about scope

Not in place yet

  • Independent security certification or audit

    No third-party security certification or audit report exists today.

    Not available
  • Public status page

    There is no public uptime or incident status page yet.

    Not available
  • Customer-facing data processing agreement (DPA)

    A standard DPA for merchants is not available yet.

    Not available
  • Privacy policy and terms of service

    Published privacy policy and terms of service pages are pending.

    Pending
  • Role-based permissions within a workspace

    Every workspace member currently has the same dashboard capabilities as the owner. Per-role permissions are not enforced yet.

    Not available

Reporting a concern

Found something? Tell us directly.

If you find a vulnerability or have a concern about how we handle data, email us and we will follow up directly.

Email grindctrlnow@gmail.com
GrindCTRL Security