Ajustes, servicios y tablas de base de datos de OpenPlatform
Los ajustes
OpenPlatform guarda su configuración en la tabla cl_config y la carga en el CONF de Total.js al arrancar y cada ocho horas (definitions/init.js). La pantalla de configuración lee y guarda estas claves (plugins/setup/schemas/settings.js):
| Clave | Significado |
|---|---|
name, icon, color | el nombre, el logo y el color de la plataforma |
url | la dirección pública de la plataforma (sin la / final). Cambiarla borra los enlaces de notificación y las sesiones de aplicación abiertas |
language | el idioma por defecto |
mail_smtp, mail_smtp_options, mail_from | el servidor SMTP, sus opciones (JSON) y el remitente; la pantalla de configuración puede probarlos |
$tms, secret_tms | publicar los eventos por TMS y el secreto de esa conexión |
allow_token, token | activar la API pública GET /users/ y su token |
newtab | abrir cada aplicación en una pestaña nueva |
sync, sync_token | aceptar el socket /sync/ de otras instancias, con su token |
El primer arranque (database.sql) también genera, dentro de cl_config, valores que la pantalla de configuración no edita: el id de la instalación, el secret de autenticación, el nombre de la cookie, la salt de las contraseñas, la saltchecksum de las sumas de comprobación y el secreto de la conexión TMS. Crea las claves con estos valores por defecto:
| Clave | Por defecto | Significado |
|---|---|---|
auth_cookie_expire | 1 month | cuánto vive la cookie de sesión |
auth_expire | 5 minutes | cuánto tiempo se mantiene en memoria el usuario con sesión antes de volver a leerlo |
auth_cookie_options | {"httponly":true,"security":"lax"} | las opciones de la cookie de sesión |
auth_strict | false | sesiones estrictas |
app_session_expire | 1 day | cuánto dura una sesión de aplicación |
cdn | https://cdn.componentator.com/ | la CDN de la interfaz |
language | eu | el idioma por defecto |
token, sync_token | generado | el token de la API de usuarios y del socket de sincronización (ambas funciones están desactivadas por defecto) |
La clave servicetoken, que el endpoint de subida de imágenes compara con su token de consulta, no la crea el script y la pantalla de configuración no la edita: existe solo si la añades tú mismo a cl_config.
El script también crea el grupo Admin y el primer usuario (info@totaljs.com, administrador, confirmado) que pertenece a él; consulta instalarlo.
Los servicios en segundo plano
Total.js ejecuta un servicio cada minuto. OpenPlatform lo usa (definitions/init.js) para:
- vaciar la caché en memoria de las verificaciones (cada 2 minutos);
- guardar las estadísticas diarias: usuarios en línea, el máximo y el número por dispositivo (cada 3 minutos);
- recargar la configuración desde la base de datos (cada 8 horas);
- borrar las sesiones de aplicación y de plataforma caducadas (cada 12 horas);
- enviar los resúmenes por correo de las notificaciones sin leer (cada 11 minutos, cuando el correo está configurado).
La base de datos
Todo vive en el esquema op de PostgreSQL:
| Tabla | Qué contiene |
|---|---|
cl_config | la configuración (clave, valor, tipo) |
tbl_user | los usuarios: perfil, hash de la contraseña, banderas, contadores y los permisos en caché |
tbl_group | los grupos |
tbl_user_group | qué usuario pertenece a qué grupo |
tbl_session | las sesiones de los usuarios en el portal (dispositivo, dirección, caducidad) |
tbl_app | las aplicaciones: dirección, secretos, banderas y direcciones permitidas |
tbl_app_permission | los permisos que declara cada aplicación |
tbl_group_permission | qué permisos (o solo qué aplicaciones) concede cada grupo |
tbl_app_session | las sesiones de lanzamiento de las aplicaciones y sus tokens derivados |
tbl_user_app | por usuario y aplicación: los enlaces de notificación y si aceptan notificaciones |
tbl_notification | las notificaciones |
tbl_visitor | las estadísticas diarias de visitantes |
tbl_feedback | los comentarios que los usuarios envían desde el portal |
Los archivos con fecha database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql y database-2024-10-30.sql del repositorio son los cambios del esquema a lo largo del tiempo, y database.sql es el script completo que ejecuta el primer arranque. Haz copia de seguridad de este esquema como de cualquier otra base de datos PostgreSQL.