ForgeOpenPlatform
pl

OpenPlatform

Ustawienia, usługi i tabele bazy danych OpenPlatform

OpenPlatform · openplatform@5 openplatformsettingsdatabaseservices

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

KluczZnaczenie
name, icon, colornazwa, logo i kolor platformy
urlpubliczny adres platformy (bez końcowego /). Jego zmiana czyści odnośniki powiadomień i otwarte sesje aplikacji
languagejęzyk domyślny
mail_smtp, mail_smtp_options, mail_fromserwer SMTP, jego opcje (JSON) i nadawca; ekran konfiguracji może je przetestować
$tms, secret_tmspublikowanie zdarzeń przez TMS i sekret tego połączenia
allow_token, tokenwłączenie publicznego API GET /users/ i jego tokenu
newtabotwieranie każdej aplikacji w nowej karcie
sync, sync_tokenakceptowanie 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:

KluczDomyślnieZnaczenie
auth_cookie_expire1 monthjak długo żyje cookie sesji
auth_expire5 minutesjak 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_strictfalsesesje ścisłe
app_session_expire1 dayjak długo trwa sesja aplikacji
cdnhttps://cdn.componentator.com/CDN interfejsu
languageeujęzyk domyślny
token, sync_tokengenerowanetoken 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:

TabelaCo zawiera
cl_configkonfiguracja (klucz, wartość, typ)
tbl_userużytkownicy: profil, skrót hasła, flagi, liczniki i buforowane uprawnienia
tbl_groupgrupy
tbl_user_groupktóry użytkownik należy do której grupy
tbl_sessionsesje użytkowników w portalu (urządzenie, adres, ważność)
tbl_appaplikacje: adres, sekrety, flagi i dozwolone adresy
tbl_app_permissionuprawnienia deklarowane przez każdą aplikację
tbl_group_permissionjakie uprawnienia (lub tylko jakie aplikacje) przyznaje każda grupa
tbl_app_sessionsesje uruchomienia aplikacji i ich wyprowadzone tokeny
tbl_user_appna użytkownika i aplikację: odnośniki powiadomień i to, czy akceptują powiadomienia
tbl_notificationpowiadomienia
tbl_visitordzienne statystyki odwiedzających
tbl_feedbackopinie, 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.