Admin Page Für Backend-Benutzer können eigenständige Seiten innerhalb der Verwaltung zur Verfügung gestellt werden. Das entspricht den bisherigen "Plugin-Seiten" auf Projektebene, die allerdings direkt im Backend als normale Menüpunkte angelegt wurden. Admin Pages stehen in allen Projekten zur Verfügung und beziehen ihren Inhalt aus der ZIP-Datei des Plugins, siehe zu dieser Funktionsweise auch die Static Content Extension. fun registerAdminPage(info: AdminPageInfo) AdminPageInfo besteht aus  id,  title,  staticPath,  handler und  guard.  id ist eine frei wählbare ID, die über alle Admin Pages eines Plugins hinweg eindeutig sein muss. Es ist kein Problem, wenn mehrere Plugins eine Admin Page mit derselben ID bereitstellen, da zum Ansprechen einer Admin Page auch die  id des Plugins herangezogen wird. title ist der Titel, wie er im Verwaltungsmenü auftaucht.  staticPath ist der Unterordner im  static Ordner des Plugin-ZIPs, aus dem die Dateien ausgeliefert werden. Der optionale Wert  handler ist ein  RequestHandler, der aufgerufen wird, falls eine Datei angefordert wird, die nicht existiert. Hiermit können die Actions der bisherigen Plugin-Seiten nachgebildet werden. Der optionale Wert  guard ist ein  StaticContentHandler.Guard, wie er auch bei Static Content verwendet wird. Falls definiert, wird die  intercept Methode von  guard in folgenden Fällen mit diesen Werten aufgerufen: resource="" - um zu prüfen, ob die Admin Page dem Backend-Benutzer in der Navigation angezeigt werden soll oder nicht. Wird  true zurückgegeben, taucht die Admin Page in der Navigation nicht auf. resource="index.html",  resource="assets/style.css",  resource="dynamic/do-something-action" - um zu prüfen, ob der Request auf diese Ressource erlaubt werden soll oder nicht. Wird  true zurückgegeben, erfolgt die Auslieferung der Ressource nicht, ebenfalls wird weder  handler aufgerufen noch eine eigene Fehlermeldung generiert. Beispiel​ In der Pluginhauptklasse wird die Admin Page registriert. In der Plugin-ZIP müssen die Dateien dementsprechend im Ordner static/import-ma/ liegen. override fun load() { registerAdminPage( AdminPageInfo( "import-mitarbeiter", // id "Mitarbeiterimport", // title "import-ma", // staticPath null, // handler null // guard ) ) } Im Backend stellt sich die Admin Page im Menü wie folgt dar.