Your team,
your tenants, your keys.

The control plane is multi-tenant to its core: an organisation IS a tenant, and every project, app and row lives inside that boundary. Invite members, assign roles, secure sign-in with MFA, and issue API keys that let the CLI act on your behalf.

voltro cloud
Access
$ voltro cloud whoami
you@team.co · org: acme  (owner)

$ voltro cloud projects
  acme/my-saas         production
  acme/client-portal   production

# An API key authenticates CI, scoped:
Authorization: Bearer vk_live_…      # inventory:write

Access, done right

Shipped today. SSO login is the one item still landing.

Organisations = tenants

Shipped

The org is the tenant boundary — org id equals tenant id, and every downstream row is tenant-scoped by the multitenancy primitive. Cross-tenant access is blocked by the runtime, not by convention.

Projects & environments

Shipped

Create projects, each with built-in production and development environments, region selection, and per-environment config and env-vars (`voltro cloud env set/list/pull`).

Members & roles

Shipped

Invite members, remove them, and gate sensitive actions by role — owner and admin sign-off is enforced server-side for invites and migration approvals.

Email + password + MFA

Shipped

The front door is email and password with argon2id hashing and constant-time verification, an HMAC-signed session cookie, and optional TOTP MFA with enrolment and recovery.

API keys for the CLI

Shipped

Issue, list and revoke API keys with scopes (e.g. inventory:write, license:read). A Bearer key authenticates the `voltro cloud` CLI — that’s how your pipeline talks to the control plane.

SSO login — coming

On the roadmap

WorkOS-backed SSO for signing in to Cloud is built but dormant until credentials are configured. (Your own apps can already use the framework’s SAML / SCIM / OIDC plugins for their end-users today.)

One boundary, enforced everywhere

The org is the tenant

There’s no separate “tenant” concept to keep in sync with your org — they’re the same id. Reads are auto-scoped, writes are guarded, and every panel, deploy and meter in the dashboard is filtered to the org you’re acting in. Membership and role are the only things that widen what you can see.

Related capabilities

See it running.

Open the dashboard on a live demo project and click through the panels yourself — logs, traces, workflows, migrations and more.