# Eine Anwendung in OpenPlatform registrieren

> Die Felder eines Anwendungsdatensatzes in OpenPlatform: Adresse, die beiden gemeinsamen Tokens, die Flags, die bestimmen, wie sie geöffnet wird, ihre Berechtigungen und wer sie erreichen kann.

Framework: openplatform
Product: OpenPlatform (openplatform@5)
Language: de
Content-SHA256: b6182d67f367dd0e53574e763413ea05d1f751de196eff5f2a06d0b5965e2963
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: 
Review: not-recorded

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](/en/openplatform/groups-and-permissions/)) |

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](/en/openplatform/how-an-app-connects/). 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](/en/openplatform/settings-and-database/)).

Denken Sie an die Regel der README: Eine registrierte Anwendung ist für niemanden sichtbar, bis ihr eine Gruppe zugewiesen wird.
