Skip to content

ambiten


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() ​

static clearTenantConfigResolver(): void

Defined in: packages/core/src/tanancy/MultiTenantManager.ts:174

Returns ​

void


clearTenants() ​

static clearTenants(): void

Defined in: packages/core/src/tanancy/MultiTenantManager.ts:410

Clears all tenants from the registry.

Returns ​

void


getAllConnectedTenants() ​

static getAllConnectedTenants(): 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() ​

static getAllTenants(): 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 ​

TenantConfig[]


getClient() ​

static getClient(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() ​

static getConnectedTenant(): 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() ​

static getStats(): RegisteredTenantStatistics

Defined in: packages/core/src/tanancy/MultiTenantManager.ts:384

Returns ​

RegisteredTenantStatistics


getTenant() ​

static getTenant(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() ​

static getTenantDbName(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() ​

static hasTenant(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() ​

static isEnabled(): boolean

Defined in: packages/core/src/tanancy/MultiTenantManager.ts:362

Returns true if at least one tenant is registered.

Returns ​

boolean


registerLazyTenant() ​

static registerLazyTenant(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 ​

TenantConfig


registerTenant() ​

static registerTenant(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() ​

static removeTenant(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() ​

static resolveTenant(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() ​

static resolveTenantDbName(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() ​

static setTenantConfigResolver(resolver): void

Defined in: packages/core/src/tanancy/MultiTenantManager.ts:168

Parameters ​

resolver ​

TenantConfigResolver

Returns ​

void

Context-aware execution infrastructure for multi-tenant systems.