# Multi-Tenant Feature Configuration
#
# This configuration controls multi-tenant behavior, allowing the server to serve
# multiple isolated tenants from the same database.
# This file is loaded ONLY if [server.features.multi_tenant].enabled = true in the main config.
# (The enabled flag is set in the main lifecycle-api-config.toml file)

[multi_tenant]

# Tenant identification method
# "header": Read tenant_id from HTTP header (e.g., X-Tenant-ID)
# "path": Read tenant_id from URL path (e.g., /api/v1/tenant/{tenant_id}/...)
# "subdomain": Read tenant_id from subdomain (e.g., tenant1.example.com)
tenant_id_source = "header"

# Header name for tenant identification (if tenant_id_source = "header")
tenant_header_name = "X-Tenant-ID"

# Allow requests without tenant_id
# true: Requests without tenant_id are allowed (useful for public endpoints)
# false: All requests must include valid tenant_id
require_tenant_id = true

# Isolation level for multi-tenant data
# "row": Row-level isolation (each row tagged with tenant_id)
# "schema": Schema-level isolation (each tenant has separate schema)
# "database": Database-level isolation (each tenant has separate database)
isolation_level = "row"

# Enable tenant-specific database schemas
# When true, each tenant can have custom database schema modifications
allow_schema_customization = false

# Maximum number of tenants the system can handle
max_tenants = 1000

# Log tenant context in all logs
include_tenant_in_logs = true
