Skip to main content

// trust center · security questionnaire

Security questionnaire

The questions a security reviewer asks us most, answered the same way for everyone. 29 answers; 7 of them say “not yet”, because that is where we are.

// data location

Data location

Where is our data stored?Yes
The database runs on Supabase in AWS eu-west-1 (Ireland) and the background workers on Railway in Amsterdam. The web app is served by Vercel's global edge network. Trust Center: at a glance
Does our data leave the EU, and to which regions?Partly
Some of it does. The database and workers are in the EU, but the AI model providers (Anthropic, OpenAI, fal) are in the United States, and several platforms you can connect are outside the EU. The sub-processor list states each provider's region. Sub-processors

// encryption and secrets

Encryption and secrets

Is data encrypted at rest?Partly
Supabase, which holds the database, and Vercel, which serves the web app, each state on their own security page that they encrypt data at rest with AES-256. Magistry adds no encryption layer of its own on top of that, apart from the secrets described below. Provider statements
Is data encrypted in transit?Yes
Supabase and Vercel state that they use TLS in transit. Our workers refuse a database connection without TLS, and calls from the database to the workers are signed so they cannot be forged.
How are credentials for connected services stored?Yes
Tokens for connected services are stored encrypted in Supabase Vault, not in table columns, and a health check alerts if one appears in plain text. Magistry API keys are stored only as hashes.
Do you store payment card data?Yes
No. Card payments run through Shopify billing or Stripe's hosted checkout, and card numbers never reach Magistry.

// access control

Access control

How is access controlled inside the product?Yes
Each store member is an Owner, Admin, Staff or Viewer. Store access for signed-in users and API callers is enforced by Postgres row-level security in the database, which switches on for every new table; an hourly check alerts if a table is without it. Trust Center: access control
Do you support multi-factor authentication?Yes
Yes. Users can add an authenticator-app second factor or sign in with a passkey, and workspace owners can require the second factor and cap how long a session lasts.
Do you support single sign-on (SAML or OIDC with our identity provider)?Not yet
Not yet. Users sign in with a password, a passkey, Google or GitHub. Connecting your own identity provider is not available.
Can we provision and deprovision users automatically?Partly
Deprovisioning, yes: workspaces can remove members over SCIM 2.0, which removes their store access everywhere the database checks it. Provisioning users over SCIM is not yet supported.
How is Magistry's own access to production data controlled?Not yet
Not yet documented. We have not published a policy for internal access to production. Our background jobs run under a service account that is not subject to row-level security, so the controls above govern users and API callers, not our own jobs.
What can a third-party app connected through your API do?Yes
An app's token carries the stores and the write permission it was granted, and the database intersects those with the granting user's own access. Revoking an app refuses every token issued under that grant from its next request; if the revocation check cannot run, the request is refused. Apps and revocation

// agents and audit

Agents and audit

Can the AI agents change our store without approval?Partly
Mostly only if you allow it. The Marketing Brain can be off, propose for approval, rehearse without writing, or act on its own, and new stores start on approval. Store action policies block or cap actions, and a per-store kill switch stops the catalog, ads, customer-service, promotions, feed, reputation and social agents from writing or spending; it does not yet cover theme deploys or the creative studio. One exception: when a pre-dispute alert arrives, a refund of up to $200 can be issued automatically, and there is not yet a setting to turn that off. Governance and controls per module
Do you keep audit logs, and can we get them?Yes
Every tool call through the API or the MCP server writes an audit row before the response returns. API, account, operator and OAuth-grant logs cannot be deleted before they are a year old. Workspace owners can export the security log as CSV or JSON. Audit

// sub-processors and ai

Sub-processors and AI

Who are your sub-processors, and how are we told about changes?Yes
The full list, with each provider's purpose, the categories of data it receives and its region, is published and is the same list as the DPA's Annex C. Under the DPA we give thirty days' notice before adding or replacing a sub-processor. Sub-processors
Which AI model providers do you use?Yes
Anthropic for the agents and the assistant, OpenAI for classification, text embeddings and images, Google's Gemini API to analyse creative video and audio, and fal for generative media. AI and models
Is our data used to train AI models?Yes
Magistry does not train or fine-tune any model on your data. Anthropic and OpenAI each state that, by default, data sent through their commercial API is not used for training; their statements are linked on the Trust Center. Provider statements
Is personal data sent to the model providers?Partly
Yes, where the task needs it. Customer-service replies are drafted from the original message, so that text reaches the model provider in full. Identifiers are stripped before data reaches our tracing tools and in several analysis jobs, not on every call.

// retention and deletion

Retention and deletion

How long do you keep our data?Not yet
Not yet on a general schedule. What is enforced today: click identifiers lose their IP address and user agent after 90 days, raw product-usage events are dropped after six months, and access logs are kept for at least a year.
How do you handle a data subject's erasure request?Yes
A customer erasure request from Shopify anonymises that customer's personal data across every table that holds it and deletes their attachments.
What happens to our data when we leave?Partly
On a Shopify uninstall we revoke our credentials, stop the store's scheduled jobs, and a daily job anonymises the shop's personal data once 48 hours have passed. For accounts not on Shopify there is not yet an automated export and deletion at termination.
Can we export our data?Yes
Workspace owners can export the security log, and products, orders and finance data, from the dashboard.

// incidents and assurance

Incidents and assurance

Will you notify us of a breach?Yes
Yes. The DPA commits us to notify you without undue delay, and within 48 hours of becoming aware of a personal data breach affecting data we process for you. DPA section 9
Do you have a written incident-response plan?Not yet
Not yet as a published document. Platform health checks alert us to failures, and the breach notice above is our contractual commitment.
Do you have backup and recovery commitments?Not yet
Not yet. We have not published backup, recovery-time or recovery-point commitments of our own.
Do you hold an independent security audit report?Not yet
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. Provider statements
Can you share a penetration-test report?Not yet
Not yet. We have no third-party penetration-test report to share.
How do we report a vulnerability?Yes
Email security@magistry.io. The contact and our disclosure rules are also published at /.well-known/security.txt. Report a vulnerability
Do you sign a data processing agreement?Yes
Yes. The Data Processing Addendum is public, and where we process personal data for you we act as your processor under it. Read the DPA