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 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:writeAccess, done right
Shipped today. SSO login is the one item still landing.
Organisations = tenants
ShippedThe 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
ShippedCreate 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
ShippedInvite 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
ShippedThe 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
ShippedIssue, 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 roadmapWorkOS-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.