Skip to content

Sub-processors

A deployment that uses self-run PostgreSQL, self-run object storage (e.g. MinIO), self-run SMTP, with AI features disabled, no external SSO, and no off-site backup sends personal data to no third party at all. Everything stays on infrastructure you control. Each managed service you opt into below adds one row to your sub-processor list.

Service categoryTypical providers (you choose)PurposePersonal data processedHow to avoid it
Database hostingSelf-run PostgreSQL, or managed (RDS, Cloud SQL, …)Primary data store (required)All account & content dataSelf-run PostgreSQL
Object storageSelf-run MinIO, AWS S3, Cloudflare R2, …Attachments & uploaded imagesFile contents + uploader identitySelf-run MinIO, or don’t allow uploads
Email delivery (SMTP)Self-run Postfix, Postmark, Amazon SES, …Magic-link login, invites, notificationsRecipient email address + message contentSelf-run SMTP
Off-site backup targetAny S3 bucket / rclone remoteEncrypted off-site backup copiesage-encrypted DB dump (provider sees ciphertext)Leave BACKUP_RCLONE_REMOTE unset
Identity provider (SSO)Okta, Entra ID, Google, Keycloak, any OIDC/SAML IdPAuthentication (optional)Email, name, group/role claimsUse magic-link / passkeys only
AI / LLM provider (text)OpenAI, Anthropic, Google (Gemini), OpenRouter, or self-hosted (Ollama, or any custom OpenAI-compatible endpoint)AI assistant / text features (optional)Document content & prompts you submit to the assistantDisable AI, or use a self-hosted model
AI image generationOpenAI (Images), ReplicateAI image generation in the editor (optional)The text prompts you submit for image generationDisable AI image generation (don’t configure an image provider)
Web-push serviceBrowser vendor push (Apple, Google FCM, Mozilla)Browser push notifications (optional)Push subscription endpoint (no message content)Don’t enable push notifications
Error trackingYour configured Sentry-compatible endpointError diagnostics (optional)Error context, may include user/correlation IDsLeave error tracking unconfigured
Audit-log export (SIEM)Any HTTP/syslog sink you point it at (Splunk, Datadog, Elastic, self-run syslog, …)Stream the audit log to your SIEM (optional)Audit events: actor ID, IP address, user-agent, correlation ID, action + resource IDs (no document titles/content)Leave AUDIT_EXPORT_* unset (default), or use a self-run/local sink
  • Treat this page as the menu; your Annex II is the subset you actually configured.
  • Re-check it whenever you change SMTP_*, S3_*, BACKUP_RCLONE_REMOTE, AUDIT_EXPORT_*, SSO providers, AI settings, or push — see Configuration.
  • Record, for each sub-processor you use: legal entity, processing location (and the transfer mechanism if outside the EEA), and purpose. International transfer: a cloud SIEM (e.g. Datadog/Splunk US regions) or any sink hosted outside the EEA receives audit metadata — document the transfer mechanism (SCCs/adequacy) before enabling AUDIT_EXPORT_HTTP_URL.
  • Notify your controllers before adding or replacing a sub-processor, per §6 of the DPA template.