# Az OpenPlatform beállításai, szolgáltatásai és adatbázistáblái

> Azok a konfigurációs kulcsok, amelyeket az OpenPlatform olvas, mit csinálnak a háttérszolgáltatásai, és mire való az op séma egyes táblái.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: hu
Content-SHA256: 54c7e91b7d9a9aa7adf36ce093361c7f40b4f3cf28542891de5b5be856d73be0
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## A beállítások

Az OpenPlatform a konfigurációját a `cl_config` táblában tartja, és indításkor, majd nyolcóránként betölti a Total.js `CONF` objektumába (`definitions/init.js`). A beállítási képernyő ezeket a kulcsokat olvassa és menti (`plugins/setup/schemas/settings.js`):

| Kulcs | Jelentés |
|---|---|
| `name`, `icon`, `color` | a platform neve, logója és színe |
| `url` | a platform nyilvános címe (a záró `/` nélkül). Módosítása törli az értesítési hivatkozásokat és a nyitott alkalmazásmunkameneteket |
| `language` | az alapértelmezett nyelv |
| `mail_smtp`, `mail_smtp_options`, `mail_from` | az SMTP szerver, annak beállításai (JSON) és a feladó; a beállítási képernyő tesztelni tudja őket |
| `$tms`, `secret_tms` | az események közzététele TMS-en, és a kapcsolat titka |
| `allow_token`, `token` | a nyilvános `GET /users/` API és tokenje engedélyezése |
| `newtab` | minden alkalmazás megnyitása új lapon |
| `sync`, `sync_token` | más példányok `/sync/` socketjének fogadása, a tokenjével |

Az első indítás (`database.sql`) a `cl_config` táblában olyan értékeket is létrehoz, amelyeket a beállítási képernyő nem szerkeszt: a telepítés `id` értékét, a hitelesítés `secret` értékét, a `cookie` nevét, a jelszavak `salt` értékét, az ellenőrző összegek `saltchecksum` értékét és a TMS-kapcsolat titkát. A kulcsokat ezekkel az alapértékekkel hozza létre:

| Kulcs | Alapérték | Jelentés |
|---|---|---|
| `auth_cookie_expire` | `1 month` | mennyi ideig él a munkamenet-cookie |
| `auth_expire` | `5 minutes` | mennyi ideig tartja a memóriában a bejelentkezett felhasználót, mielőtt újraolvassa |
| `auth_cookie_options` | `{"httponly":true,"security":"lax"}` | a munkamenet-cookie beállításai |
| `auth_strict` | `false` | szigorú munkamenetek |
| `app_session_expire` | `1 day` | meddig tart egy alkalmazásmunkamenet |
| `cdn` | `https://cdn.componentator.com/` | a felület CDN-je |
| `language` | `eu` | az alapértelmezett nyelv |
| `token`, `sync_token` | generált | a felhasználói API és a szinkronizációs socket tokenje (mindkét funkció alapból ki van kapcsolva) |

A `servicetoken` kulcsot, amellyel a képfeltöltő végpont a lekérdezési tokenjét összeveti, a szkript **nem** hozza létre, és a beállítási képernyő sem szerkeszti: csak akkor létezik, ha te magad adod hozzá a `cl_config` táblához.

A szkript létrehozza az **Admin** csoportot és az első felhasználót is (`info@totaljs.com`, adminisztrátor, megerősített), aki hozzá tartozik; lásd [telepítés](/en/openplatform/install-openplatform/).

## A háttérszolgáltatások

A Total.js percenként futtat egy szolgáltatást. Az OpenPlatform ezt használja (`definitions/init.js`) a következőkre:

- az ellenőrzések memóriabeli gyorsítótárának törlése (2 percenként);
- a napi statisztikák mentése: online felhasználók, a maximum és az eszközönkénti szám (3 percenként);
- a konfiguráció újratöltése az adatbázisból (8 óránként);
- a lejárt alkalmazás- és platformmunkamenetek törlése (12 óránként);
- az olvasatlan értesítések e-mailes összefoglalóinak küldése (11 percenként, ha a levelezés be van állítva).

## Az adatbázis

Minden az `op` PostgreSQL sémában él:

| Tábla | Mit tartalmaz |
|---|---|
| `cl_config` | a konfiguráció (kulcs, érték, típus) |
| `tbl_user` | a felhasználók: profil, jelszó-hash, jelzők, számlálók és a gyorsítótárazott jogosultságok |
| `tbl_group` | a csoportok |
| `tbl_user_group` | melyik felhasználó melyik csoporthoz tartozik |
| `tbl_session` | a felhasználók munkamenetei a portálon (eszköz, cím, lejárat) |
| `tbl_app` | az alkalmazások: cím, titkok, jelzők és engedélyezett címek |
| `tbl_app_permission` | az egyes alkalmazások által deklarált jogosultságok |
| `tbl_group_permission` | milyen jogosultságokat (vagy csak milyen alkalmazásokat) ad meg az egyes csoport |
| `tbl_app_session` | az alkalmazások indítási munkamenetei és a levezetett tokenjeik |
| `tbl_user_app` | felhasználónként és alkalmazásonként: az értesítési hivatkozások és az, hogy elfogadják-e az értesítéseket |
| `tbl_notification` | az értesítések |
| `tbl_visitor` | a napi látogatói statisztikák |
| `tbl_feedback` | a visszajelzések, amelyeket a felhasználók a portálról küldenek |

A tárolóban lévő dátumozott `database-2023-09-15.sql`, `database-2024-03-21.sql`, `database-2024-10-22.sql` és `database-2024-10-30.sql` fájlok a séma időbeli változásai, a `database.sql` pedig a teljes szkript, amelyet az első indítás futtat. Ezt a sémát ugyanúgy mentsd, mint bármely más PostgreSQL adatbázist.
