Skip to main content
Your data and agents run in your cluster. The control plane runs in xpander Cloud. The cluster opens outbound TLS on port 443 from the Agent Controller, and xpander Cloud never connects in, so no inbound firewall rules are needed. Prompts, completions, skill data, threads, task results and skill credentials never cross. The runtime controls are on Security Architecture. Air-Gapped removes the Cloud connection entirely.

Network boundary

AWS architecture of the xpander Hybrid deployment. Left: users reach the cluster over a corporate VPN into the private subnet, or optionally through an Internet gateway and NLB. AZ A private subnet runs EKS, the Agent Controller, the execution tier, and the AI Gateway. AZ B holds RDS, ElastiCache, and KMS. A VPC endpoint connects over PrivateLink to xpander Cloud. The deployment manager receives the cluster identity and health status and serves agent configuration and the skill schema. LLM providers and target APIs are reached from the VPC via NAT.

Hybrid deployment on AWS. Left: your data plane, with corporate VPN into the private subnet, or optional Internet + NLB. Right: xpander Cloud. The PrivateLink sync carries cluster identity, health status, agent configuration, and the skill schema.

The two outbound paths to the control plane: Supported PrivateLink regions: us-west-2, us-west-1, eu-west-2, eu-central-1, ap-south-1. The service itself is in us-west-2 (pass --service-region us-west-2 when creating the VPC endpoint from another region).

Authentication flow

Sign-in is the only flow from the browser to xpander Cloud. It carries identity, not work.
Authentication flow. An AI Engineer signs in at xpander Cloud (xpander Chat, SSO). The console returns the cluster address. From then on chat, tasks, and results travel between the browser and the cluster's Chat and API services, backed by the cluster's PostgreSQL.

Sign-in to xpander Chat. Identity goes to xpander Cloud. Everything after sign-in is browser ↔ your cluster.

The user signs in at chat.xpander.ai (SSO over OIDC on enterprise plans). xpander Chat then points the browser at your cluster, and chat, tasks and results move between the browser and your cluster only.

Agent runtime flow

The prompt path runs inside your cluster.
Agent runtime flow. A user reaches Chat and API in the cluster, then the Agent Controller, the execution tier, and AI Gateway. The execution tier calls LLM providers via NAT; the AI Gateway calls target APIs via NAT. Threads, tasks, and results are stored in the cluster's PostgreSQL. xpander Cloud is shown off to the side: not on this path, no prompts, no skill data.

Prompt flow. The task pipeline runs in your cluster. Model and skill calls leave via NAT. xpander Cloud is not on this path.

  • The prompt enters through your ingress to Chat/API, then the Agent Controller and the execution tier (agent-worker). Agents run on Claude Code, Codex or OpenCode on the executor fleet.
  • Model calls go through the in-cluster LLM Gateway, always on, with the organization’s or the install’s key. A call with neither key is refused with a message that names it. New runs wait for a healthy gateway.
  • The skill relay calls target APIs. Model and skill calls leave your VPC via NAT, never through xpander Cloud.
  • Threads, task state and results go to your cluster’s PostgreSQL.

Data that leaves the on-prem installation

Everything the Hybrid data plane sends to xpander Cloud, using only documented fields and public shapes. See also Hybrid deployment, Deployment options, Air-gapped deployment and access control.

What does not leave

How the cluster talks to Cloud

Only the Agent Controller reaches xpander Cloud. It authenticates with organization_id + environment_id + the deployment-manager API key, reports heartbeats, and pulls agent, skill and MCP configuration. Other pods (agent-worker, gateway, API, MCP, chat) never call Cloud. Each location also has feature toggles (Verify the Connection), which carry no runtime payloads.

1. Cluster identification

Sent on every control-plane request.
The installer never logs the API key. Helm writes typed secrets to a mode-600 values file that is removed on exit.

2. Health status (heartbeats)

Heartbeats drive Connection established and per-service status in Platform > Agents > Runtime > Locations. They use the same credentials. The schema is not published, so the example only restates what xpander Chat shows, not the wire format:
Heartbeats do not include chat text, skill results, knowledge-base content, or credentials.

3. Agent metadata (stored in Cloud, pulled by the cluster)

Agent definitions are authored in xpander Cloud and pulled as catalog metadata, not invocations. The shape is the public List Agents response, redacted:
The request carries only the cluster identification headers.

4. Skill schema (pulled)

Each skill operation is pulled as a function-call definition: name, description and parameter schema, never the tokens. Connector tokens stay in Kubernetes secrets (per-person MCP tokens: below). Redacted Jira example:
Preset skill parameters are stripped before storage, so the definition is the call shape only.

5. MCP configuration (pulled)

MCP endpoints are pulled with the agent definition. Attach payloads from Add Agent Tool:
MCP calls and results run from your cluster’s MCP service straight to your server, including servers with per-person sign-in. Only the person’s token comes from xpander Cloud.

Per-person MCP sign-in tokens

On Hybrid, per-person sign-in for MCP connectors runs in xpander Cloud. The chart has no sign-in service. xpander Cloud therefore holds each person’s access and refresh tokens for your identity provider. If your IdP or MCP connector must not be internet-reachable, or tokens must stay in your network, use Air-Gapped.

6. xpander Chat sign-in identity (browser → Cloud)

Sign-in is browser to Cloud, not cluster egress (see Authentication flow). Cloud holds this for each user, the same created_by_details shape as agent metadata:

Next steps

Review the runtime controls

Permissions, credentials, safety

Install a Hybrid deployment

Installer and PrivateLink

Compare with Air-Gapped

Zero egress

Set up access control

RBAC, SSO, audit