# Înregistrarea unei aplicații în OpenPlatform

> Câmpurile unei înregistrări de aplicație în OpenPlatform: adresa, cele două token-uri partajate, indicatorii care decid cum se deschide, permisiunile ei și cine o poate accesa.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: ro
Content-SHA256: 9dd72ba047096fd6a58da7249706008187b3d52e816f8c9ca26ee5fa4ecef1e0
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

O aplicație este o înregistrare pe care administratorul o creează pe ecranul de **configurare** (`/setup/`, API-ul de aplicații al pluginului `setup`). Înregistrarea este contractul dintre OpenPlatform și aplicația ta: unde trăiește, cum își dovedesc cele două cine sunt și ce poate face utilizatorul în ea. Schema înregistrării este `@Apps` în `plugins/setup/schemas/apps.js`.

| Câmp | Obligatoriu | Semnificație |
|---|---|---|
| `name` | da | numele afișat în portal |
| `url` | da | adresa pe care o deschide OpenPlatform |
| `reqtoken` | da | un secret pe care îl alegi tu și pe care **îl cunosc ambele părți**: semnează cererea |
| `restoken` | da | un al doilea secret, tot partajat: aplicația îl folosește pentru a-și semna răspunsul |
| `color`, `icon` | nu | cum arată aplicația în portal |
| `meta` | nu | o adresă (URL) care returnează metadatele aplicației: ecranul de configurare le poate descărca (`Apps/download`) pentru a completa înregistrarea |
| `sortindex` | nu | ordinea în listă (o aplicație nouă merge la sfârșit) |
| `notifications` | nu | dacă aplicația poate trimite notificări |
| `isexternal` | nu | aplicația **nu** se deschide în cadrul portalului: răspunsul către aplicație spune `iframe: false` |
| `isbookmark` | nu | aplicația este un simplu link: fără schimb de token-uri, doar un identificator de sesiune în query string |
| `isnewtab` | nu | deschide-o într-o filă nouă a browserului în loc de cadrul portalului (setarea `newtab` face asta pentru toate aplicațiile) |
| `isscrollbar` | nu | cadrul aplicației din portal își păstrează bara de derulare (portalul setează `scrolling` la `yes` sau `no`) |
| `isdisabled` | nu | oprește-o pentru toată lumea: utilizatorul primește "App has been temporary disabled" |
| `permissions` | nu | lista permisiunilor aplicației: fiecare are un `id`, un `name` și un `value` (vezi [grupuri și permisiuni](/en/openplatform/groups-and-permissions/)) |

Tabelul `tbl_app` are și o coloană `allow` ("permite doar anumite adrese IP"): când conține adrese, aplicația poate apela endpoint-urile de protocol ale OpenPlatform doar de la ele. Schema de configurare de mai sus nu o listează, deci este o coloană a bazei de date pe care o completezi direct.

## Cele două token-uri

`reqtoken` și `restoken` nu sunt trimise niciodată browserului. OpenPlatform derivă din ele, pentru fiecare lansare, valorile care călătoresc: token-ul din adresa aplicației și antetul pe care îl trimite înapoi aplicația. Derivarea este în [cum se conectează o aplicație](/en/openplatform/how-an-app-connects/). Folosește valori aleatorii lungi și o pereche diferită pentru fiecare aplicație.

## Eliminare și modificare

O aplicație nu este niciodată ștearsă din tabel: eliminarea ei (`Apps/remove`) setează `isremoved` și data eliminării și golește cache-ul utilizatorilor care o aveau, iar `isdisabled` o oprește fără a o elimina. Când se schimbă adresa platformei (setarea `url`), OpenPlatform golește linkurile de notificare ale fiecărui utilizator și șterge sesiunile de aplicație deschise, deoarece ambele conțin acea adresă ([setări și baza de date](/en/openplatform/settings-and-database/)).

Amintește-ți regula din README: o aplicație înregistrată nu este vizibilă pentru nimeni până când nu i se atribuie un grup.
