Tenant
Represents an isolated organizational workspace in a multi-tenant system, providing complete data segregation and independent configuration for each customer or client organization. A Tenant is the foundational unit for multi-tenancy, ensuring that users, data, permissions, and settings for one tenant are completely isolated from others. Tenants enable SaaS platforms to serve multiple customers from a single application instance while maintaining security boundaries, customization capabilities, and billing independence. Each tenant can have its own branding, authentication rules, feature configurations, subscription plans, and user management. The entity supports hierarchical tenants (parent-child relationships), tenant lifecycle management (trial, active, suspended), and serves as the anchor point for all tenant-scoped data across B2B SaaS platforms, enterprise applications, and multi-organization systems.
Properties
| Property | Type | Mode | Description | Required |
|---|---|---|---|---|
| name | string | stored | Display name of the tenant Example: | Required |
| slug | string | stored | URL-friendly unique identifier for the tenant (used in subdomains, URLs, etc.) Example: | Required |
| organization | Organization | stored | Reference to the Organization entity representing the business entity behind this tenant (optional - some tenants may not have a formal organization) | Optional |
| status | string | stored | Current operational status of the tenant Values: Example: | Required |
| parentTenant | Tenant | stored | Parent tenant for hierarchical multi-tenancy (enables sub-tenants, franchises, departments) | Optional |
| type | string | stored | Type or tier of tenant Values: Example: | Optional |
| accessDecisionStrategy | AccessDecisionStrategy | stored | Strategy for combining voter decisions to make final access control decisions for this tenant (defaults to platform default if not specified) | Optional |
| metadata | json | stored | Additional tenant-specific metadata and custom fields | Optional |
| isActive | boolean | calculated | Whether this tenant is currently active and operational | Optional |
| isTrial | boolean | calculated | Whether this tenant is in trial status | Optional |
Examples
Example 1
{
"@type": "Tenant",
"name": "ACME Corporation",
"slug": "acme-corp",
"organization": {
"@type": "Organization",
"name": "ACME Corporation",
"legalName": "ACME Corporation Inc."
},
"status": "active",
"type": "enterprise"
}Example 2
{
"@type": "Tenant",
"name": "TechStart Inc",
"slug": "techstart",
"status": "trial",
"type": "business"
}Example 3
{
"@type": "Tenant",
"name": "ACME - Marketing Division",
"slug": "acme-marketing",
"parentTenant": {
"@type": "Tenant",
"slug": "acme-corp",
"name": "ACME Corporation"
},
"status": "active",
"type": "team",
"metadata": {
"division": "Marketing",
"region": "EMEA"
}
}Example 4
{
"@type": "Tenant",
"name": "John Doe Sandbox",
"slug": "john-sandbox",
"status": "active",
"type": "sandbox",
"metadata": {
"purpose": "development",
"expiresAfterDays": 30
}
}