Instellingen, services en databasetabellen van OpenPlatform
De instellingen
OpenPlatform bewaart zijn configuratie in de tabel cl_config en laadt die bij de start en om de acht uur in de CONF van Total.js (definitions/init.js). Het setup-scherm leest en bewaart deze sleutels (plugins/setup/schemas/settings.js):
| Sleutel | Betekenis |
|---|---|
name, icon, color | de naam, het logo en de kleur van het platform |
url | het openbare adres van het platform (zonder de laatste /). Wijzigen wist de meldingslinks en de open toepassingssessies |
language | de standaardtaal |
mail_smtp, mail_smtp_options, mail_from | de SMTP-server, zijn opties (JSON) en de afzender; het setup-scherm kan ze testen |
$tms, secret_tms | de gebeurtenissen via TMS publiceren, en het geheim van die verbinding |
allow_token, token | de openbare API GET /users/ en haar token inschakelen |
newtab | elke toepassing in een nieuw tabblad openen |
sync, sync_token | de /sync/-socket van andere instanties accepteren, met zijn token |
De eerste start (database.sql) genereert in cl_config ook waarden die het setup-scherm niet bewerkt: de id van de installatie, het secret van de authenticatie, de naam van de cookie, de salt van de wachtwoorden, de saltchecksum van de controlesommen en het geheim van de TMS-verbinding. Hij maakt de sleutels aan met deze standaardwaarden:
| Sleutel | Standaard | Betekenis |
|---|---|---|
auth_cookie_expire | 1 month | hoe lang de sessiecookie leeft |
auth_expire | 5 minutes | hoe lang de aangemelde gebruiker in het geheugen wordt gehouden voordat hij opnieuw wordt gelezen |
auth_cookie_options | {"httponly":true,"security":"lax"} | de opties van de sessiecookie |
auth_strict | false | strikte sessies |
app_session_expire | 1 day | hoe lang een toepassingssessie duurt |
cdn | https://cdn.componentator.com/ | de CDN van de interface |
language | eu | de standaardtaal |
token, sync_token | gegenereerd | het token van de gebruikers-API en van de synchronisatiesocket (beide functies staan standaard uit) |
De sleutel servicetoken, waarmee het endpoint voor het uploaden van afbeeldingen zijn querytoken vergelijkt, wordt niet door het script aangemaakt en het setup-scherm bewerkt hem niet: hij bestaat alleen als je hem zelf aan cl_config toevoegt.
Het script maakt ook de groep Admin aan en de eerste gebruiker (info@totaljs.com, beheerder, bevestigd) die erbij hoort; zie installeren.
De achtergrondservices
Total.js voert elke minuut een service uit. OpenPlatform gebruikt hem (definitions/init.js) om:
- de geheugencache van de verificaties te wissen (elke 2 minuten);
- de dagelijkse statistieken op te slaan: gebruikers online, het maximum en het aantal per apparaat (elke 3 minuten);
- de configuratie opnieuw uit de database te laden (elke 8 uur);
- de verlopen toepassings- en platformsessies te verwijderen (elke 12 uur);
- de e-mailsamenvattingen van ongelezen meldingen te sturen (elke 11 minuten, wanneer de mail is geconfigureerd).
De database
Alles staat in het PostgreSQL-schema op:
| Tabel | Wat ze bevat |
|---|---|
cl_config | de configuratie (sleutel, waarde, type) |
tbl_user | de gebruikers: profiel, wachtwoordhash, vlaggen, tellers en de gecachete rechten |
tbl_group | de groepen |
tbl_user_group | welke gebruiker bij welke groep hoort |
tbl_session | de sessies van de gebruikers in het portaal (apparaat, adres, verloop) |
tbl_app | de toepassingen: adres, geheimen, vlaggen en toegestane adressen |
tbl_app_permission | de rechten die elke toepassing declareert |
tbl_group_permission | welke rechten (of alleen welke toepassingen) elke groep verleent |
tbl_app_session | de startsessies van de toepassingen en hun afgeleide tokens |
tbl_user_app | per gebruiker en toepassing: de meldingslinks en of ze meldingen accepteren |
tbl_notification | de meldingen |
tbl_visitor | de dagelijkse bezoekersstatistieken |
tbl_feedback | de feedback die gebruikers vanuit het portaal sturen |
De gedateerde bestanden database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql en database-2024-10-30.sql in de repository zijn de wijzigingen van het schema in de loop van de tijd, en database.sql is het volledige script dat de eerste start uitvoert. Maak een back-up van dit schema zoals van elke andere PostgreSQL-database.