Skip to content

☁️ Iterion Cloud — the multi-tenant control plane for AI agents

Audience. Anyone evaluating iterion as a multi-tenant platform — a platform engineer about to helm install, a tech-lead choosing between self-hosting and managed, or an operator who needs to explain to a review board what iterion is before they let it near production.

Iterion is two things in one repository:

  1. An open-source workflow engine you run locally (iterion run, iterion studio, the desktop app) — the same engine the rest of the docs cover.
  2. A self-hostable multi-tenant platform built on top of that engine: orgs, teams, BYOK LLM keys, generic + bot-secret bindings, inbound webhooks for four providers, NATS-queued runner pods, per-org quotas, audit log, PATs, SMTP onboarding. We call this deployment mode Iterion Cloud: the control plane and execution platform for running agent workflows across teams.

The control plane for AI agents. Apps have Linux. The cloud has Kubernetes. AI agents have Iterion.

Terminology. An agent workflow is the deployable workload packaged as .bot or .botz and identified as a bot by the existing CLI and API. An agent is one LLM-powered node inside that workflow.

The governed execution loop

A .bot is a deployable agent workflow: a versioned graph that can combine agents, judges, tools, routers, human gates, and deterministic compute. In cloud mode the loop is end-to-end:

The event is the trigger; the agent workflow is the governed workload; the org-bound credentials let it act in the user's own system (GitLab MR comment, GitHub PR review, Mattermost note); the result lands back in that system without anyone clicking a UI in between.

A concrete walkthrough — GitLab MR → Revi review

The operator's seed (a one-off):

  1. Helm-install the chart against Mongo + NATS + S3 (see cloud-deployment.md).

  2. Bootstrap the super-admin and create an org for the team (see the Iterion Cloud admin guide).

  3. The org admin opens /teams/<id> in the studio → Integrations → "Connect a forge" → GitLab → paste a project access token (or use OAuth when an OAuth app is configured) → Enable a repo → pick the project → check review-prEnable. In one action iterion creates the GitLab project hook (pointing at its own inbound URL, with a fresh iwh_ secret it holds on both ends), the matching webhook config, and the forge_token binding so Revi posts the review under the org's own GitLab account. The operator never sees or pastes a token URL. See forge-integrations.md.

    (The raw Webhooks / Secrets / Bindings tabs remain for advanced / non-forge cases — e.g. a generic JSON trigger — and for hand-wiring a webhook the operator wants to manage themselves. Configs created by Integrations are marked managed and can only be torn down from the Integrations tab.)

After that, every MR-open in the GitLab project triggers Revi autonomously:

StepWhere the code livesWhat happens
GitLab POSTs the merge_request eventthe forgeHeader X-Gitlab-Token: iwh_…
Token check + rate/quota gatespkg/server/middleware_webhook.go401/410/429/403 if anything fails
Parse + filter (open/reopen on allowed project)pkg/webhooks/gitlab/parser.go200 filtered for noise (updates, label edits)
Launch admission (org suspend / concurrency / cost cap / run quota)pkg/server/launch_gate.go402/403/429 with a stable reason token
Bundle the org's BYOK keys + bound secrets, seal thempkg/secrets/run_secrets.goPer-run AES-GCM, run-id-bound AAD
Publish on NATS iterion.queue.runspkg/queue/nats/nats.goKEDA scales the runner pool on lag
A runner pod claims, unseals, runs the review-pr workflowpkg/runner/loop.goOne in-flight run per pod (each pod's serial loop; MaxAckPending=256 is the fleet ceiling)
The workflow clones, reviews, posts the note via forge_tokenthe workflowThe org's identity, not iterion's
Audit row + delivery row + Prometheus counterspkg/audit/audit.go + pkg/cloud/metrics/metrics.goBoth tenant and platform timelines

The same chain handles an on-demand re-review: a reviewer types /revi in the MR's notes, GitLab POSTs a Note Hook to the same URL, iterion's GitLab handler recognises the command word (pkg/webhooks/gitlab/note.go:IsReviewCommand), and a fresh review fires under a different idempotency key.

The primitives

PrimitiveOwnsWhere
Webhook token (iwh_…)inbound auth + tenant resolution + per-org rate/quotadocs/webhooks.md · pkg/webhooks/
Workflow catalog (bot_id)what a webhook can launch — agent workflows discovered from ITERION_BOTS_PATHdocs/bundles.md
BYOK API keys + bindingsthe org's LLM and forge credentials, sealed at restdocs/secrets-reference.md · pkg/secrets/
Runner poolclaims a queued run, unseals the bundle, runs the workflowdocs/cloud-architecture.md · pkg/runner/
Orgs + quotas + auditthe multitenancy and metering layerdocs/quotas-and-limits.md · pkg/orgusage/ · pkg/audit/
PATs (iap_…)long-lived, programmatic API access for CI/SDKsIterion Cloud admin guide · pkg/pat/
User notifications (web push)browser push when a run pauses on a human form or ends — VAPID keypair + per-user subscriptionsdocs/notifications.md · pkg/usernotify/

Everything is opt-in. A self-hosted iterion that hasn't enabled webhooks is still a perfectly fine multi-tenant studio (iterion server in cloud mode); a helm install that turns on webhooks but no PrometheusRule still runs — the chart's defaults are non-destructive (charts/iterion/README.md).

Reading map

If you arrived here looking for…

You want…Read
The conceptual loop (you're here)this page
The webhook reference (auth modes, providers, idempotency, CRUD API)webhooks.md
The quota / metering / enforcement contract (denial tokens, HTTP semantics)quotas-and-limits.md
The platform-operator + org-admin runbook (UI + curl side by side)Iterion Cloud admin guide
Every kind of secret and where it livessecrets-reference.md (engine-side layers in secrets.md)
The full REST surface (every endpoint, auth class, purpose)cloud-rest-api.md
Memory + knowledge spaces (visibilities, quotas, REST)memory-and-knowledge.md
Control plane vs data plane, queue internals, multitenancy enforcementcloud-architecture.md
How to install the chartcloud-deployment.md · charts/iterion/README.md
The OPERATOR-side bootstrap (super-admin, SSO, suspending an org)cloud-admin.md
The END-USER-side flows (login, BYOK, OAuth-forfait, PATs, reset)cloud-user.md
Outbound run-completion callbacks (the original "webhook" feature)outbound-callbacks.md

The ready-to-run agent workflows iterion ships — Nexie, Featurly, Billy, Revi, Seki and friends — live in examples.md and bundles.md. Iterion orchestrates and dispatches them through the same governed execution loop.