Self-Hosted Backend: Appwrite 1.9 bringt MongoDB

Appwrite 1.9 bringt MongoDB-Support, ressourcenbasierte API-Keys und Query-Filter fĂĽr Realtime-Subscriptions. Hinzu kommen Performance- und Compute-Updates.

vorlesen Druckansicht
Appwrite Dashboard mit ProjektĂĽbersicht, Bandbreitendiagramm und Statistiken fĂĽr Datenbanken und Authentifizierung.

(Bild: Appwrite)

Lesezeit: 4 Min.
Inhaltsverzeichnis

Appwrite 1.9.0 ist da und unterstĂĽtzt nun MongoDB, feinere Sicherheitsmechanismen und gezieltere Realtime-Funktionen. Hinzu kommen ein ausgebauter Compute-Bereich und zahlreiche Performance-Verbesserungen.

Bei Appwrite handelt es sich um eine quelloffene Backend-as-a-Service-Plattform (BaaS), die Authentifizierung, Datenbank, Storage, Serverless Functions und Realtime-Kommunikation in einem Paket fĂĽr den Eigenbetrieb bĂĽndelt. Damit richtet sie sich an Teams, die mehr Kontrolle ĂĽber ihre Backend-Infrastruktur behalten wollen, als es klassische Cloud-BaaS-Dienste erlauben.

Die zentrale Neuerung: Appwrite unterstützt jetzt MongoDB als Datenbank-Backend. Damit steht neben dem bisherigen TablesDB-Modell erstmals eine dokumentenorientierte Alternative bereit. Entwickler können so dynamische Datenstrukturen abbilden – etwa Event- oder Log-Daten mit variierenden Feldern –, ohne vorher ein Schema anzupassen.

Ferner ergänzt Version 1.9.0 neue String-Typen wie mediumtext und longtext, unterstützt 64-Bit-Integer und zeigt den Speicherverbrauch einzelner Collections an. Dokumentlisten lassen sich zudem mit konfigurierbarer TTL cachen, was bei häufig abgefragten Datenbeständen die Datenbanklast senkt.

Administratoren erhalten mehrere neue Schnittstellen: Eine Webhooks-API verwaltet Ereignisbenachrichtigungen zentral. Eine Schedules-API gibt Einblick in geplante Aufgaben und stellt Steuerungsfunktionen bereit. Neu ist auch eine Nutzer-Impersonation (User Impersonation). Damit kann sich ein Admin als ein bestimmter Nutzer anmelden, um Fehler direkt aus dessen Perspektive nachzuvollziehen. Projektvariablen lassen sich jetzt gezielt als öffentlich markieren, etwa um Konfigurationswerte ans Frontend durchzureichen.

Die Realtime-Schnittstelle arbeitet nun gezielter. Clients definieren Subscriptions mit Query-Filtern und empfangen nur noch passende Ereignisse statt sämtlicher Änderungen in einer Collection. Ein Client könnte so ausschließlich Updates für eine bestimmte Nutzer-ID abonnieren. Appwrite liefert außerdem Metriken zu Verbindungen, Nachrichtenaufkommen und Bandbreite.

API-Keys lassen sich ab Version 1.9.0 ressourcenbezogen einschränken. Ein Key kann etwa Lesezugriff auf den Storage erhalten, ohne gleichzeitig die Benutzerverwaltung freizuschalten. JWT-Laufzeiten sind individuell konfigurierbar. Verbesserungen bei CORS, OAuth und Multi-Domain-Support erleichtern Setups mit mehreren Frontends.

Im Serverless-Bereich trennt Appwrite jetzt Build- und Runtime-Ressourcen. Wer rechenintensive Builds mit einer schlanken Runtime kombinieren muss, kann beides unabhängig dimensionieren. Eigene Startkommandos, automatisches Aufräumen alter Deployments und verwaister Ausführungen sowie saubere Worker-Shutdowns sollen den Betrieb stabiler machen.

Videos by heise

Dateien lassen sich jetzt einzeln mit VerschlĂĽsselungs- und Komprimierungsparametern versehen. Listenabfragen geben den gesamten Speicherverbrauch zurĂĽck. Neue Migrationstools ĂĽbertragen Sites und Messaging-Ressourcen zwischen Appwrite-Instanzen. Hinzu kommen ein offizielles Rust-SDK, ein Plugin fĂĽr die KI-gestĂĽtzte IDE Cursor sowie ein Agent Skills SDK, das die Integration von KI-Agenten erleichtern soll.

Unter der Haube haben die Entwickler die Architektur auf die modulare Utopia-Plattform umgestellt. Der bisherige Proxy-Container entfällt, Traefik wird direkt angesprochen. Sparse Updates senden nur noch geänderte Attribute, Shared-Memory-Caching via Swoole Tables ersetzt den bisherigen Pro-Worker-Cache und vorverarbeitete Queries beschleunigen häufig genutzte Pfade. Swoole ist eine PHP-Erweiterung für asynchrone Programmierung, die hier für effizientes Shared-Memory-Caching genutzt wird. Diverse Memory Leaks in der Webhook-, Statistik- und Event-Verarbeitung haben die Entwickler behoben.

Appwrite 1.9.0 setzt ein Upgrade von Version 1.8.1 voraus und erfordert eine Datenbankmigration. Diese lässt sich über den neuen Web-Installer, das CLI-Flag --migrate oder manuell per docker compose exec appwrite migrate anstoßen.

Alle Informationen zu Appwrite 1.9.0 finden sich in den Release Notes auf GitHub.

(fo)