Skip to main content
IronLabs commits to specific negative guarantees: things that never cross tenant or product boundaries. This page lists them, the boundary they apply to, and the underlying mechanism — so you can verify the guarantee, not just trust it.

Isolation guarantees

What this means in practice

  • Cross-tenant data leak through routing. Not possible — the router’s input is a single tenant’s message; the classifier output is consumed inline and discarded; the only persisted artifact is ModelSelectUsage, which is userId-scoped.
  • A neighboring user’s bad-faith Custom Router affecting your routing. Not possible — your requests route through the pre-trained router unless you set routerId to one you own.
  • A leaked AgentOpt iteration leaving state behind. Not possible — sandboxes are torn down per iteration. The only artifact that survives is the iteration’s checkpoint row in AgentOptRuns (your userId).
  • Provider key exfiltration via a logged request. Not possible in per-provider mode — keys never traverse our backend. In gateway mode (OpenRouter, LLM Gateway), the key is stored in your account’s encrypted secrets and only injected at egress.

Architecture, in one sentence

All requests terminate at the FastAPI gateway on Modal; per-tenant state lives in userId-scoped rows in PostgreSQL; there is no peer-to-peer state between tenants, between routers, or between optimization runs.

What we do not guarantee

Honesty matters. These are not currently guaranteed:
  • At-rest encryption of training datasets. Datasets you upload to a public URL for Custom Router training are downloaded into Modal Volumes and persisted in the trained model. If the dataset itself is sensitive, redact it before uploading.
  • Cross-region failover. A single region outage will produce errors until that region recovers.
  • Provider-level isolation. When a request is forwarded to OpenAI or Anthropic, that provider’s security model applies; we cannot guarantee what they log on their side.

Routing Lifecycle

See where in the lifecycle each isolation boundary is enforced.

API Authentication

Bearer-token scheme and key rotation.

AgentOpt

How the per-iteration sandbox is mounted.

Custom Router

Where your training data lives after training.