ForgeOpenPlatform
es

OpenPlatform

Ajustes, servicios y tablas de base de datos de OpenPlatform

OpenPlatform · openplatform@5 openplatformsettingsdatabaseservices

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):

ClaveSignificado
name, icon, colorel nombre, el logo y el color de la plataforma
urlla dirección pública de la plataforma (sin la / final). Cambiarla borra los enlaces de notificación y las sesiones de aplicación abiertas
languageel idioma por defecto
mail_smtp, mail_smtp_options, mail_fromel servidor SMTP, sus opciones (JSON) y el remitente; la pantalla de configuración puede probarlos
$tms, secret_tmspublicar los eventos por TMS y el secreto de esa conexión
allow_token, tokenactivar la API pública GET /users/ y su token
newtababrir cada aplicación en una pestaña nueva
sync, sync_tokenaceptar 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:

ClavePor defectoSignificado
auth_cookie_expire1 monthcuánto vive la cookie de sesión
auth_expire5 minutescuá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_strictfalsesesiones estrictas
app_session_expire1 daycuánto dura una sesión de aplicación
cdnhttps://cdn.componentator.com/la CDN de la interfaz
languageeuel idioma por defecto
token, sync_tokengeneradoel 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:

TablaQué contiene
cl_configla configuración (clave, valor, tipo)
tbl_userlos usuarios: perfil, hash de la contraseña, banderas, contadores y los permisos en caché
tbl_grouplos grupos
tbl_user_groupqué usuario pertenece a qué grupo
tbl_sessionlas sesiones de los usuarios en el portal (dispositivo, dirección, caducidad)
tbl_applas aplicaciones: dirección, secretos, banderas y direcciones permitidas
tbl_app_permissionlos permisos que declara cada aplicación
tbl_group_permissionqué permisos (o solo qué aplicaciones) concede cada grupo
tbl_app_sessionlas sesiones de lanzamiento de las aplicaciones y sus tokens derivados
tbl_user_apppor usuario y aplicación: los enlaces de notificación y si aceptan notificaciones
tbl_notificationlas notificaciones
tbl_visitorlas estadísticas diarias de visitantes
tbl_feedbacklos 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.