Documentation / @tenancy-node/core / TenancyConfig
Interface: TenancyConfig
Defined in: core/src/config.ts:42
Properties
billing?
optionalbilling?:object
Defined in: core/src/config.ts:97
Cobros a los tenants: suscripción, facturas y pagos (tenancy.billing).
currency?
optionalcurrency?:string
Moneda si el plan no tiene precio. Por defecto USD.
dueDays?
optionaldueDays?:number
Días para pagar una factura. Por defecto 7.
invoiceDaysBefore?
optionalinvoiceDaysBefore?:number
Cuántos días antes de que venza el período se emite la factura siguiente. Por defecto 7.
providers?
optionalproviders?: readonlyPaymentProvider[]
Pasarelas en línea (Stripe, QR...). El pago manual siempre está.
repository?
optionalrepository?:BillingRepository
Dónde se guardan. Por defecto, la base central (con @tenancy-node/db) o memoria.
suspendAfterDays?
optionalsuspendAfterDays?:number|null
Suspender al tenant N días después del vencimiento sin pagar. Por defecto null (nunca).
bootstrappers?
optionalbootstrappers?: readonlyBootstrapper<unknown>[]
Defined in: core/src/config.ts:56
Bootstrappers adicionales (base de datos, storage...).
cache?
optionalcache?:CacheStore
Defined in: core/src/config.ts:52
Caché cruda. Por defecto, en memoria.
centralDomains?
optionalcentralDomains?: readonlystring[]
Defined in: core/src/config.ts:44
Dominios de la app central ('tuapp.com'). Nunca resuelven a un tenant.
clock?
optionalclock?:Clock
Defined in: core/src/config.ts:61
defaultPlan?
optionaldefaultPlan?:string
Defined in: core/src/config.ts:82
Plan de los tenants que no tienen uno (plan: null).
domains?
optionaldomains?:DomainRepository
Defined in: core/src/config.ts:50
Repositorio de dominios. Por defecto, en memoria.
errorTracker?
optionalerrorTracker?:ErrorTracker|MemoryErrorTrackerOptions
Defined in: core/src/config.ts:60
Registro de errores por tenant. Por defecto en memoria (o sus opciones).
events?
optionalevents?:object
Defined in: core/src/config.ts:142
source?
optionalsource?:string
source de los CloudEvents. Por defecto tenancy-node://<primer dominio central>.
transports?
optionaltransports?: readonlyEventTransport[]
Transportes para tenancy.events.forward (webhook, RabbitMQ, Redis Streams...).
features?
optionalfeatures?: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?
optionalhttp?:HttpRoutesOptions
Defined in: core/src/config.ts:139
Rutas HTTP opcionales, todas apagadas por defecto.
idGenerator?
optionalidGenerator?:IdGenerator
Defined in: core/src/config.ts:62
invalidation?
optionalinvalidation?: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?
optionallogger?:Logger
Defined in: core/src/config.ts:58
Compatible con pino. Por defecto ConsoleLogger en nivel info.
lookupCache?
optionallookupCache?:false|LookupCacheOptions
Defined in: core/src/config.ts:126
Caché de búsqueda de tenants y dominios. false la desactiva.
notifications?
optionalnotifications?:object
Defined in: core/src/config.ts:112
Avisos de la plataforma a sus tenants (tenancy.notifications).
cacheTtlMs?
optionalcacheTtlMs?:number
Cuánto se cachean los avisos vigentes en este proceso. Por defecto 15 s.
channels?
optionalchannels?: readonlyNotificationChannel[]
Canales de entrega fuera de la app: firebase() de @tenancy-node/notify-firebase, o el tuyo.
delivery?
optionaldelivery?:"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?
optionalrepository?:NotificationRepository
Dónde se guardan. Por defecto, la base central (con @tenancy-node/db) o memoria.
plans?
optionalplans?: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?
optionalplanSettings?: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?
optionalrefreshMs?:number
Recarga de respaldo (además del aviso entre instancias). Por defecto 60 s; 0 la apaga.
repository?
optionalrepository?:PlanSettingsRepository
Por defecto, la base central (con @tenancy-node/db) o memoria.
platform?
optionalplatform?:object
Defined in: core/src/config.ts:91
Marca y contacto de la plataforma (tenancy.platform), editables desde el panel.
defaults?
optionaldefaults?:PlatformPatch
Valores mientras no se guarden desde el panel (nombre, color, contacto...).
repository?
optionalrepository?:PlatformSettingsRepository
plugins?
optionalplugins?: readonlyTenancyPlugin<object>[]
Defined in: core/src/config.ts:149
Plugins: base de datos (@tenancy-node/db), etc.
provisioning?
optionalprovisioning?:ProvisioningPipeline
Defined in: core/src/config.ts:54
Crea los recursos físicos del tenant. Por defecto no hace nada.
publicFields?
optionalpublicFields?: readonlystring[]
Defined in: core/src/config.ts:141
Campos que /tenancy/me puede mostrar: name, plan, status o llaves de data. Por defecto ['name'].
queue?
optionalqueue?:QueueDriver
Defined in: core/src/config.ts:137
Cola de trabajos. Por defecto, en memoria (se pierde al reiniciar).
resolver?
optionalresolver?:TenantResolver|ResolverName
Defined in: core/src/config.ts:46
Cómo se identifica el tenant. Por defecto: dominio y luego subdominio.
storage?
optionalstorage?:StorageDriver
Defined in: core/src/config.ts:135
Almacenamiento de archivos. Por defecto, disco local en ./storage.
telemetry?
Defined in: core/src/config.ts:133
Trazas y métricas: openTelemetry() de @tenancy-node/otel, prometheus() de @tenancy-node/prometheus.
tenants?
optionaltenants?:TenantRepository
Defined in: core/src/config.ts:48
Repositorio de tenants. Por defecto, en memoria.
theme?
optionaltheme?:object
Defined in: core/src/config.ts:63
defaults?
optionaldefaults?:Partial<ThemeProps>
fonts?
optionalfonts?: readonlyFontDefinition[]
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.