Réglages, services et tables de base de données d’OpenPlatform
Les réglages
OpenPlatform conserve sa configuration dans la table cl_config et la charge dans le CONF de Total.js au démarrage et toutes les huit heures (definitions/init.js). L’écran de configuration lit et enregistre ces clés (plugins/setup/schemas/settings.js) :
| Clé | Signification |
|---|---|
name, icon, color | le nom, le logo et la couleur de la plateforme |
url | l’adresse publique de la plateforme (sans le / final). La modifier vide les liens de notification et les sessions d’application ouvertes |
language | la langue par défaut |
mail_smtp, mail_smtp_options, mail_from | le serveur SMTP, ses options (JSON) et l’expéditeur ; l’écran de configuration peut les tester |
$tms, secret_tms | publier les événements par TMS, et le secret de cette connexion |
allow_token, token | activer l’API publique GET /users/ et son jeton |
newtab | ouvrir chaque application dans un nouvel onglet |
sync, sync_token | accepter le socket /sync/ d’autres instances, avec son jeton |
Le premier démarrage (database.sql) génère aussi, dans cl_config, des valeurs que l’écran de configuration ne modifie pas : l’id de l’installation, le secret d’authentification, le nom du cookie, le salt des mots de passe, le saltchecksum des sommes de contrôle et le secret de la connexion TMS. Il crée les clés avec ces valeurs par défaut :
| Clé | Par défaut | Signification |
|---|---|---|
auth_cookie_expire | 1 month | la durée de vie du cookie de session |
auth_expire | 5 minutes | combien de temps l’utilisateur connecté est gardé en mémoire avant d’être relu |
auth_cookie_options | {"httponly":true,"security":"lax"} | les options du cookie de session |
auth_strict | false | sessions strictes |
app_session_expire | 1 day | la durée d’une session d’application |
cdn | https://cdn.componentator.com/ | le CDN de l’interface |
language | eu | la langue par défaut |
token, sync_token | généré | le jeton de l’API des utilisateurs et du socket de synchronisation (ces deux fonctions sont désactivées par défaut) |
La clé servicetoken, que le point d’accès d’envoi d’image compare à son jeton de requête, n’est pas créée par le script et l’écran de configuration ne la modifie pas : elle n’existe que si vous l’ajoutez vous-même à cl_config.
Le script crée aussi le groupe Admin et le premier utilisateur (info@totaljs.com, administrateur, confirmé) qui en fait partie ; voir l’installer.
Les services en arrière-plan
Total.js exécute un service chaque minute. OpenPlatform l’utilise (definitions/init.js) pour :
- vider le cache en mémoire des vérifications (toutes les 2 minutes) ;
- enregistrer les statistiques quotidiennes : utilisateurs en ligne, le maximum et le nombre par appareil (toutes les 3 minutes) ;
- recharger la configuration depuis la base de données (toutes les 8 heures) ;
- supprimer les sessions d’application et de plateforme expirées (toutes les 12 heures) ;
- envoyer les résumés par e-mail des notifications non lues (toutes les 11 minutes, quand la messagerie est configurée).
La base de données
Tout vit dans le schéma PostgreSQL op :
| Table | Ce qu’elle contient |
|---|---|
cl_config | la configuration (clé, valeur, type) |
tbl_user | les utilisateurs : profil, hachage du mot de passe, indicateurs, compteurs et permissions en cache |
tbl_group | les groupes |
tbl_user_group | quel utilisateur appartient à quel groupe |
tbl_session | les sessions des utilisateurs dans le portail (appareil, adresse, expiration) |
tbl_app | les applications : adresse, secrets, indicateurs et adresses autorisées |
tbl_app_permission | les permissions que chaque application déclare |
tbl_group_permission | quelles permissions (ou simplement quelles applications) chaque groupe accorde |
tbl_app_session | les sessions de lancement des applications et leurs jetons dérivés |
tbl_user_app | par utilisateur et application : les liens de notification et s’ils acceptent les notifications |
tbl_notification | les notifications |
tbl_visitor | les statistiques quotidiennes des visiteurs |
tbl_feedback | les retours que les utilisateurs envoient depuis le portail |
Les fichiers datés database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql et database-2024-10-30.sql du dépôt sont les modifications du schéma au fil du temps, et database.sql est le script complet que le premier démarrage exécute. Sauvegardez ce schéma comme n’importe quelle autre base de données PostgreSQL.