Draft · not in force · pending review by counsel
DRAFT — not legal advice. Requires review by counsel before publication. Placeholders in
[[DOUBLE_BRACKETS]]must be filled first; see docs/legal/README.md.
Subprocessors
Last updated: [[EFFECTIVE_DATE]]
This page lists the third parties that [[LEGAL_ENTITY]] ("qaitai", "we") uses to process customer personal data for qaitai Cloud (app.tryqaitai.com). It is Annex III of our Data Processing Addendum.
Self-hosted qaitai is different. If you run qaitai yourself, we are not a processor and none of these services receive your data from us. Your instance talks only to the services you configure.
Bring your own key (BYOK). When your workspace uses your own model or browser key (for example an Anthropic, AI Gateway, Bedrock, OpenAI-compatible, Steel, Browserbase, Kernel, Anchor or Browser Use key), that provider processes the data under your agreement with them, not as our subprocessor. We only pass the data through to the provider you chose.
Active
These are in use on qaitai Cloud today.
| Subprocessor | Purpose | Data it receives | Location |
|---|---|---|---|
| Vercel, Inc. (AI Gateway) | Routes model calls to the model provider; spend tracking and provider fallback | Everything sent to the model (see "What the model sees" below) | [[VERCEL_GATEWAY_REGION]] (US by default) |
| Anthropic, PBC | AI model that drives the test agent (called through Vercel AI Gateway, or directly when the Gateway is not configured) | What the model sees (below) | US |
| Steel (Steel.dev) | Cloud browsers the agent drives; live view of a run | Full browser session with the app under test: every page, request and response, including test credentials typed into the page | US ([[STEEL_REGION]]) |
| GitHub, Inc. | Sign-in, repository access through the qaitai GitHub App, pull request checks | Your GitHub identity; we read repository metadata, pull requests, deployments and (read-only) contents you grant; we write check results (run summary, findings, links) to your PRs | US |
| [[DATABASE_PROVIDER]] | Primary database (Postgres) | All account and run data: users, workspaces, prompts, run steps, findings, audit log; secrets and BYOK keys stored encrypted | [[DATABASE_REGION]] |
"What the model sees": your journey prompt, the page URL, accessibility snapshots of the page, JPEG
screenshots of the page (only the two newest stay in the conversation), results of the agent's
actions and the model's own reasoning. Test secret values are never sent to the model: the agent
refers to them by name (@secrets/login) and a tool types the value into the page. Secret values are
also redacted from snapshots and recorded reasoning. A screenshot is a picture of the page, so if your
app displays a secret on screen, it can appear in a screenshot.
Planned
Not yet in use. Each will move to "Active" with at least 30 days' notice (see below) before it receives customer personal data.
| Subprocessor | Purpose | Data it will receive | Location |
|---|---|---|---|
| Vercel, Inc. (hosting) | Hosting the web app and API (apps/web) | All traffic to app.tryqaitai.com, and so all data above in transit | [[VERCEL_HOSTING_REGION]] |
| Fly.io, Inc. | Short-lived machines that run each test worker (agent + browser), and fallback web hosting | The job for that worker: prompt, target URL, the secrets that prompt references (decrypted in memory only), the browser session | Region nearest the target app, else US (iad); Enterprise can pin a region |
| Amazon Web Services, Inc. (KMS) | Managed key that wraps the per-value data keys used to encrypt secrets and BYOK keys | Wrapped (encrypted) data keys only; never plaintext secrets or other customer data | [[AWS_KMS_REGION]] |
| Cloudflare, Inc. (R2) — or AWS S3 | Storage of run screenshots and replays (recordings) | Screenshots and replays of the app under test, which show whatever the page showed | [[STORAGE_REGION]] |
| Hatchet Technologies, Inc. (Hatchet Cloud) — only if we use the hosted service; we may self-host Hatchet instead | Job queue and scheduling | Task metadata only: workspace ID, run and worker IDs, a focus label. No prompts, page content or secrets | [[HATCHET_REGION]] |
| Stripe, Inc. | Subscription billing, invoices, tax | Billing contact name and email, billing address, payment method (collected by Stripe directly; we never see full card numbers), plan and usage totals | US |
| Resend (Plus Five Five, Inc.) | Transactional email: sign-in links, invitations, run notifications | Recipient email address, email content (for example a run summary and link) | US |
| Functional Software, Inc. (Sentry) | Error monitoring | Error reports and stack traces with personal data scrubbed (no request bodies, cookies, auth headers, query strings, emails or IPs; tokens masked); may include user or workspace IDs | [[SENTRY_REGION]] |
| PostHog, Inc. | Product analytics (qaitai Cloud only; off by default when self-hosted) | Pseudonymous user ID, pages viewed (without query strings or share tokens) and product events with IDs only; no session recordings, no page content from apps under test | [[POSTHOG_REGION]] (EU or US) |
| Langfuse GmbH | Tracing of model calls for quality and cost | Model, token counts, latency and cost for every traced call; model inputs and outputs with secret values and screenshots redacted, only for managed-key runs and for BYOK runs of workspaces that opt in | [[LANGFUSE_REGION]] (EU or US) |
| TypeSafe AI (Jev, via Vercel AI Gateway) | Evaluation model that double-checks findings and risky actions | Journey prompt, the agent's proposed finding or action, and page context; may include screenshots | [[TYPESAFE_REGION]] |
Not subprocessors
- Google (sign-in with Google): an identity provider you choose to use; it receives only what the Google sign-in flow sends it.
- Your own infrastructure (remote runners you host, BYOK providers you choose, your SMTP server on self-hosted instances).
Changes to this list
- We update this page and the "Last updated" date at least 30 days before a new subprocessor starts processing customer personal data.
- We email the billing and admin contacts of paid workspaces, and anyone who subscribes at [[SUBPROCESSOR_NOTICE_SIGNUP]].
- You can object in writing to privacy@tryqaitai.com within that 30 days. We will try to find a reasonable alternative; if we can't, you may terminate the affected service and get a pro-rata refund of prepaid fees.
In an emergency (for example a provider outage) we may add a replacement sooner and will notify you as soon as we can.
Engineering rule: adding a model provider, browser provider or any external service to qaitai Cloud production config requires a PR that updates this page. See the checklist in README.md.