ForgeOpenPlatform
it

OpenPlatform

Impostazioni, servizi e tabelle del database di OpenPlatform

OpenPlatform · openplatform@5 openplatformsettingsdatabaseservices

Le impostazioni

OpenPlatform conserva la sua configurazione nella tabella cl_config e la carica nel CONF di Total.js all’avvio e ogni otto ore (definitions/init.js). La schermata di configurazione legge e salva queste chiavi (plugins/setup/schemas/settings.js):

ChiaveSignificato
name, icon, coloril nome, il logo e il colore della piattaforma
urll’indirizzo pubblico della piattaforma (senza la / finale). Cambiarlo svuota i link delle notifiche e le sessioni di applicazione aperte
languagela lingua predefinita
mail_smtp, mail_smtp_options, mail_fromil server SMTP, le sue opzioni (JSON) e il mittente; la schermata di configurazione può testarli
$tms, secret_tmspubblicare gli eventi tramite TMS, e il segreto di quella connessione
allow_token, tokenabilitare l’API pubblica GET /users/ e il suo token
newtabaprire ogni applicazione in una nuova scheda
sync, sync_tokenaccettare il socket /sync/ di altre istanze, con il suo token

Il primo avvio (database.sql) genera anche, dentro cl_config, valori che la schermata di configurazione non modifica: l’id dell’installazione, il secret di autenticazione, il nome del cookie, il salt delle password, il saltchecksum dei checksum e il segreto della connessione TMS. Crea le chiavi con questi valori predefiniti:

ChiavePredefinitoSignificato
auth_cookie_expire1 monthquanto vive il cookie di sessione
auth_expire5 minutesper quanto tempo l’utente connesso viene tenuto in memoria prima di essere riletto
auth_cookie_options{"httponly":true,"security":"lax"}le opzioni del cookie di sessione
auth_strictfalsesessioni rigorose
app_session_expire1 dayquanto dura una sessione di applicazione
cdnhttps://cdn.componentator.com/la CDN dell’interfaccia
languageeula lingua predefinita
token, sync_tokengeneratoil token dell’API degli utenti e del socket di sincronizzazione (entrambe le funzioni sono disattivate per impostazione predefinita)

La chiave servicetoken, con cui l’endpoint di caricamento delle immagini confronta il proprio token di query, non è creata dallo script e la schermata di configurazione non la modifica: esiste solo se la aggiungi tu stesso a cl_config.

Lo script crea anche il gruppo Admin e il primo utente (info@totaljs.com, amministratore, confermato) che vi appartiene; vedi installarlo.

I servizi in background

Total.js esegue un servizio ogni minuto. OpenPlatform lo usa (definitions/init.js) per:

  • svuotare la cache in memoria delle verifiche (ogni 2 minuti);
  • salvare le statistiche giornaliere: utenti online, il massimo e il numero per dispositivo (ogni 3 minuti);
  • ricaricare la configurazione dal database (ogni 8 ore);
  • eliminare le sessioni di applicazione e di piattaforma scadute (ogni 12 ore);
  • inviare i riepiloghi via e-mail delle notifiche non lette (ogni 11 minuti, quando la posta è configurata).

Il database

Tutto vive nello schema PostgreSQL op:

TabellaCosa contiene
cl_configla configurazione (chiave, valore, tipo)
tbl_usergli utenti: profilo, hash della password, flag, contatori e i permessi in cache
tbl_groupi gruppi
tbl_user_groupquale utente appartiene a quale gruppo
tbl_sessionle sessioni degli utenti nel portale (dispositivo, indirizzo, scadenza)
tbl_apple applicazioni: indirizzo, segreti, flag e indirizzi consentiti
tbl_app_permissioni permessi che ogni applicazione dichiara
tbl_group_permissionquali permessi (o solo quali applicazioni) ogni gruppo concede
tbl_app_sessionle sessioni di avvio delle applicazioni e i loro token derivati
tbl_user_appper utente e applicazione: i link delle notifiche e se accettano notifiche
tbl_notificationle notifiche
tbl_visitorle statistiche giornaliere dei visitatori
tbl_feedbackil feedback che gli utenti inviano dal portale

I file con data database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql e database-2024-10-30.sql nel repository sono le modifiche dello schema nel tempo, e database.sql è lo script completo che esegue il primo avvio. Fai il backup di questo schema come di qualsiasi altro database PostgreSQL.