Sub-processors
Version 2026-10-28.2838d5ad ยท draft of 2026-10-28 · not yet in force
Details supplied by the owner
Statuses: ASSUMED (named in the code or docs as the default), CODE-READY (an adapter exists and is tested offline), NOT CHOSEN, N/A.
| Category | Vendor / candidate | Status | What it would receive | Role (OPEN, counsel) | Location | Evidence |
|---|---|---|---|---|---|---|
| Hosting of the control plane (application) | SmarterASP.NET (the existing host of the marketing site) | ASSUMED default; "where the control plane is hosted in production is not yet decided" | everything held by the control plane | processor | verify (not documented) | , |
| Database | SQL Server on the same host (sql8010.site4now.net for the marketing site) |
ASSUMED; a separate host and database for the platform is an owner item (27, D32) | account, tenant, content, audit data | processor | verify | HANDOFF.md, OWNER_DECISIONS.md 27 |
| Object storage / primary CDN | Cloudflare R2 (S3 API) behind a public domain | ASSUMED, CODE-READY adapter (S3BundleStorage); owner has not created the account (item 26) |
published bundles (public files); CDN request logs (IP, user agent, Origin, Referer) |
processor | EU jurisdiction possible at bucket creation, immutable, Logpush unsupported there (Cloudflare docs via: verify) | , PRIVACY.md section 5 |
| Secondary CDN / storage | NOT CHOSEN ("independent provider") | NOT CHOSEN; must be EU-capable if EU region is offered | same as primary | processor | verify | ARCHITECTURE.md, OWNER_DECISIONS.md 26 |
| Customer's own site (third copy of bundles) | the customer's own host | N/A: customer's responsibility | bundle files | N/A (the customer is controller of its own hosting) | n/a | |
| E-mail provider | Postmark (assumed); SMTP relay also supported | ASSUMED, CODE-READY (PostmarkEmailSender against a fake only); account and DNS (SPF, DKIM, DMARC) are owner tasks |
recipient address and name, subject, body (verification links, quota notices, invoices); our message id and template id as tag; no tenant or user data | processor for account mail | verify | , OWNER_DECISIONS.md 23 |
| Payment provider (WordPress/script licences) | Stripe (test mode only; live keys are refused by the code) | CODE-READY (offline), no account in use | customer e-mail, plan, billing details entered at Stripe Checkout; we receive subscription and invoice data | independent controller and/or processor: OPEN (Stripe's terms: verify) | verify | , |
| Payment provider (Shopify merchants) | Shopify Billing | planned (IPaymentProvider fits; adapter not built in WP-23) |
subscription status | Shopify is the billing party | verify | , WP-33.md, LAUNCH_CHECKLIST.md 2.4 |
| Translation engine: Google Cloud Translation v2 and v3 | CODE-READY (GoogleV2Engine, GoogleV3Engine), no account |
the strings to translate, language pair, glossary resource id; no keys/ids/e-mail | processor if terms are right; verify no training and retention | verify | , PRIVACY.md section 3 |
|
| Translation engine: DeepL | DeepL | CODE-READY | strings, languages, optional context, glossary id |
same as above | verify | WP-10 |
| Translation engine: LLM (default model "the most capable current Claude", D26) | Anthropic | CODE-READY (AnthropicEngine) |
strings, languages, glossary (up to 200 entries), a free-form page_context up to 500 characters (G4) |
same as above | verify | WP-10; D26 |
| Translation engine: m2m100 | Cloudflare Workers AI (cloudflare-m2m100) |
CODE-READY | strings, languages | same as above | verify | WP-10 |
| Translation engine: customer's own provider key (BYO) | whichever the customer chooses | Not implemented today: no caller passes a customer key and the customer key is not stored anywhere, so BYO must not be offered publicly yet. Design: the provider would be the customer's processor and we transmit on its behalf | as above | OPEN | n/a | , WP-10 |
| Translation engine: OpenAI | OpenAI | No adapter exists (src/ResilientLang.Engines has Anthropic, DeepL, Google, Cloudflare m2m100, fake). List only if an engine is built |
n/a | n/a | n/a | row 11 |
| Test engine | fake engine (local) | N/A: not a vendor | n/a | n/a | n/a | WP-10 |
| Platform: Shopify | Shopify (Admin GraphQL API, webhooks, app proxy/theme extension) | CODE-READY library; no Partner account yet | shop domain, products/content text and translations read and written through Shopify's APIs; encrypted offline access token | Shopify is the platform provider; for merchant data we are the app provider: role OPEN | verify | , OWNER_DECISIONS.md 25 |
| Platform: WordPress.org | WordPress.org plugin directory (distribution only) | NOT SUBMITTED; no personal data flows from the plugin to WordPress.org through our code | none from us | not a processor | n/a | (consent checkbox gates every outbound request), LAUNCH_CHECKLIST.md 3.1 |
| Status page host | NOT CHOSEN (independent provider, no JavaScript) | NOT CHOSEN | incident text only; subscriber e-mails if offered (OPEN) | processor if subscriber data | verify | , OWNER_DECISIONS.md 28 |
| Documentation site host | NOT CHOSEN (static, separate) | NOT CHOSEN | none | none | n/a | OWNER_DECISIONS.md 29 |
| Monitoring / alerting backend | NOT CHOSEN | NOT CHOSEN | metrics, redacted logs | processor | verify | |
| Bot challenge for signup | e.g. Cloudflare Turnstile | NOT CHOSEN (default: none) | visitor IP / browser signals | processor/controller OPEN | verify | OWNER_DECISIONS.md 31 |
| Support tooling (helpdesk, mailbox) | NOT CHOSEN | NOT CHOSEN | support conversations | processor | verify | LAUNCH_CHECKLIST.md 5.5 |
| Source code host | GitHub | N/A: holds code, not customer data (CLAUDE.md: no customer data in the repo) |
none | n/a | n/a | CLAUDE.md |