Documentation / @tenancy-node/core / Tenancy
Class: Tenancy
Defined in: core/src/tenancy.ts:339
Facade principal. Se crea con createTenancy(config).
const tenancy = createTenancy({ centralDomains: ['tuapp.com'] });
await tenancy.tenants.create({ id: 'bolivar', domain: 'bolivar.tuapp.com' });
await tenancy.run('bolivar', () => tenancy.currentId()); // 'bolivar'Constructors
Constructor
new Tenancy(
config?):Tenancy
Defined in: core/src/tenancy.ts:383
Parameters
config?
TenancyConfig = {}
Returns
Tenancy
Properties
billing
readonlybilling:BillingApi
Defined in: core/src/tenancy.ts:351
Cobros a los tenants: suscripción, facturas, pagos y pasarelas.
centralDomains
readonlycentralDomains: readonlystring[]
Defined in: core/src/tenancy.ts:357
domains
readonlydomains:object
Defined in: core/src/tenancy.ts:341
add
add: (
ref,domain,options?) =>Promise<Domain>
Parameters
ref
domain
string
options?
primary?
boolean
Returns
Promise<Domain>
list
list: (
ref) =>Promise<Domain[]>
Parameters
ref
Returns
Promise<Domain[]>
remove
remove: (
domain) =>Promise<void>
Parameters
domain
string
Returns
Promise<void>
setPrimary
setPrimary: (
domain) =>Promise<Domain>
Parameters
domain
string
Returns
Promise<Domain>
events
readonlyevents:EventsApi
Defined in: core/src/tenancy.ts:343
features
readonlyfeatures:FeaturesApi
Defined in: core/src/tenancy.ts:346
http
readonlyhttp:TenancyHttpRoutes
Defined in: core/src/tenancy.ts:356
Rutas HTTP opcionales (/tenancy/me, theme.css, assets, health). Las usan los adaptadores.
jobs
readonlyjobs:JobsApi
Defined in: core/src/tenancy.ts:345
notifications
readonlynotifications:NotificationsApi
Defined in: core/src/tenancy.ts:349
Avisos de la plataforma a sus tenants, con canales de entrega (Firebase...).
observability
readonlyobservability:ObservabilityApi
Defined in: core/src/tenancy.ts:344
plans
readonlyplans:PlansApi
Defined in: core/src/tenancy.ts:347
platform
readonlyplatform:PlatformApi
Defined in: core/src/tenancy.ts:353
Marca y contacto de la plataforma (dominio central), editables desde el panel.
tenants
readonlytenants:object
Defined in: core/src/tenancy.ts:340
activate
activate: (
ref) =>Promise<Tenant>
Parameters
ref
Returns
Promise<Tenant>
create
create: (
input) =>Promise<Tenant>
Parameters
input
Returns
Promise<Tenant>
delete
delete: (
ref) =>Promise<void>
Parameters
ref
Returns
Promise<void>
find
find: (
ref) =>Promise<Tenant|undefined>
Parameters
ref
Returns
Promise<Tenant | undefined>
findOrFail
findOrFail: (
ref) =>Promise<Tenant>
Parameters
ref
Returns
Promise<Tenant>
invalidate
invalidate: (
ref) =>void
Olvida el tenant en la caché de búsqueda de esta instancia y, con un bus de invalidación, en las demás. Úsalo si cambiaste el tenant por fuera de tenancy.tenants.
Parameters
ref
Returns
void
list
Parameters
query?
Returns
maintenance
maintenance: (
ref,message?) =>Promise<Tenant>
Parameters
ref
message?
string | null
Returns
Promise<Tenant>
retryProvisioning
retryProvisioning: (
ref) =>Promise<Tenant>
Parameters
ref
Returns
Promise<Tenant>
suspend
suspend: (
ref) =>Promise<Tenant>
Parameters
ref
Returns
Promise<Tenant>
update
update: (
ref,changes) =>Promise<Tenant>
Parameters
ref
changes
Returns
Promise<Tenant>
theme
readonlytheme:ThemeApi
Defined in: core/src/tenancy.ts:342
Methods
cache()
cache():
TenantCache
Defined in: core/src/tenancy.ts:995
Caché aislada del contexto actual (prefijo tenant:{id}:).
Returns
central()
central<
T>(fn):Promise<T>
Defined in: core/src/tenancy.ts:954
Ejecuta fn en el contexto central aunque se esté dentro de un tenant.
Type Parameters
T
T
Parameters
fn
() => T | Promise<T>
Returns
Promise<T>
close()
close():
Promise<void>
Defined in: core/src/tenancy.ts:1212
Espera los eventos pendientes y libera los recursos del contexto raíz.
Returns
Promise<void>
current()
current():
Tenant|undefined
Defined in: core/src/tenancy.ts:927
Tenant del contexto actual, o undefined en el contexto central.
Returns
Tenant | undefined
currentId()
currentId():
string|undefined
Defined in: core/src/tenancy.ts:938
Returns
string | undefined
currentOrFail()
currentOrFail():
Tenant
Defined in: core/src/tenancy.ts:932
Tenant del contexto actual; lanza TenantNotIdentifiedError si no hay.
Returns
health()
health():
Promise<HealthReport>
Defined in: core/src/tenancy.ts:1049
Estado de la base central, la caché, la cola y el almacenamiento (cada chequeo con límite de 3 s).
Returns
Promise<HealthReport>
isCentral()
isCentral():
boolean
Defined in: core/src/tenancy.ts:943
true fuera de cualquier tenant (dominio central, admin, scripts).
Returns
boolean
logRequest()
logRequest(
context):void
Defined in: core/src/tenancy.ts:1190
Escribe la línea de log de una petición terminada (nivel según el código HTTP).
Parameters
context
RequestLogContext & object
Returns
void
openRequestScope()
openRequestScope(
request,options?):Promise<TenantScope>
Defined in: core/src/tenancy.ts:1160
Resuelve el tenant de una petición y abre su contexto. Lo usan los adaptadores HTTP. Con onUnidentified: 'error' (por defecto) una petición sin tenant lanza TenantNotIdentifiedError; con 'central' se atiende en el contexto central.
Parameters
request
options?
onUnidentified?
"error" | "central"
Returns
Promise<TenantScope>
openScope()
openScope(
tenant):Promise<TenantScope>
Defined in: core/src/tenancy.ts:1140
Abre un contexto para un tenant (o null = central). Hay que cerrarlo con scope.close(). Lo usan los adaptadores HTTP; en tu código normalmente basta con run().
Parameters
tenant
Tenant | null
Returns
Promise<TenantScope>
reportRequestError()
reportRequestError(
error,context):TrackedError
Defined in: core/src/tenancy.ts:1185
Registra un error de una petición HTTP con su contexto. Lo usan los adaptadores.
Parameters
error
unknown
context
Returns
resolve()
resolve(
request):Promise<Resolution>
Defined in: core/src/tenancy.ts:1124
Identifica el tenant de una petición. Los errores de estado (suspendido, mantenimiento) se lanzan.
Parameters
request
Returns
Promise<Resolution>
resource()
resource<
T>(name):T
Defined in: core/src/tenancy.ts:1117
Recurso de un bootstrapper para el contexto actual (lo crea la primera vez).
Type Parameters
T
T
Parameters
name
string
Returns
T
run()
run<
T>(tenant,fn):Promise<T>
Defined in: core/src/tenancy.ts:948
Ejecuta fn en el contexto de un tenant. Al salir, el contexto anterior vuelve solo.
Type Parameters
T
T
Parameters
tenant
fn
() => T | Promise<T>
Returns
Promise<T>
runForEach()
runForEach(
fn,options?):Promise<RunForEachResult>
Defined in: core/src/tenancy.ts:959
Recorre tenants (página por página) con concurrencia limitada.
Parameters
fn
(tenant) => unknown
options?
RunForEachOptions = {}
Returns
Promise<RunForEachResult>
storage()
storage():
TenantStorage
Defined in: core/src/tenancy.ts:1000
Archivos aislados del contexto actual (prefijo {id}/).
Returns
worker()
worker(
options?):Promise<QueueWorker>
Defined in: core/src/tenancy.ts:1010
Procesa trabajos de la cola: cada uno corre en el contexto de su tenant. Cada intento queda en el log (operation: queue.job); un trabajo que agota sus intentos se registra como error.
Parameters
options?
WorkerOptions = {}
Returns
Promise<QueueWorker>