// trust center
Security posture, in plain text.
Magistry writes to your live systems, so this page says how access, approvals, audit and your data are handled, and what we do not have yet. Each statement is traced to our code or to the provider's own page.Not yet in place: a third-party audit report, a penetration-test report, single sign-on, SCIM user provisioning, required two-factor sign-in for Magistry staff, a published internal-access policy, personnel screening and security training, a review of each sub-processor's data-protection terms, point-in-time recovery and recovery commitments, a published incident-response plan, a general retention schedule and automated deletion for accounts not on Shopify.
// at a glance
Where we stand today.
Data location
The database runs on Supabase in AWS eu-west-1 (Ireland) and the background workers on Railway in Amsterdam. AI model providers are in the United States, and the full sub-processor list states each region.
GDPR
Where we process personal data for you we act as your processor under the Data Processing Addendum, which is public and lists every sub-processor. Shopify's three mandatory privacy webhooks are verified and handled on receipt.
Payments
Card payments run through Shopify billing or Stripe's hosted checkout. Card numbers are entered on their pages and never reach Magistry.
Certifications
Magistry has no SOC 2 report, ISO 27001 certificate or other third-party certification of its own yet. The providers we run on hold their own, and their statements are linked under data handling.
// access control
Who can see what, and how it is enforced.
Roles per store
Each store member is an Owner, Admin, Staff or Viewer, and store access for signed-in users and API callers is enforced by Postgres row-level security in the database. Staff can act but not configure billing, agents or the team; Viewers can only read.
Enforced in the database
Access is checked in the database, not only in the interface. Row-level security switches on automatically for every new table, and an hourly check raises a critical alert if any table is without it.
Apps act as apps
A third-party app's token carries the stores and the write permission it was granted. The database intersects those with the granting user's own access, so an app never reaches a store its user cannot, and a read-only app can write nothing.
Revocation is immediate
Revoking an app refuses every token issued under that grant from its next request, including tokens already handed out. If the revocation check itself cannot run, the request is refused.
Sign-in and sessions
Sign in with a password, a passkey, Google or GitHub, and add an authenticator-app second factor. Workspace owners can require that second factor and cap how long a session lasts.
Offboarding
Workspaces can deprovision members over SCIM 2.0. Revoking a member removes their store access everywhere the database checks it.
// agent controls
What the agents may do, and who decides.
You set the mode
The Marketing Brain can be off, propose for approval, rehearse without writing, or act on its own. Until you choose a mode, it changes nothing in your ad accounts.
Rules the agents cannot cross
Store action policies block or cap an action, for example never setting a daily budget above €25. A person can pre-approve one named low-risk action up to a daily limit; actions that move money are never eligible.
Biometric approval on mobile
In the mobile app, approving anything that moves money or cannot be undone needs Face ID or a fingerprint, and the server verifies the signed proof rather than trusting the phone.
One owner per field
Prices, catalog fields, theme files and campaign settings each have one owner at a time, enforced by a unique index in the database. Jobs that spend money, send mail or write to your store hold a per-store lock, so two copies of the same job never run at once.
A kill switch per store
One per-store switch stops the catalog, ads, customer-service, promotions, feed, reputation and social agents from writing or spending. It does not yet cover launch steps, theme deploys (scheduled or by the Theme Architect) and timed theme reverts, Creative Studio, or automatic refunds on pre-dispute alerts.
Decisions carry evidence
Catalog and price decisions are recorded with the evidence behind them. A price change, a draft or an archive can be reverted from its row; a refund or a sent reply is final.
// audit
What is recorded, and for how long.
Every API and MCP call
Every tool call through the API or the MCP server writes an audit row before the response returns. Every tool listing is audited too.
Access logs are kept
API, account, operator and OAuth-grant logs cannot be deleted before they are a year old. A database trigger refuses an earlier deletion.
Yours to export
Workspace owners can export the workspace security log as CSV or JSON, alongside product, order and finance exports.
// data handling
Where your data lives and how it is protected.
Encryption
Supabase, which holds the database, and Vercel, which serves the web app, each state that they encrypt data at rest with AES-256 and use TLS in transit. Their pages are linked below. Our workers require TLS on their database connection by default, and calls from the database to the workers are signed so they cannot be forged.
Secrets
Tokens for connected services are stored encrypted in Supabase Vault, not in table columns. Magistry API keys are stored only as hashes. A health check alerts if a Shopify token ever appears in plain text, and if a connection's token stops working, you are alerted to reconnect.
Privacy requests
A customer erasure request from Shopify anonymises that customer's personal data across every table that holds it and deletes their attachments. A shop redaction anonymises personal data and keeps non-personal store history.
Uninstall and retention
When you uninstall, we revoke our Shopify credentials and stop the store's scheduled jobs; a daily job anonymises the shop's personal data once 48 hours have passed. Click identifiers lose their IP address and user agent after 90 days. Raw product-usage events are deleted six months after the end of the month they were recorded in; none is that old yet.
What our core providers state about themselves
These are the providers' own statements, on their own pages. They describe the providers, not an audit of Magistry.
Supabase (database)
States it is SOC 2 Type 2 compliant and ISO 27001 certified, and that data is encrypted at rest with AES-256 and in transit with TLS.
Source: supabase.comVercel (web hosting)
States it has a SOC 2 Type 2 attestation and ISO 27001 certification, and encrypts data at rest with AES-256 and in transit with TLS.
Source: vercel.comRailway (background workers)
States it is SOC 2 Type II certified and SOC 3 certified.
Source: docs.railway.comStripe (card payments)
States it is certified to PCI Service Provider Level 1, produces SOC 1 and SOC 2 Type II reports annually, and encrypts sensitive data in transit and at rest.
Source: docs.stripe.comShopify (store platform and billing)
States it is certified Level 1 PCI DSS compliant and has been issued SOC 2 Type II and SOC 3 reports.
Source: www.shopify.comAnthropic (AI models)
States that by default it does not use inputs or outputs from its commercial products for training, and deletes them from its backend within 30 days, apart from the exceptions it lists.
Source: privacy.claude.comOpenAI (AI models)
States that data sent to its API is not used to train or improve its models unless the customer opts in, and that abuse-monitoring logs are kept for up to 30 days.
Source: developers.openai.com
// ai and model providers
What the models see.
Magistry does not train or fine-tune any model on your data. It calls model providers' APIs: Anthropic for the agents and the assistant, OpenAI for classification, text embeddings, translation, images and some drafting (product copy, feed titles, review replies and dispute rebuttals), Google's Gemini API to analyse creative video and audio, and fal for generative media.
Customer-service replies are drafted from the original message, so that text reaches the model provider in full. We do not currently send data to any tracing or error-monitoring service. If we enable LLM tracing, customer-service prompts are excluded and e-mail addresses and phone numbers are masked in other prompts.
Image similarity for market intelligence runs on our own servers; those images are not sent to a model provider.
// sub-processors
Who processes data for us.
Supabase
Primary Postgres database, auth, storage, and Vault-encrypted secrets.
Region: EU (eu-west-1)
Vercel
Hosting for the dashboard and marketing website, with edge delivery.
Region: Global edge network
Railway
Compute for the backend worker and scheduled jobs.
Region: EU (Amsterdam, europe-west4)
Anthropic
LLM inference for the agents and the assistant, including customer-service reply drafting over inbound mail bodies and customer photographs. No training on customer data.
Region: United States
OpenAI
Embeddings, classification, translation of customer-service text and feed copy, drafting of product copy, feed titles, review replies and dispute rebuttals, and image generation. No training on customer data. Separately, OpenAI Ads — when you connect it: campaign, ad-group and ad metadata and performance reports, under your own ads API key; and, only when you choose conversion tracking for it, each paid order (order id, value, currency, hashed email and phone, the OpenAI click id) sent to OpenAI's Conversions API, and OpenAI's measurement pixel loaded on your storefront after the visitor's marketing consent.
Region: United States
Google
Gmail mailbox access for connected inboxes; Google Ads, Data Manager (hashed e-mail/phone and click ids on conversion upload), Analytics, Merchant Center, Search Console and Sheets when you connect them; Google Public DNS for domain checks; the Gemini API, which analyses the video and audio of creatives for the creative engine.
Region: EU/US
fal
Generative media for the creative studio: product video, image edits and instrumental music (ElevenLabs Music, run on fal). Receives the prompt and the product imagery a merchant chooses; no shopper or customer data is sent.
Region: United States
Resend
Transactional and customer-service email delivery.
Region: EU/US
Stripe
Subscription billing and invoicing for non-Shopify tenants (merchant billing identity; card data handled by Stripe). When a business connects its own restricted Stripe key in Magistry's books: read-only balance and payout reads for its bookkeeping.
Region: EU/US
Shopify
Commerce platform, billing, and payments. Card data is handled by Shopify and never reaches Magistry.
Region: Global
GitHub
Version control for storefront themes: each connected store's theme files are kept in a private repository in Magistry's GitHub organisation, to which the merchant is given access.
Region: United States
// report a vulnerability
Found something? Tell us.
Email security@magistry.io with what you found and how to reproduce it. The same contact is published in machine-readable form at /.well-known/security.txt.
Please test only against your own account and stores, do not access or change other customers' data, and give us a chance to fix the issue before you disclose it.
For a personal-data breach, the DPA commits us to notify affected customers without undue delay and within 48 hours of becoming aware of it. Live system status is on the status page.
Contacts
- Security
- security@magistry.io
- Privacy and DPA
- privacy@magistry.io
- Status
- /support/status
// legal documents
The documents behind this page.
// contact
Running a security review?
Our answers to the common security-questionnaire questions are published, including where the answer is not yet. Send anything they do not cover to security@magistry.io.
privacy@magistry.io · privacy and DPA requests
