Einstellungen, Dienste und Datenbanktabellen von OpenPlatform
Die Einstellungen
OpenPlatform hält seine Konfiguration in der Tabelle cl_config und lädt sie beim Start und alle acht Stunden in das CONF von Total.js (definitions/init.js). Der Setup-Bildschirm liest und speichert diese Schlüssel (plugins/setup/schemas/settings.js):
| Schlüssel | Bedeutung |
|---|---|
name, icon, color | Name, Logo und Farbe der Plattform |
url | die öffentliche Adresse der Plattform (ohne das abschließende /). Eine Änderung löscht die Benachrichtigungslinks und die offenen Anwendungssitzungen |
language | die Standardsprache |
mail_smtp, mail_smtp_options, mail_from | der SMTP-Server, seine Optionen (JSON) und der Absender; der Setup-Bildschirm kann sie testen |
$tms, secret_tms | die Ereignisse per TMS veröffentlichen und das Geheimnis dieser Verbindung |
allow_token, token | die öffentliche API GET /users/ und ihr Token aktivieren |
newtab | jede Anwendung in einem neuen Tab öffnen |
sync, sync_token | den /sync/-Socket anderer Instanzen mit seinem Token akzeptieren |
Der erste Start (database.sql) erzeugt in cl_config außerdem Werte, die der Setup-Bildschirm nicht bearbeitet: die id der Installation, das secret der Authentifizierung, den Namen des cookie, das salt der Passwörter, das saltchecksum der Prüfsummen und das Geheimnis der TMS-Verbindung. Er legt die Schlüssel mit diesen Standardwerten an:
| Schlüssel | Standard | Bedeutung |
|---|---|---|
auth_cookie_expire | 1 month | wie lange das Sitzungs-Cookie lebt |
auth_expire | 5 minutes | wie lange der angemeldete Benutzer im Speicher gehalten wird, bevor er neu gelesen wird |
auth_cookie_options | {"httponly":true,"security":"lax"} | die Optionen des Sitzungs-Cookies |
auth_strict | false | strikte Sitzungen |
app_session_expire | 1 day | wie lange eine Anwendungssitzung dauert |
cdn | https://cdn.componentator.com/ | das CDN der Oberfläche |
language | eu | die Standardsprache |
token, sync_token | erzeugt | das Token der Benutzer-API und des Sync-Sockets (beide Funktionen sind standardmäßig aus) |
Der Schlüssel servicetoken, mit dem der Endpunkt für den Bild-Upload sein Query-Token vergleicht, wird vom Skript nicht angelegt und der Setup-Bildschirm bearbeitet ihn nicht: Er existiert nur, wenn Sie ihn selbst in cl_config ergänzen.
Das Skript legt außerdem die Gruppe Admin und den ersten Benutzer (info@totaljs.com, Administrator, bestätigt) an, der dazugehört; siehe Installation.
Die Hintergrunddienste
Total.js führt jede Minute einen Dienst aus. OpenPlatform nutzt ihn (definitions/init.js), um:
- den Speicher-Cache der Verifizierungen zu leeren (alle 2 Minuten);
- die Tagesstatistiken zu speichern: Benutzer online, das Maximum und die Anzahl nach Gerät (alle 3 Minuten);
- die Konfiguration aus der Datenbank neu zu laden (alle 8 Stunden);
- die abgelaufenen Anwendungs- und Plattformsitzungen zu löschen (alle 12 Stunden);
- die E-Mail-Zusammenfassungen ungelesener Benachrichtigungen zu senden (alle 11 Minuten, wenn die Mail konfiguriert ist).
Die Datenbank
Alles liegt im PostgreSQL-Schema op:
| Tabelle | Was sie enthält |
|---|---|
cl_config | die Konfiguration (Schlüssel, Wert, Typ) |
tbl_user | die Benutzer: Profil, Passwort-Hash, Flags, Zähler und die gecachten Berechtigungen |
tbl_group | die Gruppen |
tbl_user_group | welcher Benutzer zu welcher Gruppe gehört |
tbl_session | die Sitzungen der Benutzer im Portal (Gerät, Adresse, Ablauf) |
tbl_app | die Anwendungen: Adresse, Geheimnisse, Flags und erlaubte Adressen |
tbl_app_permission | die Berechtigungen, die jede Anwendung deklariert |
tbl_group_permission | welche Berechtigungen (oder nur welche Anwendungen) jede Gruppe gewährt |
tbl_app_session | die Startsitzungen der Anwendungen und ihre abgeleiteten Tokens |
tbl_user_app | pro Benutzer und Anwendung: die Benachrichtigungslinks und ob sie Benachrichtigungen akzeptieren |
tbl_notification | die Benachrichtigungen |
tbl_visitor | die täglichen Besucherstatistiken |
tbl_feedback | das Feedback, das Benutzer aus dem Portal senden |
Die datierten Dateien database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql und database-2024-10-30.sql im Repository sind die Änderungen des Schemas im Lauf der Zeit, und database.sql ist das vollständige Skript, das der erste Start ausführt. Sichern Sie dieses Schema wie jede andere PostgreSQL-Datenbank.