Sub-processor and Vendor List — OasisGUI and OasisNet
Draft prepared for review by counsel on 2026-10-06. This is a first draft produced for attorney review and is not legal advice. Every factual statement about the product is traced to the oasis-gui source tree (paths relative to the repository root; the tree carries uncommitted edits, so function names are cited where line numbers may drift) or to facts supplied by the company owner. Points that need a decision by the owner or by counsel are marked [DECISION: …] or [COUNSEL: …] and are indexed in section 11.
Operating entity: Varrock Inc., a Delaware general corporation (Delaware file number 10482601). Registered agent: LegalInc Corporate Services Inc., 131 Continental Drive, Suite 305, Newark, DE 19713. Commercial contact: sales@oasisgui.com.
Related documents: Privacy Policy · Data Processing Addendum · End User License Agreement · Third-Party Notices · README.
1. Purpose and scope#
1.1 This list identifies (a) every Sub-processor (as defined in the Data Processing Addendum) that Varrock Inc. ("Varrock", "we") engages to process Customer Personal Data; (b) every processor Varrock itself engages as controller for the personal data it collects in its own right; and (c) every third party the Products contact by default without a Customer decision. It is the list of sub-processors referred to in Section 4.4 and Annex III of the Data Processing Addendum and supplies the recipient information referred to in section 9 of the Privacy Policy.
1.2 OasisGUI is a desktop application and OasisNet is a mesh network; both run on machines the Customer controls. The Products have no account system, telemetry, analytics or crash reporting (verified by searching src/, src-tauri/src/ and website/ for the usual SDKs: none are present). A fresh installation has no coordination server configured (src-tauri/src/mesh_manager/mesh_config.rs:16-26), so a Customer's mesh is invisible to Varrock unless the Customer adopts a Varrock-operated coordinator. The Sub-processor chain is therefore short, and most third parties the Products can reach are engaged by the Customer with its own credentials.
1.3 The document separates four groups:
- Section 4A — Sub-processors under the Data Processing Addendum: third parties that process Customer Personal Data on Varrock's behalf. Under the Data Processing Addendum (its Section 2.3 and Annex III) the only such processing is the mobile push flow, and only once it is live.
- Section 4B — Varrock's own processors: third parties that process personal data for which Varrock is the controller (web-server logs, the sales mailbox — Data Processing Addendum Section 2.2; Privacy Policy sections 5 and 6). They are recipients for the purposes of GDPR Article 13(1)(e), not Sub-processors of any Customer.
- Section 5 — Infrastructure and distribution dependencies: third parties in the delivery chain that receive no Customer or end-user Personal Data. Listed for transparency; not Sub-processors or processors.
- Section 6 — Customer-engaged third-party services: services the Products contact from the Customer's machines, with the Customer's credentials or on the Customer's instruction. Varrock is neither controller nor processor for these.
Section 7 covers the one third party the Products contact automatically with Personal Data (api.country.is), which fits none of the four groups and needs an owner decision before publication.
2. Definitions#
"Customer", "Customer Personal Data", "Products", "Subprocessor" and "Varrock Infrastructure" have the meanings given in the Data Processing Addendum. "Sub-processor" in this list and in the Privacy Policy is the same term as "Subprocessor" in the Data Processing Addendum and the Standard Contractual Clauses.
- "Personal Data" has the meaning in Article 4(1) of Regulation (EU) 2016/679 (GDPR) and includes "personal information" under applicable United States state privacy laws.
- "User" means any person who installs or uses the Products, whether or not a Customer.
- "Varrock-Operated Service" means Varrock Infrastructure (the website and download server at
oasisgui.com, the update manifest athttps://oasisgui.com/downloads/latest.jsonand, if and when enabled, the push gateway atpush.oasis.cooking) together with any coordinator or relay Varrock operates and offers to Customers [DECISION: see 3.3]. A runner contacts the push gateway only after a phone has registered that gateway's URL with it (3.5).
3. What a default installation contacts#
3.1 Update check. The desktop application requests https://oasisgui.com/downloads/latest.json a few seconds after launch and every ten minutes (src-tauri/tauri.conf.json plugins.updater.endpoints; src/UpdatePrompt.tsx:63-110). The endpoint is a literal URL without version placeholders, so the request is a plain GET carrying the client IP address, the time, User-Agent: tauri-plugin-updater/<plugin version> (2.10.1 at this draft, src-tauri/Cargo.lock) and Accept: application/json; the installed version is not transmitted. The ten-minute poll can be switched off in Settings; the single check a few seconds after launch cannot, except in Nix-managed installations, which never check (src/UpdatePrompt.tsx:63-91 is gated only by updatesManagedByNix; the interval effect at line 98 also honours the Settings toggle). [DECISION: add a setting that also disables the launch check, so the only Varrock contact of a default installation is fully optional] The website's download buttons fetch the same manifest from the visitor's browser (website/main.ts:140).
3.2 Website. The website redesign in the working tree loads no third-party fonts, scripts, analytics or content-delivery network; Mermaid diagrams are served from the site itself (website/build.sh:17-18). The currently published site (website/index.html at the last commit, lines 39-42) loads Google Fonts from fonts.googleapis.com / fonts.gstatic.com, which receive visitors' IP addresses and user-agents. [DECISION: confirm the redesign is deployed before this list is published; until then Google LLC (Google Fonts) must be listed in section 4B as a third party the website contacts] The site's nginx does not log requests for release artifacts or the update manifest (deploy/k8s/oasisgui.yaml:52-55, access_log off for dmg|msi|exe|deb|rpm|AppImage|tar.gz|tar.xz|zip|sig|json), but HTML and asset requests are logged by nginx defaults. The host-level front proxy is not configured from the repository, so its logging is unknown. [DECISION: state the access-log retention for oasisgui.com, including the host-level front-nginx]
3.3 Mesh. No coordinator or relay is built into the Products. A Customer's mesh talks only to the coordinator the Customer configures. Varrock operates coordinators and relays for its own mesh (section 8); whether they are offered to Customers determines whether their hosting providers belong in section 4A. [DECISION: does Varrock offer hosted coordinators or relays to Customers at all?]
3.4 Geo-IP lookup. The Mesh view (including the expanded device-detail row inside it) and the per-machine system-monitor dropdown show a country flag for each mesh endpoint. To do so the desktop application sends the public endpoint IP address of every displayed mesh peer to https://api.country.is/<ip> (src-tauri/src/geoip.rs, lookup). This is automatic and has no switch. See section 7.
3.5 Mobile push. The Oasis Mobile application carries a default push gateway URL of https://push.oasis.cooking (OasisMobile/Oasis/Notifications/NotificationModel.swift:195); each runner uses the gateway URL the phone registered with it and requires HTTPS (runner/oasis-runner/src/notify/push.rs, validate_gateway). The gateway forwards notifications to Apple Push Notification service. At version 2.0.0 no APNs key has been provisioned (docs/enterprise/05-operations.md; docs/mobile-notifications-design.md), so no notification is delivered and Apple receives nothing. The path becomes live the moment a key is installed. [DECISION: will mobile push go live? If yes, the gateway host becomes a Sub-processor, Apple APNs becomes a Sub-processor or an independent service, and the payload contents need disclosure] [COUNSEL: whether Apple is a Subprocessor under SCC Clause 9 or an independent service under the Apple Developer Program License Agreement — Data Processing Addendum §6.6; if the latter, move Apple to section 5 with a note that notification content reaches it]
4. Sub-processors and processors#
4A. Sub-processors under the Data Processing Addendum (Customer Personal Data)#
4A.1 The following third parties will process Customer Personal Data on Varrock's behalf once the noted condition is met. None is active at this draft, which matches Annex III of the Data Processing Addendum ("Applies only to the push flow"). Where the vendor is unnamed in the repository the row is kept with a decision marker rather than a guess.
| # | Sub-processor | Role | Customer Personal Data it can access | Location | Transfer safeguard | Status / condition | Repository evidence |
|---|---|---|---|---|---|---|---|
| A1 | Hosting provider of the host oasis.cooking — not named in the repository [DECISION: name the hosting provider, the datacenter country and the contracting entity for oasis.cooking] |
Runs the push gateway container push.oasis.cooking and the TLS-terminating front proxy in front of it |
Push payloads in transit (3.5): device push token, device name, notification title and body, session name, host name, sending runner's IP address; front-proxy access logs [DECISION: access-log retention for push.oasis.cooking — see DPA Annex I] | [DECISION: country] | SCC Module Two via the Data Processing Addendum; onward transfer under SCC Clauses 8.8 and 9 and the Sub-processor contract required by DPA §4.4; copy available from Varrock on request | Conditional — in scope only once mobile push goes live (3.5) | push/deploy/deploy.sh; push/deploy/nginx-push.conf; push/README.md |
| A2 | Apple Inc. — Apple Push Notification service (APNs) | Delivers mobile notifications from the push gateway to Oasis Mobile devices | Device push token; notification title (≤ 256 chars) and body (≤ 1,024 chars), which may include a cleaned tail of terminal output; thread_id; a data object carrying host name, session name and a server reference |
United States | SCC Module Two via the Data Processing Addendum; onward transfer under SCC Clauses 8.8 and 9 and Apple's developer terms; copy available from Varrock on request | Conditional — not live at 2.0.0 (no APNs key). [DECISION: list APNs now as "if you enable mobile push", or add it only when push goes live] [COUNSEL: whether Apple is a Subprocessor under SCC Clause 9 or an independent service under the Apple Developer Program License Agreement — DPA §6.6; if the latter, move Apple to section 5 with a note that notification content reaches it] | push/README.md (API table); runner/oasis-runner/src/notify/push.rs (payload construction); OasisMobile/Oasis/Notifications/NotificationModel.swift:195; docs/mobile-notifications-design.md |
| A3 | Hosting provider(s) of any coordinator or relay Varrock offers to Customers — currently Worldstream (Naaldwijk, Netherlands) for the host relic [DECISION: confirm the contracting entity named on the Worldstream hosting contract under which relic is leased] and, if still in service, the main.zone host |
Coordinator: holds the peer table (public keys, mesh and endpoint IP addresses, host names) of each mesh it serves. Relay: forwards WireGuard-encrypted packets it cannot read | Peer table of any Customer mesh that adopts the coordinator; encrypted relay traffic and endpoint IP addresses | Netherlands | SCC Module Two via the Data Processing Addendum; onward transfer under SCC Clauses 8.8 and 9 and the Sub-processor contract required by DPA §4.4 (the provider is inside the EEA, so no further transfer safeguard applies to it); copy available from Varrock on request | Conditional — in scope only if hosted coordinators or relays are a Customer offering (3.3); today these hosts serve Varrock's own mesh. [DECISION: Yes if hosted coordinators/relays are a Customer offering — which also requires adding them to DPA §2.3 and Annex III; otherwise move to section 8 as internal infrastructure] | nix/hosts/relic/configuration.nix:1-5; deploy/founder/README.md; mailmux/README.md:10 |
4B. Varrock's own processors (recipients of personal data for which Varrock is controller)#
4B.1 The following third parties process personal data that Varrock collects in its own right as controller (Data Processing Addendum §2.2; Privacy Policy sections 5 and 6). They are not Sub-processors of any Customer and are not listed in Annex III of the Data Processing Addendum. They are listed here because section 9 of the Privacy Policy refers to this list for recipients.
| # | Processor | Role | Personal data it can access | Location | Transfer safeguard | Status / condition | Repository evidence |
|---|---|---|---|---|---|---|---|
| B1 | Hosting provider of the host oasis.cooking — not named in the repository [DECISION: name the hosting provider, the datacenter country and the contracting entity for oasis.cooking] |
Hosts the oasisgui.com website and download server (single-node k3s, nginx), the update manifest, the founder.oasis.cooking API, the start.oasis.cooking binary endpoint used by NixOS VM templates, and the primary coordinator of Varrock's own mesh |
Visitor and updater IP addresses, user-agent strings, requested paths and timestamps in web-server logs (3.1, 3.2); the coordinator database of Varrock's own mesh | [DECISION: country] | Varrock is the controller; its Article 28 contract with this processor [DECISION: confirm a written data-processing agreement exists with the hosting provider] and, where the processor is outside the EEA/UK/CH, SCCs Module Two between Varrock and the processor [COUNSEL: whether an EU/UK data subject's data collected directly by a US controller and then handed to a US processor engages Article 46 at all — EDPB Guidelines 05/2021 §§15-16] | Active | scripts/release.sh:36-44; deploy/k8s/oasisgui.yaml; nix/vm-templates/lib/mesh.nix |
| B2 | Mailbox provider for sales@oasisgui.com — not named in the repository [DECISION: name the e-mail provider for sales@oasisgui.com; it receives prospects' names, addresses and message contents] |
Receives and stores inbound sales enquiries, the only published contact channel | Names, e-mail addresses, organisation names and whatever a prospect writes | [DECISION: country] | Varrock is the controller; its Article 28 contract with this processor [DECISION: confirm a written data-processing agreement exists with the mailbox provider] and, where the processor is outside the EEA/UK/CH, SCCs Module Two between Varrock and the processor (same [COUNSEL] question as B1) |
Active | website/index.html:1004-1005,1134 |
| B3 | Google LLC — Google Fonts (fonts.googleapis.com, fonts.gstatic.com) |
Serves web fonts to visitors of the currently published oasisgui.com |
Visitor IP address and user-agent at page load; governed by Google's terms | United States | Not a Varrock processor: Google receives the request directly from the visitor's browser and acts under its own terms [COUNSEL: whether embedding Google Fonts makes Varrock a controller for the disclosure of visitor IP addresses to Google (LG München I, 3 O 17493/20)] | Active until the redesign is deployed; then removed (3.2) [DECISION: confirm the redesign is deployed before this list is published] | website/index.html at the last commit, lines 39-42; working-tree website/index.html has no such links |
4.2 No other Sub-processor or processor. No content-delivery network, analytics provider, crash-reporting service or payment processor is present in the Products or the website (verified by search of the repository). [DECISION: confirm that Varrock uses no support-ticketing, CRM, invoicing or payment vendor to handle Customer or prospect data outside the repository; if it does, add it to section 4B] No affiliate or group company of Varrock processes Customer Personal Data. [DECISION: confirm Varrock has no affiliates, or name any affiliate that operates shared infrastructure listed in section 8] Any such vendor must be added under section 9 before it receives Personal Data.
4.3 Transfers. Varrock is established in the United States. Where Customer Personal Data subject to the GDPR, the UK GDPR or the Swiss FADP is transferred to Varrock, the transfer rests on the Standard Contractual Clauses (Module Two [COUNSEL: or Module Three where the Customer is itself a processor — DPA §6.2]) incorporated in the Data Processing Addendum, with the UK Addendum and Swiss amendments where they apply. Onward transfers from Varrock to a Sub-processor are made under SCC Clauses 8.8 and 9 and the written contract required by DPA §4.4. Each Sub-processor's and processor's processing location and the safeguard relied on are stated in its row; a copy of the safeguard is available from Varrock on request. [DECISION: whether Varrock is, or intends to become, self-certified under the EU-US Data Privacy Framework; the drafts assume it is not and rely on SCCs — never claim certification until done] [COUNSEL: confirm whether SCC Module Two is required for A2 while push is not live, and whether Varrock, a US entity, needs an EU representative under GDPR Article 27 — the current analysis is that Article 27(2)(a) likely exempts it]
5. Infrastructure and distribution dependencies that are not Sub-processors#
5.1 These third parties sit in the delivery chain but receive no Customer Personal Data. They are listed so that a Customer's supply-chain review has the full picture. [COUNSEL: legal entity names for section 5 and 6 vendors are taken from public sources, not the repository]
| # | Vendor | Role | What it sees | Location | Repository evidence |
|---|---|---|---|---|---|
| I1 | Internet Security Research Group (Let's Encrypt) | TLS certificates for push.oasis.cooking, founder.oasis.cooking and mailmux.main.zone via certbot; presumably also oasisgui.com [DECISION: confirm the certificate issuer for oasisgui.com] |
Host names (published in public Certificate Transparency logs); no user data | United States | founder/deploy/deploy.sh:46; push/deploy/nginx-push.conf:2; mailmux/deploy/k8s.yaml:143 |
| I2 | Apple Inc. — Developer ID notarization | Every macOS release is submitted to Apple's notary service and the ticket stapled to the DMG and .app |
The release binary and Varrock's Apple Team ID; no user data | United States | scripts/release-lib.sh:172-187; scripts/release.sh:9-11 |
| I3 | Apple Inc. — App Store Connect / TestFlight | Distribution of the Oasis Mobile application | The application binary; e-mail addresses of invited TestFlight testers (under Apple's developer terms) | United States | OasisMobile/TESTFLIGHT.md:38-43; OasisMobile/scripts/asc.py. [DECISION: only relevant if the iOS app is distributed to Customers] |
| I4 | GitHub, Inc. (Microsoft) | Source hosting of oasis-gui; continuous integration on GitHub-hosted runners; build-time download of helper binaries (Firecracker, Cloud Hypervisor, crun, skopeo, umoci, scrcpy). The updater never contacts GitHub |
Source code and CI logs; no Customer Personal Data | United States | .github/workflows/ci.yml; scripts/fetch-*.sh; vmhelper-shared/src/lib.rs:431-487 |
| I5 | Amazon Web Services — public S3 bucket | Build-time fetch of Firecracker CI kernel images for the VM helper | Nothing (anonymous public fetch at build time) | United States | vmhelper-shared/src/lib.rs:344-350 |
| I6 | Registrar and DNS host for oasisgui.com and oasis.cooking — not named in the repository |
Domain registration and DNS resolution | Resolver query metadata, not end-user data directly | [DECISION: name the registrar and the DNS provider] | Wildcard *.oasis.cooking record referenced in docs/mobile-notifications-design.md:247 |
| I7 | WireGuard LLC — download.wireguard.com |
Build-time download of the prebuilt wireguard-nt 0.10.1 driver bundled in the Windows installer, under WireGuard LLC's prebuilt-binaries license (see Third-Party Notices) |
Nothing (anonymous fetch at build time); no user data | United States [DECISION: confirm] | scripts/fetch-wireguard-nt.sh:13-15,41; src-tauri/binaries/manifest.json |
6. Third-party services engaged by the Customer#
6.1 The Products can contact the services below. In every case the contact originates from the Customer's own machine, uses the Customer's own credentials where credentials are involved, and happens only when the Customer installs, enables or uses the relevant feature. Varrock does not receive, route or store the data exchanged. These services are not Sub-processors; each is governed by its own terms, which the Customer accepts directly.
| # | Third party | Trigger | Data the third party receives | Location | Repository evidence |
|---|---|---|---|---|---|
| U1 | Anthropic, PBC | Signing in to a Claude account in the Accounts view (OAuth via claude.ai / console.anthropic.com); usage polls to api.anthropic.com from the desktop and each host's runner; the Claude Code install script (claude.ai/install.sh) |
The Customer's OAuth tokens and account usage; whatever the Customer's own Claude Code sessions send | United States | src-tauri/src/claude_accounts/claude_oauth.rs:13-19; runner/oasis-runner/src/claude_usage.rs:33; src-tauri/src/tmux_manager.rs (install_agent_cli) |
| U2 | OpenAI; Moonshot AI (Kimi Code); OpenCode; Nous Research (Hermes) | Agent install scripts run on request (chatgpt.com/codex/install.sh, code.kimi.com/kimi-code/install.sh, opencode.ai/install, hermes-agent.nousresearch.com/install.sh). Account and plan information is read from local files; the Products themselves contact no OpenAI, Moonshot, OpenCode or Nous API |
Host IP address during install | United States (OpenAI); others not established [COUNSEL: Moonshot's processing location is not established in the repository] | src-tauri/src/tmux_manager.rs (install_agent_cli, currently lines 2650-2680); src-tauri/src/codex_accounts.rs:101-104; src-tauri/src/kimi_accounts.rs |
| U3 | OpenRouter, Inc. | Supervisor sessions, the to-do overseer, browser and Android agents and voice-reply shortening — only after the Customer enters an OpenRouter API key. Requests carry HTTP-Referer: https://oasisgui.com and X-Title: Oasis GUI for traffic attribution |
Workspace text and transcripts the Customer chooses to send | United States | src-tauri/src/openrouter.rs:15,186-187; runner/oasis-runner/src/orchestrator/llm.rs |
| U4 | ElevenLabs, Inc. | Commander voice mode (speech-to-text, text-to-speech, voice list) — only after the Customer enters an ElevenLabs API key | Microphone audio; agent replies to be voiced | United States | src-tauri/src/voice.rs:34-36 |
| U5 | Microsoft Corporation — WebView2 Evergreen runtime | Installing the Windows build on a PC without WebView2: the embedded bootstrapper downloads the runtime from Microsoft silently | The download request; WebView2's own diagnostics are governed by Microsoft's terms | United States | src-tauri/tauri.conf.json bundle.windows.webviewInstallMode: embedBootstrapper |
| U6 | GitHub, Inc. | Creating an iOS simulator session (WebDriverAgent download); installing Homebrew via raw.githubusercontent.com during first-run setup |
Host IP address | United States | src-tauri/src/ios_manager.rs:72-74; src-tauri/src/tmux_setup.rs:261 |
| U7 | The Customer's S3-compatible storage provider (AWS, MinIO or another) | Configuring Backups | A restic-format encrypted repository; the S3 credentials are distributed to every backed-up host | Customer's choice | docs/backup-design.md; runner/runner-proto/src/messages.rs:1482-1487 |
| U8 | ipify; Cloudflare (cdn-cgi/trace, 1.1.1.1); Quad9 (9.9.9.9); ip-api.com; ipapi.co |
Public-IP and time-zone probes by hosts and new VMs (ip-api.com over plain HTTP); upstream DNS while a mesh exit node or resolv.conf takeover is active; the optional Mail server resolves via Cloudflare DNS |
The host's or VM's public IP address; DNS queries | Various | src-tauri/src/port_reachability.rs; src-tauri/src/vpn_manager.rs:124; oasisnet/src/dns.rs; runner/oasis-mail/src/dns.rs:16-23 |
| U9 | Canonical; Alpine Linux; Docker, Inc. (Docker Hub); Ubuntu CD image mirrors | Creating a VM or an Android session: the host fetches base and container images | Host IP address | Various | runner/oasis-runner/src/vmhost/rootfs.rs; src-tauri/src/vm_manager/vm_provision.rs; runner/oasis-runner/src/android/oci.rs:1242-1246 |
6.2 The Privacy Policy carries a plain-language version of this table under "third-party connections", beside the statement that the Products have no telemetry.
7. Automatic geo-IP lookup: api.country.is#
7.1 This is the only third party that receives Personal Data from a default installation without Customer action. Whenever a view that shows a country flag is rendered — the Mesh view (src/MeshModal.tsx:984, including the expanded device-detail row inside it, src/MeshDeviceDetail.tsx:13,196, which reads the codes the Mesh view fetched) and the per-machine system-monitor dropdown, which looks up that machine's own mesh endpoint (src/ServerStats.tsx:586-588) — the desktop application resolves each displayed peer's endpoint (a public IP address, or a host name such as the coordinator's, which is resolved to an address first) and requests https://api.country.is/<ip> to obtain a country code for the flag (src/meshIpGeo.tsx:13-27; src-tauri/src/geoip.rs, lookup and geoip_countries). Private addresses are skipped. A successful answer is cached for the life of the application process, so each address is sent once per application launch; a failed lookup is retried after ten minutes (src-tauri/src/geoip.rs:1-8,18). The request discloses the public IP address of every mesh peer — Personal Data of the Customer's users — to the operator of api.country.is, whose identity, location and retention practices are not established in the repository. The Privacy Policy §8.2 and docs/enterprise/02-security.md §5 currently describe the trigger as the Mesh view only and need the same correction (outside this document).
7.2 Because the request is initiated from the Customer's machine but is neither requested by nor disclosed to the Customer, it does not fit section 6; because the operator is unknown and has no contract with Varrock, it is not a Sub-processor under section 4. One of three resolutions must be chosen before the Privacy Policy is published:
- (a) keep the lookup and disclose
api.country.isas a third party that receives peer IP addresses, after identifying its operator and terms; - (b) gate the lookup behind an off-by-default setting; or
- (c) remove the lookup or replace it with an offline country database.
[DECISION: choose (a), (b) or (c) for api.country.is before the privacy notice is published] [COUNSEL: (i) whether Varrock, as designer of a default-on feature that discloses third parties' IP addresses, is a controller or joint controller for the disclosure (CJEU C-40/17 Fashion ID; C-210/16 Wirtschaftsakademie), independent of the Customer's role; (ii) if (a) is chosen, whether disclosure suffices or a legal basis under GDPR Article 6(1)(f) with a documented balancing test is needed; (iii) whether (b) off-by-default is the only option that avoids (i)]
8. Varrock-side hosts and products outside this list#
8.1 The repository configures several hosts and a separate product that are not part of delivering the Products or Varrock Infrastructure. They are recorded so counsel can confirm the boundary.
| Host / product | What it is | Provider and location | Why it is outside the list | Repository evidence |
|---|---|---|---|---|
relic |
OasisNet coordinator #2, relay hub and VM host for Varrock's own mesh; also routes public IP addresses to other tenants' guests | Worldstream, Naaldwijk, Netherlands (Dell R6515, 185.183.35.6) [DECISION: confirm the contracting entity and the contract under which relic is leased] | Serves Varrock's own mesh unless hosted coordinators are offered (then A3). Shared with other tenants, which matters for any "dedicated infrastructure" claim [DECISION: confirm relic is internal infrastructure; note the shared-tenant situation in any security questionnaire] | nix/hosts/relic/configuration.nix:1-5,36,71,106-118,253-260 |
main.zone |
Former built-in default coordinator oasis.main.zone:51820; MailMux staging on "Worldstream k3s-01". The Products no longer ship any default coordinator |
Worldstream, Netherlands (mailmux/README.md:10) |
No current Customer-facing role is evidenced [DECISION: confirm main.zone is the Worldstream k3s-01 box and whether it still serves any Oasis role; docs/oasisnet-design.md:119 is stale] | deploy/founder/README.md:1-13; mailmux/deploy/deploy.sh:13 |
mp1 / mp2 |
Hetzner AX102 bare metal: mp2 is an Oasis VM host; mp1 is MediPredict production, deployed from a separate copy of the flake |
Hetzner, Falkenstein, Germany [DECISION: confirm contracting entity] | Affiliate or owner workloads, not product delivery [DECISION: confirm mp1/mp2 are not product-delivery infrastructure] | nix/hosts/flake.nix:24-37; nix/hosts/mp2/configuration.nix:1 |
MailMux (mailmux/) |
A separate product in the same repository using Stripe, Google OAuth and Microsoft OAuth | — | Not part of OasisGUI or OasisNet [DECISION: out of scope unless MailMux is published under Varrock; if so it needs its own list] | mailmux/README.md:90-105; mailmux/deploy/k8s.yaml:1-4 |
Founder app (founder/) |
Invitation-only network application with an API at founder.oasis.cooking on the B1 host |
B1 host | Not part of the Products, but shares the B1 host and its logs [DECISION: confirm the Founder app is outside this list] | founder/deploy/deploy.sh |
9. Change notification mechanism#
9.0 Incorporation and precedence. This list is incorporated into the Data Processing Addendum as the list referred to in its Section 4.4 and Annex III. It is a disclosure; obligations between Varrock and a Customer arise only under the Data Processing Addendum, and in case of conflict that Addendum prevails (its Section 8.2). Nothing in this section creates a right or obligation that the Data Processing Addendum does not.
9.1 Where the list lives. The authoritative version is published at [DECISION: canonical URL, e.g. https://oasisgui.com/legal/subprocessors] and maintained in the repository at docs/legal/subprocessors.md. Each published version is dated in section 10.
9.2 What counts as a change. Adding or replacing a Sub-processor in section 4A; materially changing the Customer Personal Data a Sub-processor can access or the country in which it processes; promoting a conditional entry (A1, A2, A3) to active; or adding a new default-contact third party of the kind in section 7. Changes to sections 4B, 5, 6 and 8 are informational, do not trigger the notice period, and are still recorded in section 10.
9.3 Advance notice. Under the Data Processing Addendum, Varrock gives Customers that have signed it the prior notice that its Section 4.4 requires (thirty (30) days at this draft) before a new or replacement Sub-processor begins processing Customer Personal Data, by the channel that Section 4.4 designates. [DECISION: notice channel — decide once, in DPA §4.4, and mirror it here; recommended: e-mail to the DPA contact plus this page] [DECISION: whether to also offer a subscription mechanism — a mailing list or an RSS/Atom feed of this page — so Customers without a DPA can follow changes]
9.4 Emergency replacement. This list grants no right to replace a Sub-processor without prior notice. [COUNSEL: whether an emergency-replacement clause (replacement first, notice within N days, objection and termination right preserved) should be added to DPA §4.4; it must be consistent with SCC Clause 9(a) Option 2 and cannot be introduced through this list alone]
9.5 Right to object. A Customer that has signed the Data Processing Addendum may object to a new Sub-processor on reasonable, documented data-protection grounds within the notice period; the procedure and termination right are in that Addendum. Because the Products run on the Customer's own infrastructure, the practical remedy is usually to keep using the Products without the affected Varrock-Operated Service (switch off the update poll — the launch-time check still runs, see 3.1 — self-host the push gateway, or decline a Varrock-run coordinator).
9.6 Verification. docs/enterprise/02-security.md §5 lists the principal outbound flows and the setting, if any, that disables each; this list is the complete inventory and is reconciled with that section at every change. [DECISION: extend 02-security.md §5 to the section 6 destinations it omits (install scripts, ElevenLabs, IP/time-zone probes, image mirrors, WebView2) or reference this list from it]
9.7 Before onboarding. Under the Data Processing Addendum §4.4, Varrock binds each Sub-processor by written contract to data-protection obligations no less protective than those in the Addendum before it receives Customer Personal Data, records it in section 4A, and puts the transfer mechanism in place where it processes outside the EEA, the United Kingdom or Switzerland. Varrock remains responsible for each Sub-processor's performance; the Customer is responsible for the section 6 services it engages directly.
10. Version history#
| Version | Date | Change |
|---|---|---|
| 0.1 (draft) | 2026-10-06 | First draft for attorney review, compiled from repository evidence at the 2.0.0 release line. No vendor has yet been confirmed by the owner. |
| 0.2 (draft) | 2026-10-06 | Review pass: section 4 split into Sub-processors under the DPA (4A) and Varrock's own processors (4B); definitions aligned with the DPA; DPA links corrected; update-check, website-font, geo-IP and push-gateway facts corrected against the code; transfer-safeguard column added; emergency-replacement carve-out removed; WireGuard LLC and Google Fonts added; invented legal-entity names removed. |
11. Open decisions#
Every marker in this document is indexed below; the exact text is at the section cited and can be found with grep -n 'DECISION\|COUNSEL' docs/legal/subprocessors.md.
Owner decisions
- Whether Varrock offers hosted coordinators or relays to Customers at all — 2 (Varrock-Operated Service), 3.3, A3.
- Add a setting that also disables the launch-time update check — 3.1.
- Confirm the website redesign (no Google Fonts) is deployed before this list is published; until then Google LLC stays in 4B — 3.2, B3.
- Access-log retention for
oasisgui.com, including the host-level front-nginx — 3.2. - Whether mobile push will go live, which makes the gateway host a Sub-processor and Apple APNs a Sub-processor or independent service, and requires payload disclosure — 3.5, A2 (list now as conditional, or only when live).
- Hosting provider, datacenter country and contracting entity for
oasis.cooking— A1, B1. - Access-log retention for
push.oasis.cooking— A1 (mirrors DPA Annex I). - Contracting entity and contract under which
relicis leased from Worldstream — A3, 8. - Whether hosted coordinators/relays, if offered, are added to DPA §2.3 and Annex III, or
relicmoves to section 8 — A3. - Confirm written data-processing agreements exist with the hosting provider and the mailbox provider — B1, B2.
- Mailbox provider and country for
sales@oasisgui.com— B2. - Confirm no support-ticketing, CRM, invoicing or payment vendor handles Customer or prospect data outside the repository — 4.2.
- Confirm Varrock has no affiliates, or name any affiliate operating shared infrastructure in section 8 — 4.2.
- Whether Varrock is, or intends to become, self-certified under the EU-US Data Privacy Framework — 4.3.
- Certificate issuer for
oasisgui.com— I1. - Whether the iOS app is distributed to Customers — I3.
- Registrar and DNS provider for
oasisgui.comandoasis.cooking— I6. - Confirm WireGuard LLC's location — I7.
- Resolution (a), (b) or (c) for
api.country.isbefore the privacy notice is published — 7.2. - Confirm
relicis internal infrastructure and note its shared-tenant situation — 8. - Confirm
main.zoneis the Worldstream k3s-01 box and whether it still serves any Oasis role — 8. - Contracting entity for the Hetzner hosts — 8.
- Confirm
mp1/mp2are not product-delivery infrastructure — 8. - Whether MailMux is published under Varrock (if so, it needs its own list) — 8.
- Confirm the Founder app is outside this list — 8.
- Canonical URL for the published list — 9.1.
- Notice channel for Sub-processor changes — decide once in DPA §4.4 and mirror here — 9.3.
- Whether to offer a subscription mechanism (mailing list or feed) for changes — 9.3.
- Extend
docs/enterprise/02-security.md§5 to the section 6 destinations it omits, or reference this list from it — 9.6.
Counsel decisions
- Whether Apple APNs is a Subprocessor under SCC Clause 9 or an independent service under the Apple Developer Program License Agreement (DPA §6.6) — 3.5, A2.
- Whether personal data collected directly by a US controller and then handed to a US processor engages Article 46 at all (EDPB Guidelines 05/2021) — B1, B2.
- Whether embedding Google Fonts makes Varrock a controller for the disclosure of visitor IP addresses to Google — B3.
- Whether SCC Module Three is needed where the Customer is itself a processor (DPA §6.2) — 4.3.
- Whether SCC Module Two is required for A2 while push is not live, and whether Varrock needs an EU representative under GDPR Article 27 — 4.3.
- Legal entity names for section 5 and 6 vendors are taken from public sources, not the repository — 5.1.
- Moonshot AI's processing location — U2.
- For
api.country.is: (i) whether Varrock is a controller or joint controller for the disclosure (Fashion ID); (ii) if kept, whether disclosure suffices or an Article 6(1)(f) basis with a balancing test is needed; (iii) whether off-by-default is the only option that avoids (i) — 7.2. - Whether an emergency-replacement clause belongs in DPA §4.4, consistent with SCC Clause 9(a) Option 2 — 9.4.
Varrock Inc. · Draft 0.2 · 2026-10-06 · Prepared for attorney review; not legal advice.
Source: docs/legal/subprocessors.md in the repository · draft for attorney review · 39 [DECISION] markers and 11 [COUNSEL] markers on this page.