Es ist heiß draußen, und kaum jemand sitzt am Rechner. Zumindest kann es einem so vorkommen. Wir nutzen das Sommerloch für einige Umbauarbeiten. Heute wird das Update lang! Zuerst einige Infos zur API, dann die gewohnten Updates.

Wie schon ein paarmal angedeutet bauen wir die Verwaltung seit einiger Zeit von „normalen“ HTML-Seiten auf eine Single-Page Application (SPA) um. Diese Single-Page Application basiert auf React.js (einem Javascript-Framework) und konsumiert nur noch die API, welche wir gleichzeitig mit der OpenAPI-Spezifikation dokumentieren. Das hat unter anderem die folgenden Vorteile:

  • wir haben endlich eine vernünftige API
  • die API hat sofort mindestens einen Konsumenten und erhält dementsprechend genug Ressourcen
  • die Trennung von Frontend- und Backend-Code ist „schärfer“
  • die Entwicklung in React hat eine hohe Produktivität, Code lässt sich häufig sehr einfach wiederverwenden
  • unsere bestehenden React-Komponenten können wir theoretisch auch mit React Native für iOS und Android-Apps nutzen

Die Dokumentation der API steckt leider noch ein wenig in den Kinderschuhen – das liegt aber mehr an der Komplexität von Tools wie Swagger-UI bzw. Swagger-Codegen. Wenn es Vorschläge gibt, welches Tools eine OpenAPI 3-Spezifikation schön und komfortabel anzeigen können: bitte her damit!

Aktueller Stand der API

Derzeit sind nicht alle API-Endpunkte dokumentiert. Die Dokumentation ist teilweise deutlich aufwändiger als die API selber, wer hätte das gedacht. Der aktuelle Stand der API-Dokumentation lässt sich im OpenAPI Viewer ansehen. Die Spezifikation als JSON-Datei ist derzeit unter https://www.lima-city.de/docs/lima-city_1.0.0-oas3.json erreichbar.

Folgende Ressourcen sind derzeit dokumentiert und können per API verwaltet werden:

  • PHP-Error-Log (auslesen)
  • PHP-Version (auslesen, ändern)
  • E-Mail-Adressen und Postfächer (alles was per Verwaltung möglich ist, bis auf den Import)
  • WordPress-Seiten (alles)
  • Memcache (alles)
  • SSH-Keys (erstellen, auflisten)

Weitere Änderungen neben der API

Aber die Umbauten an der API waren nicht das einzige, was sich getan hat.

Verwaltung:

  • Verbesserung: das E-Mail-Menü ist nun vollständig auf React umgebaut
  • Verbesserung: in der Postfach-Detailansicht wird der belegte Speicherplatz und die Anzahl der E-Mails im Postfach angezeigt
  • Bugfix: wenn ein Formular abgesendet wurde und es trat ein Netzwerk-Fehler auf (Connection timed out, Network unreachable), und das Formular wurde erneut abgesendet ohne dass ein Fehler auftrat, wurde am Endes des Formulars unter dem Absenden-Button eine „0“ angezeigt
  • Bugfix: der E-Mail-Import ignoriert nun E-Mails in Spam-Ordnern. Spam-E-Mails konnten wegen eines Fehlers („Cannot APPEND to a Spam Folder“) nicht importiert werden. Nach 50 E-Mails brach imapsync den Import ab. Es sind nun keine Workarounds wie das Leeren des Spam-Ordners vor dem Import mehr nötig.

Reseller-Menü (Agenturen):

  • Bugfix: wenn ein Reseller in einen Kunden-Account wechselt und sich dann ausloggt wurde danach bis zum Löschen der Cookies auf allen Seiten ein „Fehler 404“ angezeigt
  • Bugfix: der FTP-Login war für neu angelegte Kunden nicht möglich, sofern der Kunde noch kein Passwort gesetzt hat. Jetzt ist der FTP-Login auch für Accounts, in die niemals ein Login mit Passwort stattfindet, möglich.

Infrastuktur:

  • auf der „Webseite inaktiv“-Fehlerseite wird nun die Request ID angezeigt, damit wir einfacher herausfinden können, welche Seite inaktiv ist (wenn die Fehlermeldung z.B. von einem Proxy durchgeleitet wird, der den Hostnamen verschleiert)
  • die E-Mail-Postfächer aktualisieren nun regelmäßig (alle 4 Stunden) den belegten Speicherplatz
  • die PHP-Extension XML-RPC wurde hinzugefügt
  • der Change des innodb_large_prefix und die Aktivierung der Barracuda Storage Engine in der MySQL-Konfiguration wurde umgesetzt (siehe Blog von letzter Woche, Eintrag auf der Status-Seite)

Es gab natürlich noch jede Menge anderer Änderungen. Von Verbesserungen am RAID-Monitoring für Server mit Adaptec-Controllern über Fixes bei Tests, die wegen Timings fehlschlagen (der Test dauert eine Sekunde länger als normal und schlägt fehl) bis hin zu neuen Hilfe-Seiten, Überarbeitungen in der Hilfe und Anpassungen an den und Erweiterungen der API-Rollen (siehe Update letzte Woche) ist alles dabei.

So viel zu dieser Woche, in der nächsten Woche kommt sicher einiges mehr an API-Doku, Verwaltung und Reseller-System. Wenn bis dahin Fragen, Anregungen oder Wünsche auftauchen ist der Support immer gerne dafür da. Und ich mache jetzt bis einschließlich Montag Urlaub in Berlin und besuche das PUBG Global Invitational 2018. Wer mich findet (ich trage bestimmt ein lima-city-T-Shirt oder -Sweatshirt), dem gebe ich einen aus 😉