# Nastavenia, služby a databázové tabuľky OpenPlatform

> Konfiguračné kľúče, ktoré OpenPlatform číta, čo robia jeho služby na pozadí a na čo slúži každá tabuľka schémy op.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: sk
Content-SHA256: bbbc9d4d9fa743cf966aa3f31e5c18f10d8630e0f02f61cbbb0091e9c695a30c
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

## Nastavenia

OpenPlatform ukladá svoju konfiguráciu do tabuľky `cl_config` a načíta ju do `CONF` Total.js pri štarte a každých osem hodín (`definitions/init.js`). Obrazovka nastavení číta a ukladá tieto kľúče (`plugins/setup/schemas/settings.js`):

| Kľúč | Význam |
|---|---|
| `name`, `icon`, `color` | názov, logo a farba platformy |
| `url` | verejná adresa platformy (bez koncového `/`). Jej zmena vymaže odkazy oznámení a otvorené relácie aplikácií |
| `language` | predvolený jazyk |
| `mail_smtp`, `mail_smtp_options`, `mail_from` | server SMTP, jeho voľby (JSON) a odosielateľ; obrazovka nastavení ich vie otestovať |
| `$tms`, `secret_tms` | publikovať udalosti cez TMS a tajomstvo tohto spojenia |
| `allow_token`, `token` | zapnúť verejné API `GET /users/` a jeho token |
| `newtab` | otvárať každú aplikáciu v novej karte |
| `sync`, `sync_token` | prijímať socket `/sync/` iných inštancií s jeho tokenom |

Prvé spustenie (`database.sql`) tiež vygeneruje v `cl_config` hodnoty, ktoré obrazovka nastavení neupravuje: `id` inštalácie, `secret` autentifikácie, názov `cookie`, `salt` hesiel, `saltchecksum` kontrolných súčtov a tajomstvo spojenia TMS. Kľúče vytvorí s týmito predvolenými hodnotami:

| Kľúč | Predvolené | Význam |
|---|---|---|
| `auth_cookie_expire` | `1 month` | ako dlho žije cookie relácie |
| `auth_expire` | `5 minutes` | ako dlho sa prihlásený používateľ drží v pamäti, kým sa znova prečíta |
| `auth_cookie_options` | `{"httponly":true,"security":"lax"}` | voľby cookie relácie |
| `auth_strict` | `false` | prísne relácie |
| `app_session_expire` | `1 day` | ako dlho trvá relácia aplikácie |
| `cdn` | `https://cdn.componentator.com/` | CDN rozhrania |
| `language` | `eu` | predvolený jazyk |
| `token`, `sync_token` | vygenerované | token API používateľov a synchronizačného socketu (obe funkcie sú predvolene vypnuté) |

Kľúč `servicetoken`, s ktorým endpoint nahrávania obrázkov porovnáva svoj token dotazu, skript **nevytvára** a obrazovka nastavení ho neupravuje: existuje, iba ak ho do `cl_config` pridáte sami.

Skript tiež vytvorí skupinu **Admin** a prvého používateľa (`info@totaljs.com`, správca, potvrdený), ktorý do nej patrí; pozri [inštalácia](/en/openplatform/install-openplatform/).

## Služby na pozadí

Total.js spúšťa službu každú minútu. OpenPlatform ju používa (`definitions/init.js`) na:

- vymazanie vyrovnávacej pamäte overení (každé 2 minúty);
- uloženie denných štatistík: používatelia online, maximum a počet podľa zariadenia (každé 3 minúty);
- opätovné načítanie konfigurácie z databázy (každých 8 hodín);
- zmazanie vypršaných relácií aplikácií a platformy (každých 12 hodín);
- odoslanie e-mailových súhrnov neprečítaných oznámení (každých 11 minút, keď je pošta nastavená).

## Databáza

Všetko je v schéme `op` databázy PostgreSQL:

| Tabuľka | Čo obsahuje |
|---|---|
| `cl_config` | konfigurácia (kľúč, hodnota, typ) |
| `tbl_user` | používatelia: profil, hash hesla, príznaky, počítadlá a oprávnenia vo vyrovnávacej pamäti |
| `tbl_group` | skupiny |
| `tbl_user_group` | ktorý používateľ patrí do ktorej skupiny |
| `tbl_session` | relácie používateľov v portáli (zariadenie, adresa, platnosť) |
| `tbl_app` | aplikácie: adresa, tajomstvá, príznaky a povolené adresy |
| `tbl_app_permission` | oprávnenia, ktoré každá aplikácia deklaruje |
| `tbl_group_permission` | ktoré oprávnenia (alebo len ktoré aplikácie) každá skupina udeľuje |
| `tbl_app_session` | spúšťacie relácie aplikácií a ich odvodené tokeny |
| `tbl_user_app` | na používateľa a aplikáciu: odkazy oznámení a či oznámenia prijímajú |
| `tbl_notification` | oznámenia |
| `tbl_visitor` | denné štatistiky návštevníkov |
| `tbl_feedback` | spätná väzba, ktorú používatelia posielajú z portálu |

Súbory s dátumom `database-2023-09-15.sql`, `database-2024-03-21.sql`, `database-2024-10-22.sql` a `database-2024-10-30.sql` v repozitári sú zmeny schémy v čase a `database.sql` je úplný skript, ktorý spúšťa prvé spustenie. Túto schému zálohujte ako každú inú databázu PostgreSQL.
