Skip to content

Documentation / @tenancy-node/core / TenancyConfig

Interface: TenancyConfig ​

Defined in: core/src/config.ts:42

Properties ​

billing? ​

optional billing?: object

Defined in: core/src/config.ts:97

Cobros a los tenants: suscripción, facturas y pagos (tenancy.billing).

currency? ​

optional currency?: string

Moneda si el plan no tiene precio. Por defecto USD.

dueDays? ​

optional dueDays?: number

Días para pagar una factura. Por defecto 7.

invoiceDaysBefore? ​

optional invoiceDaysBefore?: number

Cuántos días antes de que venza el período se emite la factura siguiente. Por defecto 7.

providers? ​

optional providers?: readonly PaymentProvider[]

Pasarelas en línea (Stripe, QR...). El pago manual siempre está.

repository? ​

optional repository?: BillingRepository

Dónde se guardan. Por defecto, la base central (con @tenancy-node/db) o memoria.

suspendAfterDays? ​

optional suspendAfterDays?: number | null

Suspender al tenant N días después del vencimiento sin pagar. Por defecto null (nunca).


bootstrappers? ​

optional bootstrappers?: readonly Bootstrapper<unknown>[]

Defined in: core/src/config.ts:56

Bootstrappers adicionales (base de datos, storage...).


cache? ​

optional cache?: CacheStore

Defined in: core/src/config.ts:52

Caché cruda. Por defecto, en memoria.


centralDomains? ​

optional centralDomains?: readonly string[]

Defined in: core/src/config.ts:44

Dominios de la app central ('tuapp.com'). Nunca resuelven a un tenant.


clock? ​

optional clock?: Clock

Defined in: core/src/config.ts:61


defaultPlan? ​

optional defaultPlan?: string

Defined in: core/src/config.ts:82

Plan de los tenants que no tienen uno (plan: null).


domains? ​

optional domains?: DomainRepository

Defined in: core/src/config.ts:50

Repositorio de dominios. Por defecto, en memoria.


errorTracker? ​

optional errorTracker?: ErrorTracker | MemoryErrorTrackerOptions

Defined in: core/src/config.ts:60

Registro de errores por tenant. Por defecto en memoria (o sus opciones).


events? ​

optional events?: object

Defined in: core/src/config.ts:142

source? ​

optional source?: string

source de los CloudEvents. Por defecto tenancy-node://<primer dominio central>.

transports? ​

optional transports?: readonly EventTransport[]

Transportes para tenancy.events.forward (webhook, RabbitMQ, Redis Streams...).


features? ​

optional features?: Readonly<Record<string, string | FeatureDefinition>>

Defined in: core/src/config.ts:75

Catálogo de módulos de tu app ({ reportes: 'Reportes y PDF' }). Si falta, sale de los módulos que nombran los planes.


http? ​

optional http?: HttpRoutesOptions

Defined in: core/src/config.ts:139

Rutas HTTP opcionales, todas apagadas por defecto.


idGenerator? ​

optional idGenerator?: IdGenerator

Defined in: core/src/config.ts:62


invalidation? ​

optional invalidation?: InvalidationBus

Defined in: core/src/config.ts:131

Con varias instancias de la app: avisa a las demás cuando cambia un tenant o dominio, para que borren su caché de búsqueda al instante. redisInvalidation() de @tenancy-node/cache-redis.


logger? ​

optional logger?: Logger

Defined in: core/src/config.ts:58

Compatible con pino. Por defecto ConsoleLogger en nivel info.


lookupCache? ​

optional lookupCache?: false | LookupCacheOptions

Defined in: core/src/config.ts:126

Caché de búsqueda de tenants y dominios. false la desactiva.


notifications? ​

optional notifications?: object

Defined in: core/src/config.ts:112

Avisos de la plataforma a sus tenants (tenancy.notifications).

cacheTtlMs? ​

optional cacheTtlMs?: number

Cuánto se cachean los avisos vigentes en este proceso. Por defecto 15 s.

channels? ​

optional channels?: readonly NotificationChannel[]

Canales de entrega fuera de la app: firebase() de @tenancy-node/notify-firebase, o el tuyo.

delivery? ​

optional delivery?: "background" | "queue"

Cómo se entrega por los canales: 'background' (por defecto) en este proceso sin hacer esperar a send; 'queue' como trabajo de la cola (con reintentos; necesita un worker).

repository? ​

optional repository?: NotificationRepository

Dónde se guardan. Por defecto, la base central (con @tenancy-node/db) o memoria.


plans? ​

optional plans?: Readonly<Record<string, PlanDefinition>>

Defined in: core/src/config.ts:80

Planes con sus módulos, límites y precio. De aquí salen tenancy.features, requireFeature, /tenancy/me, el panel y GET /tenancy/plans. Sin planes, todo tenant tiene todos los módulos.


planSettings? ​

optional planSettings?: object

Defined in: core/src/config.ts:84

Planes editables desde el panel: dónde se guardan los cambios y cada cuánto se recargan.

refreshMs? ​

optional refreshMs?: number

Recarga de respaldo (además del aviso entre instancias). Por defecto 60 s; 0 la apaga.

repository? ​

optional repository?: PlanSettingsRepository

Por defecto, la base central (con @tenancy-node/db) o memoria.


platform? ​

optional platform?: object

Defined in: core/src/config.ts:91

Marca y contacto de la plataforma (tenancy.platform), editables desde el panel.

defaults? ​

optional defaults?: PlatformPatch

Valores mientras no se guarden desde el panel (nombre, color, contacto...).

repository? ​

optional repository?: PlatformSettingsRepository


plugins? ​

optional plugins?: readonly TenancyPlugin<object>[]

Defined in: core/src/config.ts:149

Plugins: base de datos (@tenancy-node/db), etc.


provisioning? ​

optional provisioning?: ProvisioningPipeline

Defined in: core/src/config.ts:54

Crea los recursos físicos del tenant. Por defecto no hace nada.


publicFields? ​

optional publicFields?: readonly string[]

Defined in: core/src/config.ts:141

Campos que /tenancy/me puede mostrar: name, plan, status o llaves de data. Por defecto ['name'].


queue? ​

optional queue?: QueueDriver

Defined in: core/src/config.ts:137

Cola de trabajos. Por defecto, en memoria (se pierde al reiniciar).


resolver? ​

optional resolver?: TenantResolver | ResolverName

Defined in: core/src/config.ts:46

Cómo se identifica el tenant. Por defecto: dominio y luego subdominio.


storage? ​

optional storage?: StorageDriver

Defined in: core/src/config.ts:135

Almacenamiento de archivos. Por defecto, disco local en ./storage.


telemetry? ​

optional telemetry?: Telemetry | readonly Telemetry[]

Defined in: core/src/config.ts:133

Trazas y métricas: openTelemetry() de @tenancy-node/otel, prometheus() de @tenancy-node/prometheus.


tenants? ​

optional tenants?: TenantRepository

Defined in: core/src/config.ts:48

Repositorio de tenants. Por defecto, en memoria.


theme? ​

optional theme?: object

Defined in: core/src/config.ts:63

defaults? ​

optional defaults?: Partial<ThemeProps>

fonts? ​

optional fonts?: readonly FontDefinition[]

Fuentes que los tenants pueden elegir. Con lista, theme.font debe ser una de ellas y /tenancy/theme.css ya trae su carga (@import). Sin lista, cualquier nombre válido.

Publicado bajo la licencia MIT.