# OpenPlatforms inställningar, tjänster och databastabeller

> Konfigurationsnycklarna som OpenPlatform läser, vad dess bakgrundstjänster gör och vad varje tabell i schemat op används till.

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

## Inställningarna

OpenPlatform håller sin konfiguration i tabellen `cl_config` och läser in den i Total.js `CONF` vid start och var åttonde timme (`definitions/init.js`). Setup-skärmen läser och sparar dessa nycklar (`plugins/setup/schemas/settings.js`):

| Nyckel | Betydelse |
|---|---|
| `name`, `icon`, `color` | plattformens namn, logotyp och färg |
| `url` | plattformens publika adress (utan det avslutande `/`). Att ändra den rensar notislänkarna och de öppna applikationssessionerna |
| `language` | standardspråket |
| `mail_smtp`, `mail_smtp_options`, `mail_from` | SMTP-servern, dess alternativ (JSON) och avsändaren; setup-skärmen kan testa dem |
| `$tms`, `secret_tms` | publicera händelserna via TMS, och hemligheten för den anslutningen |
| `allow_token`, `token` | aktivera det publika API:et `GET /users/` och dess token |
| `newtab` | öppna varje applikation i en ny flik |
| `sync`, `sync_token` | acceptera `/sync/`-socketen från andra instanser, med dess token |

Den första starten (`database.sql`) genererar också, inuti `cl_config`, värden som setup-skärmen inte redigerar: installationens `id`, autentiseringens `secret`, namnet på `cookie`, lösenordens `salt`, kontrollsummornas `saltchecksum` och hemligheten för TMS-anslutningen. Den skapar nycklarna med dessa standardvärden:

| Nyckel | Standard | Betydelse |
|---|---|---|
| `auth_cookie_expire` | `1 month` | hur länge sessionscookien lever |
| `auth_expire` | `5 minutes` | hur länge den inloggade användaren hålls i minnet innan den läses om |
| `auth_cookie_options` | `{"httponly":true,"security":"lax"}` | sessionscookiens alternativ |
| `auth_strict` | `false` | strikta sessioner |
| `app_session_expire` | `1 day` | hur länge en applikationssession varar |
| `cdn` | `https://cdn.componentator.com/` | gränssnittets CDN |
| `language` | `eu` | standardspråket |
| `token`, `sync_token` | genererad | token för användar-API:et och synkroniseringssocketen (båda funktionerna är avstängda som standard) |

Nyckeln `servicetoken`, som bilduppladdningens slutpunkt jämför med sin frågetoken, skapas **inte** av skriptet och setup-skärmen redigerar den inte: den finns bara om du lägger till den i `cl_config` själv.

Skriptet skapar också gruppen **Admin** och den första användaren (`info@totaljs.com`, administratör, bekräftad) som tillhör den; se [installera den](/en/openplatform/install-openplatform/).

## Bakgrundstjänsterna

Total.js kör en tjänst varje minut. OpenPlatform använder den (`definitions/init.js`) för att:

- rensa minnescachen för verifieringarna (var 2:a minut);
- spara de dagliga statistiken: användare online, maximum och antal per enhet (var 3:e minut);
- läsa om konfigurationen från databasen (var 8:e timme);
- radera de utgångna applikations- och plattformssessionerna (var 12:e timme);
- skicka e-postsammanfattningarna av olästa notiser (var 11:e minut, när e-posten är konfigurerad).

## Databasen

Allt finns i PostgreSQL-schemat `op`:

| Tabell | Vad den innehåller |
|---|---|
| `cl_config` | konfigurationen (nyckel, värde, typ) |
| `tbl_user` | användarna: profil, lösenordshash, flaggor, räknare och de cachade behörigheterna |
| `tbl_group` | grupperna |
| `tbl_user_group` | vilken användare som tillhör vilken grupp |
| `tbl_session` | användarnas sessioner i portalen (enhet, adress, utgång) |
| `tbl_app` | applikationerna: adress, hemligheter, flaggor och tillåtna adresser |
| `tbl_app_permission` | de behörigheter som varje applikation deklarerar |
| `tbl_group_permission` | vilka behörigheter (eller bara vilka applikationer) varje grupp ger |
| `tbl_app_session` | applikationernas startsessioner och deras härledda tokens |
| `tbl_user_app` | per användare och applikation: notislänkarna och om de godtar notiser |
| `tbl_notification` | notiserna |
| `tbl_visitor` | de dagliga besöksstatistiken |
| `tbl_feedback` | feedbacken som användare skickar från portalen |

De daterade filerna `database-2023-09-15.sql`, `database-2024-03-21.sql`, `database-2024-10-22.sql` och `database-2024-10-30.sql` i förrådet är schemats ändringar över tid, och `database.sql` är det fullständiga skriptet som den första starten kör. Säkerhetskopiera det här schemat som vilken annan PostgreSQL-databas som helst.
