# Registrace aplikace v OpenPlatform

> Pole záznamu aplikace v OpenPlatform: adresa, dva sdílené tokeny, příznaky určující způsob otevření, její oprávnění a kdo se k ní dostane.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: cs
Content-SHA256: 745093b648ee22fe86ee350fd9efda0e419d6b64bad450788257d0e5a50ef91c
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

Aplikace je záznam, který správce vytvoří na obrazovce **nastavení** (`/setup/`, API aplikací pluginu `setup`). Záznam je smlouvou mezi OpenPlatform a vaší aplikací: kde žije, jak si navzájem dokazují, kdo jsou, a co v ní smí uživatel dělat. Schéma záznamu je `@Apps` v `plugins/setup/schemas/apps.js`.

| Pole | Povinné | Význam |
|---|---|---|
| `name` | ano | název zobrazený v portálu |
| `url` | ano | adresa, kterou OpenPlatform otevírá |
| `reqtoken` | ano | tajemství, které zvolíte a které **znají obě strany**: podepisuje požadavek |
| `restoken` | ano | druhé tajemství, také sdílené: aplikace jím podepisuje svou odpověď |
| `color`, `icon` | ne | jak aplikace vypadá v portálu |
| `meta` | ne | adresa (URL), která vrací metadata aplikace: obrazovka nastavení je může stáhnout (`Apps/download`) a vyplnit záznam |
| `sortindex` | ne | pořadí v seznamu (nová aplikace jde na konec) |
| `notifications` | ne | zda aplikace smí posílat oznámení |
| `isexternal` | ne | aplikace se **neotevírá** v rámu portálu: odpověď aplikaci obsahuje `iframe: false` |
| `isbookmark` | ne | aplikace je obyčejný odkaz: bez výměny tokenů, pouze identifikátor relace v řetězci dotazu |
| `isnewtab` | ne | otevře ji v nové kartě prohlížeče místo rámu portálu (nastavení `newtab` to dělá pro každou aplikaci) |
| `isscrollbar` | ne | rám aplikace v portálu si ponechá posuvník (portál nastaví `scrolling` na `yes` nebo `no`) |
| `isdisabled` | ne | vypne ji pro všechny: uživatel dostane "App has been temporary disabled" |
| `permissions` | ne | seznam oprávnění aplikace: každé má `id`, `name` a `value` (viz [skupiny a oprávnění](/en/openplatform/groups-and-permissions/)) |

Tabulka `tbl_app` má také sloupec `allow` ("povoluje pouze konkrétní adresy IP"): když obsahuje adresy, aplikace může volat endpointy protokolu OpenPlatform pouze z nich. Výše uvedené schéma nastavení jej neuvádí, takže jde o sloupec databáze, který vyplníte přímo.

## Dva tokeny

`reqtoken` a `restoken` se nikdy neposílají do prohlížeče. OpenPlatform z nich při každém spuštění odvozuje hodnoty, které putují: token v adrese aplikace a hlavičku, kterou aplikace posílá zpět. Odvození je v [jak se aplikace připojuje](/en/openplatform/how-an-app-connects/). Používejte dlouhé náhodné hodnoty a pro každou aplikaci jiný pár.

## Odstranění a změna

Aplikace se z tabulky nikdy nemaže: její odstranění (`Apps/remove`) nastaví `isremoved` a datum odstranění a vymaže mezipaměť uživatelů, kteří ji měli, a `isdisabled` ji vypne bez odstranění. Když se změní adresa platformy (nastavení `url`), OpenPlatform vymaže odkazy oznámení každého uživatele a odstraní otevřené relace aplikací, protože obojí obsahuje tuto adresu ([nastavení a databáze](/en/openplatform/settings-and-database/)).

Pamatujte na pravidlo z README: registrovaná aplikace není pro nikoho viditelná, dokud jí nepřiřadíte skupinu.
