Impostazioni, servizi e tabelle del database di OpenPlatform
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):
| Chiave | Significato |
|---|---|
name, icon, color | il nome, il logo e il colore della piattaforma |
url | l’indirizzo pubblico della piattaforma (senza la / finale). Cambiarlo svuota i link delle notifiche e le sessioni di applicazione aperte |
language | la lingua predefinita |
mail_smtp, mail_smtp_options, mail_from | il server SMTP, le sue opzioni (JSON) e il mittente; la schermata di configurazione può testarli |
$tms, secret_tms | pubblicare gli eventi tramite TMS, e il segreto di quella connessione |
allow_token, token | abilitare l’API pubblica GET /users/ e il suo token |
newtab | aprire ogni applicazione in una nuova scheda |
sync, sync_token | accettare 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:
| Chiave | Predefinito | Significato |
|---|---|---|
auth_cookie_expire | 1 month | quanto vive il cookie di sessione |
auth_expire | 5 minutes | per 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_strict | false | sessioni rigorose |
app_session_expire | 1 day | quanto dura una sessione di applicazione |
cdn | https://cdn.componentator.com/ | la CDN dell’interfaccia |
language | eu | la lingua predefinita |
token, sync_token | generato | il 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:
| Tabella | Cosa contiene |
|---|---|
cl_config | la configurazione (chiave, valore, tipo) |
tbl_user | gli utenti: profilo, hash della password, flag, contatori e i permessi in cache |
tbl_group | i gruppi |
tbl_user_group | quale utente appartiene a quale gruppo |
tbl_session | le sessioni degli utenti nel portale (dispositivo, indirizzo, scadenza) |
tbl_app | le applicazioni: indirizzo, segreti, flag e indirizzi consentiti |
tbl_app_permission | i permessi che ogni applicazione dichiara |
tbl_group_permission | quali permessi (o solo quali applicazioni) ogni gruppo concede |
tbl_app_session | le sessioni di avvio delle applicazioni e i loro token derivati |
tbl_user_app | per utente e applicazione: i link delle notifiche e se accettano notifiche |
tbl_notification | le notifiche |
tbl_visitor | le statistiche giornaliere dei visitatori |
tbl_feedback | il 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.