How Tenant Isolation Works in Kestra Enterprise

For the complete documentation index, see llms.txt. For a full content snapshot, see llms-full.txt. Append .md to any kestra.io/docs/* URL for plain Markdown.

Multi-tenancy allows you to manage multiple environments (e.g., dev, staging, prod) in a single Kestra instance.

Multi-tenancy is a software architecture in which a single instance of software serves multiple tenants. You can think of it as running multiple virtual instances in a single physical instance. You can use multi-tenancy to separate resources between business units, teams, or customers.

This feature requires the Enterprise Edition.

How does multi-tenancy work in Kestra

Every resource in Kestra belongs to exactly one tenant. The following are fully isolated per tenant:

ResourceDescription
Flows, triggers, executionsCore workflow resources — the same flow ID and namespace can exist independently in multiple tenants
NamespacesNamespace hierarchy, variables, KV store, namespace files, and task defaults
RBAC — roles, users, groups, service accountsAccess control is fully scoped to the tenant
SecretsSecret keys and values are never shared across tenants
PoliciesGovernance rules (injection, validation, enforcement) are scoped to tenant and namespace
Worker QueuesTask routing rules are tenant-scoped
Audit logsActivity logs are isolated and queryable per tenant
Internal storageExecution outputs and task data are stored in tenant-specific paths

Instance-level resources — configuration, license, static policies, and instance owner banners — sit above the tenant layer and require Instance Owner access.

Users switch between tenants using the tenant dropdown in the bottom-left corner of the UI. The dropdown lists every tenant the user has access to; the active tenant is indicated with a checkmark. Each UI page also includes the tenant ID in the URL (e.g., https://demo.kestra.io/ui/yourTenantId/executions/namespace/flow/executionId).

Tenant switcher dropdown showing multiple tenants

Tenants are created and managed through the Instance Owner console (Instance Owner → Tenants) — only users with the Instance Owner privilege can create, edit, or delete tenants. Users must be granted access to a tenant before they can switch to it. See Tenants for configuration details.

Most API endpoints are scoped to a tenant and include the tenant identifier in the path — for example, /api/v1/{tenant_id}/flows/products to list flows in the products namespace. Instance-level endpoints such as /api/v1/configs or /api/v1/license-info have no tenant segment. See the Enterprise Edition API Guide for the full reference.

Was this page helpful?