Setările, serviciile și tabelele bazei de date OpenPlatform
Setările
OpenPlatform își păstrează configurația în tabelul cl_config și o încarcă în CONF din Total.js la pornire și la fiecare opt ore (definitions/init.js). Ecranul de configurare citește și salvează aceste chei (plugins/setup/schemas/settings.js):
| Cheie | Semnificație |
|---|---|
name, icon, color | numele, sigla și culoarea platformei |
url | adresa publică a platformei (fără / final). Schimbarea ei golește linkurile de notificare și sesiunile de aplicație deschise |
language | limba implicită |
mail_smtp, mail_smtp_options, mail_from | serverul SMTP, opțiunile lui (JSON) și expeditorul; ecranul de configurare le poate testa |
$tms, secret_tms | publică evenimentele prin TMS și secretul acelei conexiuni |
allow_token, token | activează API-ul public GET /users/ și token-ul lui |
newtab | deschide fiecare aplicație într-o filă nouă |
sync, sync_token | acceptă socket-ul /sync/ al altor instanțe, cu token-ul lui |
Prima pornire (database.sql) generează în cl_config și valori pe care ecranul de configurare nu le editează: id al instalației, secret al autentificării, numele cookie, salt al parolelor, saltchecksum al sumelor de control și secretul conexiunii TMS. Creează cheile cu aceste valori implicite:
| Cheie | Implicit | Semnificație |
|---|---|---|
auth_cookie_expire | 1 month | cât trăiește cookie-ul de sesiune |
auth_expire | 5 minutes | cât timp este ținut în memorie utilizatorul autentificat înainte de a fi citit din nou |
auth_cookie_options | {"httponly":true,"security":"lax"} | opțiunile cookie-ului de sesiune |
auth_strict | false | sesiuni stricte |
app_session_expire | 1 day | cât durează o sesiune de aplicație |
cdn | https://cdn.componentator.com/ | CDN-ul interfeței |
language | eu | limba implicită |
token, sync_token | generat | token-ul API-ului utilizatorilor și al socket-ului de sincronizare (ambele funcții sunt dezactivate implicit) |
Cheia servicetoken, cu care endpoint-ul de încărcare a imaginilor își compară token-ul de interogare, nu este creată de script, iar ecranul de configurare nu o editează: există doar dacă o adaugi tu însuți în cl_config.
Scriptul creează și grupul Admin și primul utilizator (info@totaljs.com, administrator, confirmat) care îi aparține; vezi instalarea.
Serviciile din fundal
Total.js rulează un serviciu în fiecare minut. OpenPlatform îl folosește (definitions/init.js) pentru:
- golirea cache-ului din memorie al verificărilor (la fiecare 2 minute);
- salvarea statisticilor zilnice: utilizatori online, maximul și numărul pe dispozitiv (la fiecare 3 minute);
- reîncărcarea configurației din baza de date (la fiecare 8 ore);
- ștergerea sesiunilor de aplicație și de platformă expirate (la fiecare 12 ore);
- trimiterea rezumatelor prin e-mail ale notificărilor necitite (la fiecare 11 minute, când poșta este configurată).
Baza de date
Totul se află în schema PostgreSQL op:
| Tabel | Ce conține |
|---|---|
cl_config | configurația (cheie, valoare, tip) |
tbl_user | utilizatorii: profil, hash-ul parolei, indicatori, contoare și permisiunile din cache |
tbl_group | grupurile |
tbl_user_group | ce utilizator aparține cărui grup |
tbl_session | sesiunile utilizatorilor în portal (dispozitiv, adresă, expirare) |
tbl_app | aplicațiile: adresă, secrete, indicatori și adrese permise |
tbl_app_permission | permisiunile pe care le declară fiecare aplicație |
tbl_group_permission | ce permisiuni (sau doar ce aplicații) acordă fiecare grup |
tbl_app_session | sesiunile de lansare ale aplicațiilor și token-urile lor derivate |
tbl_user_app | pe utilizator și aplicație: linkurile de notificare și dacă acceptă notificări |
tbl_notification | notificările |
tbl_visitor | statisticile zilnice ale vizitatorilor |
tbl_feedback | feedback-ul pe care utilizatorii îl trimit din portal |
Fișierele cu dată database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql și database-2024-10-30.sql din depozit sunt modificările schemei în timp, iar database.sql este scriptul complet pe care îl rulează prima pornire. Fă copii de siguranță ale acestei scheme ca pentru orice altă bază de date PostgreSQL.