ForgeOpenPlatform
ro

OpenPlatform

Setările, serviciile și tabelele bazei de date OpenPlatform

OpenPlatform · openplatform@5 openplatformsettingsdatabaseservices

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

CheieSemnificație
name, icon, colornumele, sigla și culoarea platformei
urladresa publică a platformei (fără / final). Schimbarea ei golește linkurile de notificare și sesiunile de aplicație deschise
languagelimba implicită
mail_smtp, mail_smtp_options, mail_fromserverul SMTP, opțiunile lui (JSON) și expeditorul; ecranul de configurare le poate testa
$tms, secret_tmspublică evenimentele prin TMS și secretul acelei conexiuni
allow_token, tokenactivează API-ul public GET /users/ și token-ul lui
newtabdeschide fiecare aplicație într-o filă nouă
sync, sync_tokenacceptă 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:

CheieImplicitSemnificație
auth_cookie_expire1 monthcât trăiește cookie-ul de sesiune
auth_expire5 minutescâ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_strictfalsesesiuni stricte
app_session_expire1 daycât durează o sesiune de aplicație
cdnhttps://cdn.componentator.com/CDN-ul interfeței
languageeulimba implicită
token, sync_tokengenerattoken-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:

TabelCe conține
cl_configconfigurația (cheie, valoare, tip)
tbl_userutilizatorii: profil, hash-ul parolei, indicatori, contoare și permisiunile din cache
tbl_groupgrupurile
tbl_user_groupce utilizator aparține cărui grup
tbl_sessionsesiunile utilizatorilor în portal (dispozitiv, adresă, expirare)
tbl_appaplicațiile: adresă, secrete, indicatori și adrese permise
tbl_app_permissionpermisiunile pe care le declară fiecare aplicație
tbl_group_permissionce permisiuni (sau doar ce aplicații) acordă fiecare grup
tbl_app_sessionsesiunile de lansare ale aplicațiilor și token-urile lor derivate
tbl_user_apppe utilizator și aplicație: linkurile de notificare și dacă acceptă notificări
tbl_notificationnotificările
tbl_visitorstatisticile zilnice ale vizitatorilor
tbl_feedbackfeedback-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.