# Registrácia aplikácie v OpenPlatform

> Polia záznamu aplikácie v OpenPlatform: adresa, dva zdieľané tokeny, príznaky, ktoré rozhodujú o spôsobe otvorenia, jej oprávnenia a kto sa k nej dostane.

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

Aplikácia je záznam, ktorý správca vytvorí na obrazovke **nastavení** (`/setup/`, API aplikácií pluginu `setup`). Záznam je zmluvou medzi OpenPlatform a vašou aplikáciou: kde žije, ako si navzájom dokazujú, kto sú, a čo v nej smie používateľ robiť. Schéma záznamu je `@Apps` v `plugins/setup/schemas/apps.js`.

| Pole | Povinné | Význam |
|---|---|---|
| `name` | áno | názov zobrazený v portáli |
| `url` | áno | adresa, ktorú OpenPlatform otvára |
| `reqtoken` | áno | tajomstvo, ktoré si zvolíte a ktoré **poznajú obe strany**: podpisuje požiadavku |
| `restoken` | áno | druhé tajomstvo, tiež zdieľané: aplikácia ním podpisuje svoju odpoveď |
| `color`, `icon` | nie | ako aplikácia vyzerá v portáli |
| `meta` | nie | adresa (URL), ktorá vráti metadáta aplikácie: obrazovka nastavení si ich môže stiahnuť (`Apps/download`) a vyplniť záznam |
| `sortindex` | nie | poradie v zozname (nová aplikácia ide na koniec) |
| `notifications` | nie | či aplikácia smie posielať oznámenia |
| `isexternal` | nie | aplikácia sa **neotvára** v ráme portálu: odpoveď aplikácii obsahuje `iframe: false` |
| `isbookmark` | nie | aplikácia je obyčajný odkaz: bez výmeny tokenov, iba identifikátor relácie v reťazci dotazu |
| `isnewtab` | nie | otvorí ju v novej karte prehliadača namiesto rámu portálu (nastavenie `newtab` to robí pre každú aplikáciu) |
| `isscrollbar` | nie | rám aplikácie v portáli si ponechá posuvník (portál nastaví `scrolling` na `yes` alebo `no`) |
| `isdisabled` | nie | vypne ju pre všetkých: používateľ dostane "App has been temporary disabled" |
| `permissions` | nie | zoznam oprávnení aplikácie: každé má `id`, `name` a `value` (pozri [skupiny a oprávnenia](/en/openplatform/groups-and-permissions/)) |

Tabuľka `tbl_app` má aj stĺpec `allow` ("povoľuje iba konkrétne adresy IP"): keď obsahuje adresy, aplikácia môže volať endpointy protokolu OpenPlatform iba z nich. Vyššie uvedená schéma nastavení ho neuvádza, takže ide o stĺpec databázy, ktorý vyplníte priamo.

## Dva tokeny

`reqtoken` a `restoken` sa nikdy neposielajú do prehliadača. OpenPlatform z nich pri každom spustení odvodzuje hodnoty, ktoré putujú: token v adrese aplikácie a hlavičku, ktorú aplikácia posiela späť. Odvodenie je v [ako sa aplikácia pripája](/en/openplatform/how-an-app-connects/). Používajte dlhé náhodné hodnoty a pre každú aplikáciu iný pár.

## Odstránenie a zmena

Aplikácia sa z tabuľky nikdy nemaže: jej odstránenie (`Apps/remove`) nastaví `isremoved` a dátum odstránenia a vymaže vyrovnávaciu pamäť používateľov, ktorí ju mali, a `isdisabled` ju vypne bez odstránenia. Keď sa zmení adresa platformy (nastavenie `url`), OpenPlatform vymaže odkazy oznámení každého používateľa a odstráni otvorené relácie aplikácií, pretože obe obsahujú túto adresu ([nastavenia a databáza](/en/openplatform/settings-and-database/)).

Pamätajte na pravidlo z README: registrovaná aplikácia nie je pre nikoho viditeľná, kým jej nepriradíte skupinu.
