Plataforma técnica · Sevastopol
Tenants en Sevastopol
Islands Command Multi-tenant
Propósito
Section titled “Propósito”TenantsViewIsland mantiene el padrón de empresas clientes de la plataforma. Es la única entrada para alta, edición, suspensión y provisión de la base postgres por tenant.
El ciclo del tenant nuevo es de dos pasos:
POST /api/tenantcrea el registro encommand.tenantscon RUT, nombre comercial, contacto y régimen tributario.POST /api/tenant-db/createprovisiona la base postgres del tenant con el template.
La island encadena ambos pasos en el modal de alta, pero el operador puede ejecutarlos por separado si la provisión falla.
Decisiones de UX
Section titled “Decisiones de UX”| Decisión | Motivo |
|---|---|
| RUT validado en cliente | validateRut aplica módulo 11 antes del POST — evita rebote del backend para errores triviales. |
| RUT formateado al guardar | formatRut produce XX.XXX.XXX-K; el backend recibe normalizado sin importar cómo lo tipee el operador. |
| Régimen tributario en select cerrado | 6 opciones (14D, 14A, ProPyme, General, Renta Presunta, Simplificado). Texto libre permitiría regímenes inexistentes que el SII rechazaría. |
| Nombre de DB derivado del nombre comercial | toDbName(value) saca minúsculas + guiones bajos para producir un identificador postgres válido. Si el operador no provee, la island sugiere. |
Tabs de status (all / active / inactive) | Default all. Cambiar a active es el filtro más usual al revisar quién factura. |
| Métrica de cuentas/usuarios por tenant | Se trae con el listado y se muestra como InlineMetricPill por fila — detecta tenants vacíos o sobredimensionados. |
| Acciones por estado | Editar siempre disponible; suspender/reactivar se intercambian según tenant.status. La eliminación destructiva se evita — se suspende. |
Datos visibles
Section titled “Datos visibles”| Grupo | Campos esperados |
|---|---|
| Identificación | RUT (validado), nombre comercial, razón social. |
| Régimen | Tax regime (14D/14A/ProPyme/General/Renta Presunta/Simplificado). |
| Contacto | Email, teléfono. |
| Infraestructura | Nombre de la DB, status (activo/inactivo). |
| Métricas | Cuentas, usuarios, sesiones activas. |
Endpoints
Section titled “Endpoints”| Método + ruta | Uso |
|---|---|
GET /api/tenant | Listado completo. |
GET /api/tenant?id= | Carga puntual para editar. |
POST /api/tenant | Alta del registro. |
PUT /api/tenant?id= | Edición. |
DELETE /api/tenant?id= | Eliminación (rara — se prefiere suspender). |
POST /api/tenant-db/create | Provisión de la base postgres del tenant. |
Backend de referencia
Section titled “Backend de referencia”TenantService — CRUD del registro + orquestación de la creación de la base via pg_dump del template. Restringido a SUPER_ADMIN.