Disclosure follows the data
Least privilege means a provider receives only the categories needed for its service. Zero trust means a familiar vendor name, internal network, Texas location, or company-owned machine does not confer blanket access. We list a managed provider when it processes personal data for FunkyRouter, and we separately list locally executed software so a package name is not mistaken for a remote data recipient.
“Subprocessor” has its legal meaning under the Data Processing Agreement. A provider is a DPA subprocessor only to the extent it processes Customer Personal Data on FunkyRouter's behalf. WorkOS and Stripe primarily process account-administration or billing data for which FunkyRouter acts as a controller; they remain in this register because hiding that boundary would be less useful than naming it.
Managed providers and data recipients
| Provider and service | Purpose and data categories | Location and transfer terms | Inference content |
|---|---|---|---|
| Cloudflare, Inc. Workers, DNS, Turnstile, rate limiting, edge delivery, and the current pilot tunnel DPA role: Authorized subprocessor for Customer Content in transit; processor to FunkyRouter for website, edge, and security data. | Serve and protect the website and account application, verify anti-abuse challenges, enforce endpoint limits, and route the current pilot edge connection. Data: IP and network data, request and response metadata, browser and device data, security signals, session traffic, and data submitted through the website. Current pilot API traffic may transit Cloudflare's edge and tunnel. | Cloudflare's global network, including the United States; exact processing depends on the request path and Cloudflare configuration. Transfer: Cloudflare Customer DPA and its applicable Data Privacy Framework or Standard Contractual Clause terms. DPA or legal terms · Privacy notice | Possible in transit on the current pilot ingress. FunkyRouter does not use Cloudflare storage for prompt or completion bodies. |
| WorkOS, Inc. AuthKit, organizations, sessions, roles, memberships, and organization API keys DPA role: Processor to FunkyRouter for controller-side identity and account data; not used to process Customer Content. | Authenticate people, maintain workspace membership and permissions, manage hosted sign-in and signup, and issue or revoke scoped organization API keys. Data: Name and email, WorkOS user and organization identifiers, membership and role data, session and security data, organization metadata, and API-key identifiers, names, permissions, and status. | United States and locations used by WorkOS and its published subprocessors. Transfer: WorkOS Data Processing Addendum and its applicable transfer terms. DPA or legal terms · Privacy notice | No. FunkyRouter does not send prompts or completions to WorkOS. |
| Stripe, LLC Hosted Checkout and payment-event processing DPA role: Processor or independent recipient for controller-side payment and fraud data, depending on the activity; not used to process Customer Content. | Collect payment, prevent fraud, process prepaid-credit purchases, and return signed transaction status to the FunkyRouter ledger. Data: Customer email, organization and purchase references, Checkout session and transaction identifiers, amount, currency, payment status, device and network data, and payment details submitted directly to Stripe. | United States and other locations used by Stripe, its affiliates, financial partners, and published subprocessors. Transfer: Stripe Data Processing Agreement and Data Transfers Addendum, including applicable Data Privacy Framework or Standard Contractual Clause terms. DPA or legal terms · Privacy notice | No. FunkyRouter does not send prompts or completions to Stripe. |
Cloudflare is the only managed provider in this register that may technically process prompt or completion content in the normal current pilot path, because API traffic traverses its edge and tunnel. WorkOS receives identity and authorization data; Stripe receives checkout and transaction data. FunkyRouter does not send prompts or completions to WorkOS or Stripe.
First-party stack and processing boundary
| Layer | Exact implementation | Data boundary | Deployment status |
|---|---|---|---|
| Website and account application | Cloudflare Worker built with Vinext 1.0.0-beta.8, Next.js 16.3.3, and React 19.2.8 Source | Identity-aware web backend. It has no D1 database or direct SQL client; control-dependent account writes fail closed when the control API is unavailable. | Website runtime inventory. Website availability does not prove the separate API or inference path. |
| Public API and control plane | Cloudflare Tunnel to FunkyRouter's Go Bifrost fork, with an OpenAI-compatible facade, service-authenticated control API, PostgreSQL, and the shared-pool broker backend Source | Authenticates organization keys, applies model and request limits, reserves credit before dispatch, and records content-free terminal usage metadata. | The broker backend is configured. Live inference acceptance depends on a ready enrolled node, the exact deployed runtime and model, and a successful authenticated request with usage settlement. |
| Authoritative records | FunkyRouter-operated PostgreSQL ledger; Bifrost SQLite is limited to gateway provider and governance configuration Source | Stores account projections, safe key metadata, waitlist, billing, audit, usage, node, and fleet records. It has no prompt or completion body columns. | PostgreSQL is the pilot authority; final backup, expiration, and cross-tenant acceptance remain launch gates. |
| Shared Texas inference broker | Go broker dispatching to operator-approved Apple Silicon nodes over outbound TLS 1.3 mutual-TLS WebSockets Source | Selects eligible nodes from the shared texas-shared pool without customer, project, organization, or API-key scheduling affinity. Admission checks node identity, approved Texas placement, revocation, runtime, artifact, and fresh capacity. | A connected or account-linked Mac is not automatically available for routing. Broker readiness and credentialed inference must be verified for the installed release. |
| Swift node beta release | FunkyRouter Swift node agent v0.0.23 using MLX Swift runtime mlx-swift-lm-3.31.4 on company-controlled Apple Silicon Source | Processes the pinned qwen/qwen3.8-27b model in process, with no public or loopback inference listener. Operator-approved enrollment authenticates the Mac; MDM is optional deployment tooling. This beta does not provide hardware attestation or hide inference content from the Mac's administrator. | The published company-beta feed identifies the available release. Release availability does not establish installation on a Mac or live serving acceptance. Developer ID signing, notarization, and cryptographically signed updates remain distribution gates. |
The configured inference path is: customer application → Cloudflare edge/tunnel → FunkyRouter Go/Bifrost gateway and shared Texas broker → a selected, operator-approved Apple Silicon node running MLX Swift in process → streamed response. Nodes initiate outbound TLS 1.3 mutual-TLS WebSocket connections to the broker. PostgreSQL records control and usage metadata. Network encryption protects transit; content exists in plaintext in the gateway and selected node's process memory while inference is performed.
Shared-pool enrollment requires operator approval and verified Texas placement. MDM is optional deployment tooling. Certificate possession and runtime checks authenticate the enrolled node; they do not provide hardware attestation or confidentiality from the Mac's administrator. A published release, an installed agent, and a ready serving connection are separate states. Live acceptance requires a successful authenticated inference request and settled usage.
Versioned software dependencies
Website Worker and browser runtime
These versions are resolved by the current package lock and deployed as part of the website Worker or its browser assets. Most execute locally and do not contact their authors. The WorkOS and Stripe clients connect only to the corresponding managed provider already named above; the font packages bundle self-hosted files.
Show all 17 direct runtime dependencies
| Package | Resolved version | Role |
|---|---|---|
@fontsource-variable/inter | 5.3.0 | Self-hosted font files |
@fontsource-variable/roboto-slab | 5.3.0 | Self-hosted font files |
@radix-ui/themes | 3.3.0 | Interface components |
@tanstack/react-query | 5.102.6 | Client data-state management |
@workos-inc/authkit-nextjs | 4.3.1 | Hosted authentication integration |
@workos-inc/node | 10.11.0 | Server-side WorkOS API client |
@workos-inc/widgets | 1.17.0 | Account interface components |
fumadocs-core | 16.15.4 | Documentation framework |
fumadocs-mdx | 15.4.0 | Documentation content pipeline |
fumadocs-ui | 16.15.4 | Documentation interface |
lucide-react | 1.34.0 | Bundled interface icons |
next | 16.3.3 | Application framework contract |
react | 19.2.8 | User interface runtime |
react-dom | 19.2.8 | Browser and server rendering runtime |
stripe | 22.5.0 | Server-side Stripe API and webhook verification |
swr | 2.5.1 | Client data-state management |
vgpu | 0.3.1 | Bundled WebGPU route visualization |
Go gateway and broker
The FunkyRouter API source contains local fork modules for Bifrost core, framework, transport, governance, compatibility, logging, routing, prompts, model-catalog resolution, OpenTelemetry, telemetry, and related plugins. The exact direct and transitive module graph is versioned in the transport go.modand sibling module manifests. The installed gateway's build metadata identifies its source revision. A successful build or source update alone does not establish deployment or live inference acceptance.
Published Swift node beta release
The website's published v0.0.23 node release, sourced from node commit 64681cf2d8d81e268b70d8d7c295b67c05b6c55b, has these four direct SwiftPM dependencies. They are locally executed software, not remote recipients. The company-beta release feed identifies the release version, source revision, and artifact hashes. Availability in that feed does not mean the release is installed or serving on any particular Mac.
Show all 4 direct node dependencies
| Package | Exact version | Role |
|---|---|---|
mlx-swift | 0.31.6 | Apple MLX array and compute runtime |
mlx-swift-lm | 3.31.4 | In-process language-model runtime |
swift-transformers | 1.3.3 | Tokenizers and model configuration |
swift-huggingface | 0.9.0 | Pinned artifact download integration |
Build, lint, testing, type, and deployment tools are development dependencies and are not part of the request-time data path. Transitive packages remain covered by their parent component's software license and dependency controls; their presence alone does not disclose data.
What is not a FunkyRouter subprocessor
- OpenRouter or another customer-selected aggregator.If Customer independently sends a request through that service, the aggregator receives content under Customer's agreement before it reaches FunkyRouter. It is not in the standard managed path and is not our subprocessor for that customer-controlled routing.
- OpenAI. The API facade is OpenAI-compatible. Protocol compatibility and an OpenAI client library do not send data to OpenAI or make OpenAI a provider unless Customer separately chooses an OpenAI service.
- Alibaba/Qwen, Apple/MLX, and Maxim/Bifrost. Model weights, MLX Swift, and the Bifrost gateway run inside the FunkyRouter-controlled path. Their authors or licensors do not receive a request merely because their software executes locally.
- Cloudflare build tooling and package authors. A bundled library or build tool is not a recipient unless a configured feature transmits data to an external service. Any such service must be added to the managed-provider table before use with customer data.
Changes, notice, and objections
We will version this register and provide at least 30 days' advance notice through this page and, once enabled, the authenticated service or Customer's verified account or Order contact before authorizing a new subprocessor to process Customer Personal Data. DPA Customers may object on reasonable data-protection grounds and use the resolution and termination process in Section 6 of the DPA.
During the initial private beta, questions and objections must use the verified invitation, Order, or authenticated support channel supplied to Customer. Public legal and privacy mailboxes are a launch gate and will be published only after delivery has been tested.