Înregistrarea unei aplicații în OpenPlatform
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) |
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. 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).
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.