Tenants y ambientes
¿Qué es un tenant?
Sección titulada «¿Qué es un tenant?»TwiinsHRM es multi-tenant: cada empresa cliente es un tenant con su propio alias (por ejemplo twiins) y su propia base de datos. El alias identifica al tenant en cada petición mediante el header x-tenant-id.
En el portal web el tenant se deriva del subdominio ({alias}.twiinshrm.com). En una app móvil no hay subdominio, así que el alias debe configurarse o seleccionarse antes del login (por ejemplo, pidiendo el código de empresa en la primera pantalla) y persistirse localmente.
URLs base por ambiente
Sección titulada «URLs base por ambiente»| Ambiente | URL base |
|---|---|
| Producción | https://api-v4.twiinshrm.com/prod |
| Staging / pruebas | https://api-v4.twiinshrm.com/dev |
| Local (desarrollo del backend) | http://localhost:3000 |
Los paths de este manual se anexan a la URL base. Ejemplo en producción:
POST https://api-v4.twiinshrm.com/prod/auth/loginGET https://api-v4.twiinshrm.com/prod/v2/muro/publicationsBootstrap del tenant (antes del login)
Sección titulada «Bootstrap del tenant (antes del login)»Estos endpoints son públicos (solo requieren x-tenant-id) y permiten configurar la app antes de autenticar:
sequenceDiagram
participant App as App móvil
participant API as th-core-api
App->>API: GET /tenancy (x-tenant-id)
API-->>App: Datos del tenant (valida que el alias existe)
App->>API: GET /tenancy/parameters/login (x-tenant-id)
API-->>App: Parámetros de login (SSO, branding)
App->>App: Decidir pantalla: credenciales o SSO
GET /tenancy
Sección titulada «GET /tenancy»Información básica del tenant. Úsalo para validar que el alias ingresado por el usuario existe antes de continuar.
GET /tenancy/parameters/login
Sección titulada «GET /tenancy/parameters/login»Parámetros necesarios antes de autenticar. Los más relevantes para mobile:
| Parámetro | Valores | Uso en la app |
|---|---|---|
Login_SSO |
'S' / 'N' |
Si es 'S', el login es por Keycloak (SSO + PKCE); si no, formulario de credenciales. |
Skin_Sistema |
color hex | Color primario de la marca del tenant — úsalo para tematizar la app. |
GET /tenancy/parameters
Sección titulada «GET /tenancy/parameters»Catálogo completo de parámetros del tenant (requiere contexto de tenant). Aquí viven los flags de configuración que condicionan funcionalidades; cada módulo documenta los suyos.
GET /me/tenancy/products
Sección titulada «GET /me/tenancy/products»Autenticado. Devuelve los productos/módulos habilitados para el usuario en ese tenant. Úsalo después del login para decidir qué secciones mostrar en el menú de la app: si un módulo no está habilitado, no debe aparecer.
Resumen del arranque de la app
Sección titulada «Resumen del arranque de la app»- Pedir/recuperar el alias del tenant →
GET /tenancypara validarlo. GET /tenancy/parameters/login→ decidir login por credenciales o SSO, y aplicar branding.- Autenticar (ver Autenticación).
GET /auth/session+GET /me/tenancy/products→ construir el home y el menú según el usuario.