ambiten / core/src / MultiTenantManager
Class: MultiTenantManager
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:35
MultiTenantManager is responsible for managing tenant configurations and MongoDB client connections in a multi-tenant application. It supports both lazy and immediate tenant registration, allowing for flexible connection management based on application needs.
Constructors
Constructor
new MultiTenantManager():
MultiTenantManager
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:42
Returns
MultiTenantManager
Methods
clearTenantConfigResolver()
staticclearTenantConfigResolver():void
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:174
Returns
void
clearTenants()
staticclearTenants():void
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:410
Clears all tenants from the registry.
Returns
void
getAllConnectedTenants()
staticgetAllConnectedTenants():string[]
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:336
Returns all tenant IDs with active MongoDB clients in the current Ambiten runtime.
Includes both statically registered and dynamically discovered tenants that are currently connected.
Returns
string[]
getAllTenants()
staticgetAllTenants():TenantConfig[]
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:354
Returns all tenants currently registered with this Ambiten runtime.
This includes:
- statically configured tenants
- manually registered tenants
- externally discovered tenants after they have been resolved
It does not represent every tenant that may exist in an external registry but has never been encountered by this runtime.
Returns
getClient()
staticgetClient(tenantId):Promise<MongoClient|null>
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:133
Retrieves the MongoClient instance for a specific tenant. If the tenant was registered lazily, connection is established on first access.
Parameters
tenantId
string
The tenant ID.
Returns
Promise<MongoClient | null>
The MongoClient or null if not registered.
getConnectedTenant()
staticgetConnectedTenant():string
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:321
Returns the first tenant with an active MongoDB client in the current Ambiten runtime.
This reflects runtime connection state only.
Returns
string
getStats()
staticgetStats():RegisteredTenantStatistics
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:384
Returns
getTenant()
staticgetTenant(tenantId):TenantConfig|undefined
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:275
Retrieves a tenant that is already registered in the current runtime.
This method performs a synchronous local registry lookup only. Dynamically discovered tenants are included once they have been resolved and registered by MultiTenantManager.
Use resolveTenant() when the tenant may need to be discovered through the configured TenantConfigResolver.
Parameters
tenantId
string
The tenant ID.
Returns
TenantConfig | undefined
The registered tenant configuration, if available.
getTenantDbName()
staticgetTenantDbName(tenantId):Promise<string|undefined>
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:293
Retrieves the database name for an already registered tenant.
This is a synchronous local-registry lookup.
Parameters
tenantId
string
The tenant ID.
Returns
Promise<string | undefined>
The configured database name, if available.
hasTenant()
statichasTenant(tenantId):boolean
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:49
Checks if a tenant is already registered.
Parameters
tenantId
string
The ID of the tenant to check.
Returns
boolean
true if the tenant is registered, false otherwise.
isEnabled()
staticisEnabled():boolean
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:362
Returns true if at least one tenant is registered.
Returns
boolean
registerLazyTenant()
staticregisterLazyTenant(tenantId,uri,options?):TenantConfig
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:61
Registers a tenant for lazy connection. Connection is established only when the tenant is accessed for the first time.
Parameters
tenantId
string
The tenant ID.
uri
string
The MongoDB URI.
options?
Omit<RegisterTenantOptions, "lazy" | "client"> = {}
Optional tenant registration settings.
Returns
registerTenant()
staticregisterTenant(tenantId,uri,options?):Promise<MongoClient>
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:93
Registers a tenant and establishes a connection immediately.
Parameters
tenantId
string
The tenant ID.
uri
string
The MongoDB URI.
options?
Omit<RegisterTenantOptions, "lazy"> = {}
Optional tenant registration settings.
Returns
Promise<MongoClient>
The connected MongoClient instance.
removeTenant()
staticremoveTenant(tenantId):boolean
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:376
Removes a tenant from the current runtime registry.
This does not remove the tenant from an external tenant source. If a TenantConfigResolver can still resolve the tenant, it may be discovered and registered again on a future request.
Parameters
tenantId
string
The tenant ID.
Returns
boolean
true when a registered tenant was removed.
resolveTenant()
staticresolveTenant(tenantId):Promise<TenantConfig|undefined>
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:188
Resolves a tenant from the current runtime registry or, when necessary, from the configured external TenantConfigResolver.
Dynamically resolved tenants are registered locally before being returned, making subsequent lookups local.
Parameters
tenantId
string
The tenant ID.
Returns
Promise<TenantConfig | undefined>
The resolved tenant configuration, if available.
resolveTenantDbName()
staticresolveTenantDbName(tenantId):Promise<string|undefined>
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:306
Resolves the tenant locally or externally and returns its configured database name.
Parameters
tenantId
string
The tenant ID.
Returns
Promise<string | undefined>
The resolved database name, if available.
setTenantConfigResolver()
staticsetTenantConfigResolver(resolver):void
Defined in: packages/core/src/tanancy/MultiTenantManager.ts:168
Parameters
resolver
Returns
void
