Eine Anwendung in OpenPlatform registrieren
Eine Anwendung ist ein Datensatz, den der Administrator im Setup-Bildschirm anlegt (/setup/, die Apps-API des Plugins setup). Der Datensatz ist der Vertrag zwischen OpenPlatform und Ihrer Anwendung: wo sie läuft, wie beide beweisen, wer sie sind, und was der Benutzer darin tun darf. Das Schema des Datensatzes ist @Apps in plugins/setup/schemas/apps.js.
| Feld | Pflicht | Bedeutung |
|---|---|---|
name | ja | der im Portal angezeigte Name |
url | ja | die Adresse, die OpenPlatform öffnet |
reqtoken | ja | ein Geheimnis, das Sie wählen und das beide Seiten kennen: Es signiert die Anfrage |
restoken | ja | ein zweites, ebenfalls gemeinsames Geheimnis: Die Anwendung signiert damit ihre Antwort |
color, icon | nein | wie die Anwendung im Portal aussieht |
meta | nein | eine Adresse (URL), die die Metadaten der Anwendung liefert: Der Setup-Bildschirm kann sie herunterladen (Apps/download), um den Datensatz auszufüllen |
sortindex | nein | die Reihenfolge in der Liste (eine neue Anwendung kommt ans Ende) |
notifications | nein | ob die Anwendung Benachrichtigungen senden darf |
isexternal | nein | die Anwendung wird nicht im Rahmen des Portals geöffnet: Die Antwort an die Anwendung enthält iframe: false |
isbookmark | nein | die Anwendung ist ein einfacher Link: kein Token-Handshake, nur eine Sitzungskennung in der Query-String |
isnewtab | nein | in einem neuen Browser-Tab statt im Rahmen des Portals öffnen (die Einstellung newtab tut das für jede Anwendung) |
isscrollbar | nein | der Rahmen der Anwendung im Portal behält seine Bildlaufleiste (das Portal setzt scrolling auf yes oder no) |
isdisabled | nein | für alle abschalten: Der Benutzer erhält "App has been temporary disabled" |
permissions | nein | die Liste der Berechtigungen der Anwendung: Jede hat eine id, einen name und einen value (siehe Gruppen und Berechtigungen) |
Die Tabelle tbl_app hat außerdem eine Spalte allow ("erlaubt nur bestimmte IP-Adressen"): Enthält sie Adressen, kann die Anwendung die Protokoll-Endpunkte von OpenPlatform nur von dort aufrufen. Das obige Setup-Schema führt sie nicht auf, es ist also eine Datenbankspalte, die Sie direkt füllen.
Die beiden Tokens
reqtoken und restoken werden nie an den Browser gesendet. OpenPlatform leitet daraus für jeden Start die Werte ab, die unterwegs sind: das Token in der Adresse der Anwendung und den Header, den die Anwendung zurückschickt. Die Ableitung steht unter Wie sich eine App verbindet. Verwenden Sie lange Zufallswerte und für jede Anwendung ein anderes Paar.
Entfernen und Ändern
Eine Anwendung wird nie aus der Tabelle gelöscht: Beim Entfernen (Apps/remove) werden isremoved und das Datum der Entfernung gesetzt und der Cache der Benutzer, die sie hatten, geleert; isdisabled schaltet sie ab, ohne sie zu entfernen. Ändert sich die Adresse der Plattform (die Einstellung url), leert OpenPlatform die Benachrichtigungslinks aller Benutzer und löscht die offenen Anwendungssitzungen, da beide diese Adresse enthalten (Einstellungen und Datenbank).
Denken Sie an die Regel der README: Eine registrierte Anwendung ist für niemanden sichtbar, bis ihr eine Gruppe zugewiesen wird.