Ustawienia, usługi i tabele bazy danych OpenPlatform
Ustawienia
OpenPlatform przechowuje konfigurację w tabeli cl_config i ładuje ją do CONF Total.js przy starcie i co osiem godzin (definitions/init.js). Ekran konfiguracji odczytuje i zapisuje te klucze (plugins/setup/schemas/settings.js):
| Klucz | Znaczenie |
|---|---|
name, icon, color | nazwa, logo i kolor platformy |
url | publiczny adres platformy (bez końcowego /). Jego zmiana czyści odnośniki powiadomień i otwarte sesje aplikacji |
language | język domyślny |
mail_smtp, mail_smtp_options, mail_from | serwer SMTP, jego opcje (JSON) i nadawca; ekran konfiguracji może je przetestować |
$tms, secret_tms | publikowanie zdarzeń przez TMS i sekret tego połączenia |
allow_token, token | włączenie publicznego API GET /users/ i jego tokenu |
newtab | otwieranie każdej aplikacji w nowej karcie |
sync, sync_token | akceptowanie gniazda /sync/ innych instancji, z jego tokenem |
Pierwsze uruchomienie (database.sql) generuje też w cl_config wartości, których ekran konfiguracji nie edytuje: id instalacji, secret uwierzytelniania, nazwę cookie, salt haseł, saltchecksum sum kontrolnych i sekret połączenia TMS. Tworzy klucze z tymi wartościami domyślnymi:
| Klucz | Domyślnie | Znaczenie |
|---|---|---|
auth_cookie_expire | 1 month | jak długo żyje cookie sesji |
auth_expire | 5 minutes | jak długo zalogowany użytkownik jest trzymany w pamięci, zanim zostanie odczytany ponownie |
auth_cookie_options | {"httponly":true,"security":"lax"} | opcje cookie sesji |
auth_strict | false | sesje ścisłe |
app_session_expire | 1 day | jak długo trwa sesja aplikacji |
cdn | https://cdn.componentator.com/ | CDN interfejsu |
language | eu | język domyślny |
token, sync_token | generowane | token API użytkowników i gniazda synchronizacji (obie funkcje są domyślnie wyłączone) |
Klucza servicetoken, z którym endpoint wysyłania obrazów porównuje swój token zapytania, skrypt nie tworzy, a ekran konfiguracji go nie edytuje: istnieje tylko wtedy, gdy sam dodasz go do cl_config.
Skrypt tworzy też grupę Admin i pierwszego użytkownika (info@totaljs.com, administrator, potwierdzony), który do niej należy; zobacz instalacja.
Usługi w tle
Total.js uruchamia usługę co minutę. OpenPlatform używa jej (definitions/init.js), aby:
- czyścić pamięć podręczną weryfikacji (co 2 minuty);
- zapisywać dzienne statystyki: użytkownicy online, maksimum i liczba według urządzenia (co 3 minuty);
- przeładowywać konfigurację z bazy danych (co 8 godzin);
- usuwać wygasłe sesje aplikacji i platformy (co 12 godzin);
- wysyłać e-mailowe podsumowania nieprzeczytanych powiadomień (co 11 minut, gdy poczta jest skonfigurowana).
Baza danych
Wszystko znajduje się w schemacie PostgreSQL op:
| Tabela | Co zawiera |
|---|---|
cl_config | konfiguracja (klucz, wartość, typ) |
tbl_user | użytkownicy: profil, skrót hasła, flagi, liczniki i buforowane uprawnienia |
tbl_group | grupy |
tbl_user_group | który użytkownik należy do której grupy |
tbl_session | sesje użytkowników w portalu (urządzenie, adres, ważność) |
tbl_app | aplikacje: adres, sekrety, flagi i dozwolone adresy |
tbl_app_permission | uprawnienia deklarowane przez każdą aplikację |
tbl_group_permission | jakie uprawnienia (lub tylko jakie aplikacje) przyznaje każda grupa |
tbl_app_session | sesje uruchomienia aplikacji i ich wyprowadzone tokeny |
tbl_user_app | na użytkownika i aplikację: odnośniki powiadomień i to, czy akceptują powiadomienia |
tbl_notification | powiadomienia |
tbl_visitor | dzienne statystyki odwiedzających |
tbl_feedback | opinie, które użytkownicy wysyłają z portalu |
Pliki z datą database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql i database-2024-10-30.sql w repozytorium to zmiany schematu w czasie, a database.sql to pełny skrypt uruchamiany przy pierwszym starcie. Rób kopię zapasową tego schematu jak każdej innej bazy PostgreSQL.