Skip to content

Tenant management

Multi-tenancy is on by default - see /help/concepts/multi-tenancy and /help/setup/multi-tenancy.

Tenant lifecycle

StateMeaning
NEWTenant row created, provisioning not started.
PROVISIONINGProvisioning steps running.
READYAll steps complete; tenant is serving.

A new tenant is created either:

  • Implicitly, by an incoming request matching the configured subdomain regex; or
  • Explicitly, through an admin endpoint or a TenantProvisioningStep SPI implementation.

Provisioning cadence

bash
DIRIGIBLE_TENANTS_PROVISIONING_FREQUENCY_SECONDS=30

The provisioner polls the tenant table at this cadence and drives NEW tenants through their steps.

Provisioning step SPIs

Two SPI hooks let modules plug into the lifecycle:

  • TenantProvisioningStep - runs during the PROVISIONING state. Used by data-source provisioning, CMS root setup, etc.
  • TenantPostProvisioningStep - runs after the tenant reaches READY. Used for "after the lights are on" tasks like seed data.

Implementations are discovered as Spring beans. Order via @Order.

Tenant-scoped resources

ResourceTenant-isolated?
Default data sourceyes - tenant-prefixed pool name
User data sourcesyes
CMS root folderyes
Scheduled jobs / listenersyes
OData servicesyes
BPMN process instancesno - system-level
Camel routesno
Extension declarationsno
Git repositories / workspacesno

Disabling multi-tenancy

For single-org deployments:

bash
DIRIGIBLE_MULTI_TENANT_MODE=false

All artefacts resolve against the default tenant.

See also

Released under the EPL-2.0 License.