ForgeOpenPlatform
nl

OpenPlatform

Instellingen, services en databasetabellen van OpenPlatform

OpenPlatform · openplatform@5 openplatformsettingsdatabaseservices

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

SleutelBetekenis
name, icon, colorde naam, het logo en de kleur van het platform
urlhet openbare adres van het platform (zonder de laatste /). Wijzigen wist de meldingslinks en de open toepassingssessies
languagede standaardtaal
mail_smtp, mail_smtp_options, mail_fromde SMTP-server, zijn opties (JSON) en de afzender; het setup-scherm kan ze testen
$tms, secret_tmsde gebeurtenissen via TMS publiceren, en het geheim van die verbinding
allow_token, tokende openbare API GET /users/ en haar token inschakelen
newtabelke toepassing in een nieuw tabblad openen
sync, sync_tokende /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:

SleutelStandaardBetekenis
auth_cookie_expire1 monthhoe lang de sessiecookie leeft
auth_expire5 minuteshoe 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_strictfalsestrikte sessies
app_session_expire1 dayhoe lang een toepassingssessie duurt
cdnhttps://cdn.componentator.com/de CDN van de interface
languageeude standaardtaal
token, sync_tokengegenereerdhet 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:

TabelWat ze bevat
cl_configde configuratie (sleutel, waarde, type)
tbl_userde gebruikers: profiel, wachtwoordhash, vlaggen, tellers en de gecachete rechten
tbl_groupde groepen
tbl_user_groupwelke gebruiker bij welke groep hoort
tbl_sessionde sessies van de gebruikers in het portaal (apparaat, adres, verloop)
tbl_appde toepassingen: adres, geheimen, vlaggen en toegestane adressen
tbl_app_permissionde rechten die elke toepassing declareert
tbl_group_permissionwelke rechten (of alleen welke toepassingen) elke groep verleent
tbl_app_sessionde startsessies van de toepassingen en hun afgeleide tokens
tbl_user_appper gebruiker en toepassing: de meldingslinks en of ze meldingen accepteren
tbl_notificationde meldingen
tbl_visitorde dagelijkse bezoekersstatistieken
tbl_feedbackde 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.