Een toepassing registreren in OpenPlatform
Een toepassing is een record dat de beheerder aanmaakt in het setup-scherm (/setup/, de apps-API van de plugin setup). Het record is het contract tussen OpenPlatform en je toepassing: waar ze woont, hoe de twee bewijzen wie ze zijn en wat de gebruiker erin mag doen. Het schema van het record is @Apps in plugins/setup/schemas/apps.js.
| Veld | Verplicht | Betekenis |
|---|---|---|
name | ja | de naam die in het portaal wordt getoond |
url | ja | het adres dat OpenPlatform opent |
reqtoken | ja | een geheim dat jij kiest en dat beide kanten kennen: het ondertekent het verzoek |
restoken | ja | een tweede geheim, ook gedeeld: de toepassing gebruikt het om haar antwoord te ondertekenen |
color, icon | nee | hoe de toepassing er in het portaal uitziet |
meta | nee | een adres (URL) dat de metagegevens van de toepassing teruggeeft: het setup-scherm kan ze downloaden (Apps/download) om het record in te vullen |
sortindex | nee | de volgorde in de lijst (een nieuwe toepassing komt achteraan) |
notifications | nee | of de toepassing meldingen mag sturen |
isexternal | nee | de toepassing wordt niet geopend binnen het frame van het portaal: het antwoord aan de toepassing bevat iframe: false |
isbookmark | nee | de toepassing is een gewone link: geen tokenhandshake, alleen een sessie-id in de query string |
isnewtab | nee | open ze in een nieuw browsertabblad in plaats van in het frame van het portaal (de instelling newtab doet dat voor elke toepassing) |
isscrollbar | nee | het frame van de toepassing in het portaal behoudt zijn schuifbalk (het portaal zet scrolling op yes of no) |
isdisabled | nee | schakel haar uit voor iedereen: de gebruiker krijgt "App has been temporary disabled" |
permissions | nee | de lijst met rechten van de toepassing: elk heeft een id, een name en een value (zie groepen en rechten) |
De tabel tbl_app heeft ook een kolom allow ("staat alleen specifieke IP-adressen toe"): als ze adressen bevat, kan de toepassing de protocol-endpoints van OpenPlatform alleen vanaf die adressen aanroepen. Het bovenstaande setup-schema noemt haar niet, dus het is een databasekolom die je rechtstreeks invult.
De twee tokens
reqtoken en restoken worden nooit naar de browser gestuurd. OpenPlatform leidt daar bij elke start de waarden uit af die onderweg zijn: het token in het adres van de toepassing en de header die de toepassing terugstuurt. De afleiding staat in hoe een app verbinding maakt. Gebruik lange willekeurige waarden en voor elke toepassing een ander paar.
Verwijderen en wijzigen
Een toepassing wordt nooit uit de tabel gewist: verwijderen (Apps/remove) zet isremoved en de datum van verwijdering, wist de cache van de gebruikers die haar hadden, en isdisabled schakelt haar uit zonder haar te verwijderen. Wanneer het adres van het platform (de instelling url) verandert, wist OpenPlatform de meldingslinks van elke gebruiker en verwijdert de open toepassingssessies, omdat beide dat adres bevatten (instellingen en database).
Onthoud de regel uit de README: een geregistreerde toepassing is voor niemand zichtbaar totdat er een groep aan is toegewezen.