Plataforma técnica · Arquitectura
Mother Database
Arquitectura Mother PostgreSQL
Mother es la capa de persistencia del ecosistema: una instancia de PostgreSQL 16 que aloja las bases compartidas del sistema y una base aislada por cada tenant. La visión integral de cómo encaja con Orchestrator, Sevastopol y Nostromo vive en Arquitectura del Sistema.
Topología multi-tenant
Section titled “Topología multi-tenant”Una sola instancia de PostgreSQL alberga tres tipos de bases:
| Base | Rol |
|---|---|
nostromo_common | Parámetros compartidos: monedas, UF/UTM, AFPs, ISAPREs, tramos de impuesto, topes imponibles. |
nostromo_command | Control central: autenticación, sesiones, RBAC, registro de tenants y configuración por tenant. |
tenant_<empresa> | Una base por empresa, clonada desde accounting_template. Aislamiento físico de datos contables. |
graph TB
subgraph Mother["Mother — PostgreSQL 16"]
NC["nostromo_common<br/>(parámetros)"]
CMD["nostromo_command<br/>(auth + tenants)"]
T1["tenant_empresa_1"]
T2["tenant_empresa_2"]
TN["tenant_empresa_n"]
end
NC -.->|parámetros| T1
NC -.->|parámetros| T2
NC -.->|parámetros| TN
CMD -.->|auth + config| T1
CMD -.->|auth + config| T2
CMD -.->|auth + config| TN Schemas
Section titled “Schemas”Una sola base, schema parametros. Cargada por los loaders Python de Nostromo.
| Tabla | Contenido |
|---|---|
monedas | Tipos de cambio (USD, EUR, UF, UTM) desde Banco Central |
afps | Administradoras de fondos de pensiones con tasas vigentes |
isapres | Instituciones de salud y planes |
tramos_impuesto | Tramos del impuesto único de segunda categoría |
topes_imponibles | Topes para cotizaciones previsionales |
gratificacion | Parámetros de gratificación legal |
Funciones auxiliares: cálculo de UF a fecha, conversión de monedas, interpolación de tasas. Vista consolidada de parámetros vigentes por período.
Tres schemas: auth, command, monitoring.
auth — usuarios, sesiones y tokens:
| Tabla | Contenido |
|---|---|
users | Usuarios del sistema con hash SCRAM-SHA-256 |
user_sessions | Sesiones activas con JWT y expiración |
user_roles | Roles asignados por tenant |
refresh_tokens | Tokens de renovación |
command — registro y configuración de tenants:
| Tabla | Contenido |
|---|---|
tenants | Empresas registradas con RUT y metadata |
tenant_databases | Mapping tenant → base de datos |
tenant_config | Configuración específica por tenant |
monitoring — métricas operacionales y auditoría.
Cada tenant se crea clonando accounting_template. Contiene el schema accounting con la contabilidad completa de la empresa (libros, asientos, plan de cuentas, conciliaciones).
El detalle granular de tablas y vistas del schema accounting vive fuera de este sitio, en Nostromo/docs/ y diagramas .mmd del repositorio.
Características de PostgreSQL en uso
Section titled “Características de PostgreSQL en uso”- SCRAM-SHA-256 para autenticación de usuarios y sesiones.
- Schemas + databases para el aislamiento multi-tenant (no Row-Level Security).
- CTEs y window functions en queries de reportes financieros.
- JSONB para configuraciones dinámicas por tenant.
wal_level = replicaya configurado: la replicación se habilita sin reiniciar.