Skip to content

Managing Tenants

Tenants live inside a project and represent customer organizations (accounts) — each with isolated data, configuration, and a set of enabled applications. Since the Wave 3 re-architecture a tenant is not an environment: the dev/qas/run dimension is carried by the first-class Environment entity, and applications are defined once at the project level and enabled per tenant.

What is a Tenant?

A tenant represents a customer organization with:

  • Complete data isolation - Each tenant's data is separated
  • Independent configuration - Tenants can have unique settings, and per-(tenant, application) overrides on the enablement leaf
  • Enabled applications - Project applications are enabled per tenant via Tenant2Application; a tenant sees only the applications enabled for it
  • User access control - Members hold configurable tenant roles over the fixed permission vocabulary

Tenant is a customer organization, not an environment

The old tenant.type (local | dev | qas | run) enum is gone. If you previously used tenants as environments, see the Wave 3 Migration Guide for the tenant-as-environment → Environment mapping.

Creating a Tenant

Step 1: Navigate to Tenants

Open a project and go to its Tenants page.

Step 2: Click Create

Click the Create Tenant button.

Step 3: Fill in Details

Enter the tenant information:

  • Name (required) - Customer organization display name
  • Slug (required) - Short identifier (auto-filled from the name, max 10 characters)

Step 4: Save

Click Create to save the new tenant. Then enable the applications this customer should have (see Enabling Applications).

Viewing Tenants

The tenants page shows:

  • # - Tenant slug
  • Name - Tenant display name
  • Created at / Created by - Creation metadata
  • Updated at / Updated by - Last modification metadata

Filtering

Use the search box to filter tenants by name.

Sorting

Click column headers to sort by any column.

Editing a Tenant

Option 1: From List

  1. Find the tenant in the list
  2. Click the Edit icon
  3. Update the information
  4. Click Save

Option 2: From Detail Page

  1. Click the tenant name to open details
  2. Click Edit button
  3. Modify fields
  4. Click Save Changes

Tenant Details

Click a tenant to open its detail page and sub-pages:

Details

  • Tenant information (name, slug)
  • Creation and modification metadata
  • User access management (add/remove members, assign tenant roles)

Applications

The project applications enabled for this tenant:

  • Enable/disable a project application for the tenant
  • Per-(tenant, application) configuration overrides (the config-cascade leaf)

Settings

Tenant-level configuration:

  • Backend settings
  • Frontend settings
  • Defaults inherited by this tenant's enabled applications

Enabling Applications for a Tenant

Applications are defined once at the project level; a tenant gains access by enablement:

  1. Open the tenant's Applications tab (or the Application → Tenants tab).
  2. Enable the application, or run pfy application enable --tenant <slug>.
  3. Optionally add per-(tenant, application) configuration overrides.

An application not enabled for a tenant is invisible to its users — in the tenant selector, in configuration (a 404), and on the ESB. Machine users are scoped to (project, environment), not to tenants — see Machine Users.

Deleting a Tenant

Warning

Deleting a tenant will permanently remove all associated applications and data. This cannot be undone.

Steps to Delete

  1. Navigate to tenant details
  2. Click Delete
  3. Confirm the deletion

What Gets Deleted

  • The tenant record
  • All application enablements (Tenant2Application) and their per-(tenant, application) settings
  • All tenant-level settings and configurations
  • All member associations

Project applications themselves are not deleted — they live at the project level and may be enabled for other tenants.

Best Practices

Naming

  • Use clear, descriptive names
  • Include customer or organization name
  • Avoid special characters in identifiers

Organization

  • Create one tenant per customer organization (account)
  • Enable only the applications each customer should have
  • Set tenant-level defaults for organization-wide settings; use the tenant2application leaf for per-customer overrides
  • Carry dev/qas/run on Environments, never on tenants

Access Control

  • Assign users to tenants based on need
  • Use roles to control permissions
  • Regularly review user access

Monitoring

  • Check tenant activity in audit logs
  • Monitor application health per tenant
  • Track resource usage

Common Tasks

Enable an Application for a Customer

Onboarding a customer to an application is two Manager rows, not a deployment:

  1. Create the tenant (customer organization) if it does not exist.
  2. Enable the project application for it (pfy application enable --tenant <slug>).
  3. Optionally add per-(tenant, application) config overrides.

The cross-tenant application promote flow is removed — with one project-level application row there is nothing to promote between tenants. Copying configuration between environments replaces it. See the Migration Guide.

Clone Tenant Configuration

  1. View source tenant settings
  2. Copy settings (JSON editor mode)
  3. Create new tenant
  4. Paste settings in new tenant

Member Assignment

  1. Open the tenant's detail page
  2. Click Add Member
  3. Search for the user
  4. Assign a tenant role
  5. Save

Troubleshooting

Cannot Delete Tenant

Reason: the tenant still has active enablements or members

Solution: disable its applications and remove members, then delete the tenant

Settings Not Applying

Reason: Application-level settings override tenant settings

Solution: Check configuration inheritance in settings editor

User Cannot Access Tenant

Reason: user is not a member of the tenant, or the application is not enabled for it

Solution: add the user as a member with an appropriate role, and confirm the application is enabled for the tenant

See Also