Skip to main content

Subprocessors & data residency

This table is generated from the machine-checked manifest used by our CI vendor-marker gate. It covers declared dependencies and known data flows; contract and infrastructure review remain part of adding a provider. Review by: .

Declared subprocessors, processing purpose, residency, transfer basis, and current vendor data terms.
VendorServiceDataRegionTransfer basisData terms
CloudflareCDN / Workers / R2 (including the isolated compile cache) / KV / DNS / TLScontent, logs, tlsEU jurisdiction (Frankfurt/Amsterdam PoPs; data-plane R2 bindings, including COMPILE_CACHE, require jurisdiction:EU)DPA+SCCReview terms
HetznerFSN1 Docker host for the primary PostgreSQL 16 data planetenant-data, auditFSN1 (Falkenstein, Germany); PostgreSQL has no public host portDPAReview terms
NeonPostgres manual fallback (tenant metadata and audit while retained)tenant-data, auditaws eu-central-1 (Frankfurt); inactive unless DATABASE_PROVIDER=neon is deliberately deployedDPA+SCCReview terms
DigitalOceanDroplet host for compile / portal-build / ssrf-proxy / Meilisearch (behind Caddy)content, search-indexAMS3 (Amsterdam)DPA+SCCReview terms
WorkOS (US carve-out)Authentication / SSO / staff directory (the documented US exception)auth-identityAWS USDPA+SCC/DPFReview terms
Stripe (US carve-out)Payments + Stripe Taxbilling, vatUS (+EU processing entities)DPA+SCC/DPFReview terms
Lago (self-hosted)Usage metering & invoicing — self-hosted on the EU droplet, no vendor data flowusage, billingself-hosted, DigitalOcean AMS3; its own postgres-partman container, never the product primary (doc 23 amended 2026-08-04)n/a (self-hosted OSS)Review terms
Schematic (US carve-out)Entitlement flagsplan-flagsUSDPA+SCC/DPFReview terms
Meilisearch (self-hosted)Docs search — self-hosted on the EU droplet, no vendor data flowsearch-indexself-hosted, DigitalOcean AMS3n/a (self-hosted OSS)Review terms
TinybirdAPI-call analyticsapi-telemetrygcp europe-west3 (Frankfurt)DPAReview terms
PostHog EUProduct analytics, feature flags, replay, errors, logs, and metricsproduct-telemetry, error-context, operational-telemetryEU cloud (Frankfurt)DPAReview terms
Google Analytics (US carve-out)Consent-controlled acquisition analytics for doctorine.xyz and app.doctorine.xyzwebsite-usage, device-metadataGoogle global infrastructure; no collection before explicit analytics consentConsent+DPA+SCC/DPFReview terms
AWS BedrockAI inference (Ask-AI / MCP)contenteu-central-1 (Frankfurt) — PINNED in services/portal-worker/wrangler.jsonc and apps/dashboard/wrangler.jsonc, no longer inherited from a library default. Models are the EU geo cross-region inference profiles eu.amazon.nova-lite-v1:0 / eu.amazon.nova-pro-v1:0; AWS documents that a geo-tied profile's destination Region list NEVER changes (Bedrock User Guide, 'Supported Regions and models for inference profiles', read 2026-08-06). OPEN, tracked in architecture/plans/portal-perfection/security-designs.md §4.5: the destination Region ENUMERATION for these two profiles is no longer published on that page (AWS moved it to each model's detail page / GetInferenceProfile) and has not been read, and the DEPLOYED env of both Workers has not been enumerated. Until both land, this row states the pinned configuration, not a verified end-to-end residency guarantee, and the EU-moat claim may not name AI inference (§4.4).DPA+SCCReview terms
Amazon SESTransactional email (EmailPort adapter, swap-ready)email-metadataeu-central-1 (Frankfurt)DPA+SCCReview terms
TurbopufferVector retrieval (Ask-AI RAG)content-embeddingsEUDPAReview terms
Resend (US carve-out)Transactional email (EmailPort default)email-metadataSending region eu-west-1 (Ireland) — message ROUTING and delivery originate in the EU; Resend stores account data, email metadata, logs and API records in the US regardless of sending region (resend.com/docs/dashboard/domains/regions, verified 2026-07-25). Message BODIES are Doctorine-rendered transactional notices; the recipient address is the personal data at rest in the US.DPAReview terms

EU data-at-rest by construction; US carve-outs are disclosed rows, never hidden (docs 04/19/34). Notice of material subprocessor changes is governed by the applicable DPA and customer contract.