Настройки, услуги и таблици на базата данни на OpenPlatform
Настройките
OpenPlatform пази конфигурацията си в таблицата cl_config и я зарежда в CONF на Total.js при стартиране и на всеки осем часа (definitions/init.js). Екранът за настройка чете и записва тези ключове (plugins/setup/schemas/settings.js):
| Ключ | Значение |
|---|---|
name, icon, color | името, логото и цветът на платформата |
url | публичният адрес на платформата (без крайното /). Промяната му изчиства връзките на известията и отворените сесии на приложения |
language | езикът по подразбиране |
mail_smtp, mail_smtp_options, mail_from | SMTP сървърът, неговите опции (JSON) и подателят; екранът за настройка може да ги тества |
$tms, secret_tms | публикуване на събитията чрез TMS и тайната на тази връзка |
allow_token, token | включване на публичното API GET /users/ и неговия токен |
newtab | отваряне на всяко приложение в нов раздел |
sync, sync_token | приемане на сокета /sync/ на други инстанции, с неговия токен |
Първото стартиране (database.sql) генерира в cl_config и стойности, които екранът за настройка не редактира: id на инсталацията, secret на удостоверяването, името на cookie, salt на паролите, saltchecksum на контролните суми и тайната на връзката TMS. Създава ключовете с тези стойности по подразбиране:
| Ключ | По подразбиране | Значение |
|---|---|---|
auth_cookie_expire | 1 month | колко живее бисквитката на сесията |
auth_expire | 5 minutes | колко време влезлият потребител се държи в паметта, преди да бъде прочетен отново |
auth_cookie_options | {"httponly":true,"security":"lax"} | опциите на бисквитката на сесията |
auth_strict | false | строги сесии |
app_session_expire | 1 day | колко трае сесията на приложение |
cdn | https://cdn.componentator.com/ | CDN на интерфейса |
language | eu | езикът по подразбиране |
token, sync_token | генерирано | токенът на API за потребители и на синхронизиращия сокет (и двете функции са изключени по подразбиране) |
Ключът servicetoken, с който крайната точка за качване на изображения сравнява своя токен на заявката, не се създава от скрипта и екранът за настройка не го редактира: съществува само ако го добавите сами в cl_config.
Скриптът създава и групата Admin и първия потребител (info@totaljs.com, администратор, потвърден), който принадлежи към нея; вижте инсталиране.
Услугите във фонов режим
Total.js изпълнява услуга всяка минута. OpenPlatform я използва (definitions/init.js), за да:
- изчиства кеша в паметта на проверките (на всеки 2 минути);
- записва дневната статистика: потребители онлайн, максимумът и броят по устройство (на всеки 3 минути);
- презарежда конфигурацията от базата данни (на всеки 8 часа);
- изтрива изтеклите сесии на приложения и платформа (на всеки 12 часа);
- изпраща обобщенията по имейл на непрочетените известия (на всеки 11 минути, когато пощата е конфигурирана).
Базата данни
Всичко живее в схемата op на PostgreSQL:
| Таблица | Какво съдържа |
|---|---|
cl_config | конфигурацията (ключ, стойност, тип) |
tbl_user | потребителите: профил, хеш на паролата, флагове, броячи и кешираните права |
tbl_group | групите |
tbl_user_group | кой потребител към коя група принадлежи |
tbl_session | сесиите на потребителите в портала (устройство, адрес, изтичане) |
tbl_app | приложенията: адрес, тайни, флагове и разрешени адреси |
tbl_app_permission | правата, които декларира всяко приложение |
tbl_group_permission | кои права (или само кои приложения) дава всяка група |
tbl_app_session | сесиите за стартиране на приложенията и техните изведени токени |
tbl_user_app | на потребител и приложение: връзките на известията и дали приемат известия |
tbl_notification | известията |
tbl_visitor | дневната статистика на посетителите |
tbl_feedback | обратната връзка, която потребителите изпращат от портала |
Датираните файлове database-2023-09-15.sql, database-2024-03-21.sql, database-2024-10-22.sql и database-2024-10-30.sql в хранилището са промените на схемата във времето, а database.sql е пълният скрипт, който изпълнява първото стартиране. Правете резервно копие на тази схема като на всяка друга база данни PostgreSQL.