Monat: Juli 2018

Updates KW 30

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 😉

Updates KW29

In dieser Woche überwiegen leider die unfertigen Dinge. Im git sieht man den Wald vor lauter Branch-Bäumen nicht (okay, ich lege 50 Cent in die Kasse für schlechte Wortspiele). Aber mindestens zwei große Themenbereiche, in denen sich etwas getan hat, gibt es:

Verwaltung:

  • der Zugriff von API-Keys wird nicht mehr durch einzelne Berechtigungen, sondern durch Rollen geregelt. Diese Rollen sind üblicherweise „$resource.reader“, „$resource.editor“ und „$resource.admin“, wobei $resource für alle möglichen Ressourcen stehen kann („ftp_accounts“, „mailboxes“, „cloud_vps“, etc). Die Reader-Rolle kann, wie der Name schon sagt, nur lesen, Editoren können lesen und ändern, aber nicht erstellen oder löschen. Admins haben Vollzugriff. Der Vorteil ist, dass wir die Aktionen, welche eine Rolle ausführen darf, so flexibler definieren können.
  • die API-Key-Verwaltung wurde überarbeitet
  • für API-Keys wird nun der Zeitpunkt der letzten Verwendung gespeichert
  • die Hilfe wurde um einen Artikel mit Informationen zur API ergänzt, wenngleich der Artikel ohne Liste der API-Endpoints noch ziemlich unvollständig ist (hey, Swagger…!)
  • zxcvbn.js wurde in ein separates Javascript-File verschoben, das nur geladen wird, wenn ein Passwort-Input auf der Seite angezeigt wird. Vorher wurde es immer geladen, wenn ein Passwort-Input auf der Seite vorhanden war, egal ob es angezeigt wurde oder nicht.

Reseller-Verwaltung:

  • die Webseiten-Liste gibt nun auch die PHP-Version der Webseite zurück

Webhosting:

  • auf einem Teil der MySQL-Server ist seit heute das InnoDB-File-Format „Barracuda“ testweise aktiviert (MySQL-Dokumentation). Damit werden nun auch die „COMPRESSED“- und „DYNAMIC“-Zeilen-Formate für InnoDB unterstützt. Zudem ist die Option „large prefix“ nun aktiviert. Sofern der Test in den nächsten Tagen keine Probleme aufwirft rollen wir die Änderung auf alle MySQL-Server aus. Ein Beispiel für Software, welche diese Einstellungen benötigt, ist Moodle.

Nächste Woche wird die Liste wohl um einiges länger, da wie erwähnt eine ganze Reihe von Änderungen an der Verwaltung (Datenbanken, E-Mail-Verwaltung, Zahlungsmethoden, …) momentan auf Q&A und letzten Feinschliff warten, bevor sie online gehen können. Aber dazu nächste Woche mehr. Und bis dahin wünsche ich ein schönes Wochenende!

Updates KW28

Was für eine Woche! Unser Mitbewerber Domainfactory wurde gehackt, nachdem sie ihre DSGVO-Umsetzung versaut und Kundendaten in einen öffentlichen Feed geloggt haben. Da frage ich mich, wieso man überhaupt einen Kundendatensatz in einer Produktiv-Umgebung in einen Feed loggt. Sowas würde mir nicht einmal in den Sinn kommen. Das ist wirklich ein starkes Stück.

Aber im Gegensatz zur Domainfactory haben wir gute Neuigkeiten:

Verwaltung:

  • die PHP-Fehler-Logs sind nun in der Verwaltung verlinkt
  • Verbesserung: die API-Response für das PHP-Error-Log (/usercp/php_error_log.json) gibt die Uhrzeit des Log-Eintrags in ISO8601 aus
  • Verbesserung: in der Anzeige der PHP-Error-Logs werden „notices“ und „deprecation warning“ nun in einer besser lesbaren Farbe dargestellt
  • Verbesserung: Postleitzahlen müssen nun nur noch eine Ziffer enthalten, nicht mehr vollständig aus Ziffern bestehen (bspw. UK, Niederlande)
  • Verbesserung: für Umzüge von .es-Domains verlangt das System keinen AuthCode mehr
  • Verbesserung: bei Umzügen von Accounts zwischen Webhosting-Servern wird nun ein Live-Status angezeigt
  • Bugfix: bestimmte belegte Domains konnten nicht als Inklusiv-Domains in den Warenkorb gelegt werden, obwohl sie korrekt als Inklusiv-Domains ausgezeichnet waren

Reseller-Verwaltung (Agentur):

  • Single-Sign-In hinzugefügt (ohne Login in den Kunden-Account wechseln)
  • die Domain-Erinnerungen werden zusammengefasst in einer Liste versendet (nur für Domains, die direkt im Reseller-Account liegen)
  • White-Label-Mail-Server hinzugefügt: ssl-secured.email (Webmail, IMAPS, POPS, SMTPS)

Webhosting:

  • sind mehrere gültige SSL-Zertifkate vorhanden wird nun das zuletzt hinzugefügte verwendet

Wir haben noch einiges an Änderungen an unserem Admin-Interface und am Rechnungssystem vorgenommen und ein paar Kleinigkeiten verbessert oder behoben, die aber weniger interessant sind. Und wenn es Wünsche gibt, was hier demnächst stehen soll, nehmen wir per Support gerne Ideen, Verbesserungsvorschläge und Kritik entgegen! Und nun ein schönes Wochenende!

Updates KW27

Nach einer kurzen Pause – man kann auch im Sommer krank werden – habe ich heute endlich wieder Gelegenheit, aktuelle Neuigkeiten anzubringen:

Verwaltung:

  • Die WordPress-Verwaltung ist freigegeben. WordPress-Installationen lassen sich unter „Websites & Domains“ mit einem Klick auf „verwalten“ neben der WordPress-Versionsnummer verwalten.
  • Eine erste Version eines Log-Viewers für PHP-Error-Logs wurde hinzugefügt. Die Verlinkung auf der Fehlerseite und in der Verwaltung folgt, derzeit ist er nur für „Kenner“ erreichbar.
  • Bugfix: der Neukunden-Rabatt wurde bei der Anzeige „nächste Zahlung“ für Webhosting-Pakete in der Verwaltung nicht berücksichtigt (Danke für den Hinweis, Dirk!).

Reseller-Verwaltung (Bildungsträger):

  • Bugfix: beim Anlegen von Schüler-Accounts wurden diese nicht dem ausgewählten Kurs zugeordnet
  • Verbesserung: Kurse können nun, mit allen zugehörigen Accounts, gelöscht werden

Webhosting

  • Wir testen seit kurzem den Tideways-Profiler für Profiling von Kunden-Anwendungen im Rahmen von Support-Tickets – wer gerne wissen möchte, wo seine Anwendung lahmt, kann uns gerne ein Support-Ticket (support@lima-city.de) schreiben.
  • Verbesserung: das Backup- und Restore-System benutzt nun als Standard-Character-Set für MySQL-Backups „utf8mb4“

Natürlich gab es noch Dutzende weiterer Änderungen (u.a. verbesserte Aufräum-Scripte für alte Backups, Anpassungen an Load Balancer Queue Sizes, …), aber die sind weniger spannend. Nächste Woche geht es hier mit einer kleinen Tour durch das WordPress-Tool weiter. Bis dahin wünsche ich ein schönes Wochenende!