Appwrite 2.5: Passkeys und Intervall-Functions im selbst gehosteten Backend
Appwrite ist ein quelloffenes Backend für eigene Apps: Authentifizierung, Datenbanken, Dateispeicher und Functions hinter APIs und SDKs, auch zum Selbsthosten per Docker Compose. Mit Version 2.5 kommen Mitte Oktober 2026 Passkeys und ein neuer Zeitplan für Functions. heise berichtete am 14. Oktober, die Release-Notes zu 2.5.0 enthalten die Details.
Passkeys pro Projekt
In der Konsole lassen sich Passkeys jetzt für ein Projekt aktivieren. Für Webanwendungen wählt man eine Domain aus den hinterlegten Web-Plattformen, bei nativen Android-Apps läuft die Zuordnung über das Signierzertifikat. Die Release-Notes führen dafür eine neue Spalte für Android-Fingerprints in der Datenbank ein.
Eine Einschränkung betrifft die Konsole selbst. Mit Konsolenversion 1.2.74 gibt es beim Anmelden an der selbst gehosteten Konsole nur noch E-Mail-Adresse und Passwort, die Schaltflächen für OAuth und Passkey entfallen. Passkeys gelten also für die Nutzer der eigenen App, nicht für den Admin-Login. Wer dort bisher OAuth benutzt hat, sollte vor dem Upgrade ein Passwort-Konto bereithalten.
Functions im Minutenabstand
Functions lassen sich künftig im festen Abstand von N Minuten starten, ohne Cron-Ausdruck. Appwrite ordnet jeder Function anhand ihrer ID einen festen Zeitpunkt im Intervall zu. Stündliche Jobs beginnen dadurch nicht alle zur vollen Stunde, was Lastspitzen glättet. Wer auf einen Lauf um genau 00:00 Uhr angewiesen ist, bleibt beim Cron-Ausdruck. Die Einstellung liegt unter Settings, Executions.
Weitere Änderungen laut heise und Release-Notes:
- Der Executor wechselt von 0.29.0 auf 1.1.2. Nicht erfasste Runtimes werden beim Start entfernt, was zuvor zu Neustartschleifen führen konnte.
- Der Usage-Worker bündelt Schreibvorgänge in das mitgelieferte ClickHouse, statt pro Aufruf einen INSERT zu senden.
- Bei TablesDB liefert getRow nach einem Transaktions-Commit den gespeicherten Datensatz, nicht mehr eine veraltete Fassung oder einen 404.
- Für PostgreSQL kommt ein Trigramm-Index für startsWith, contains und endsWith. Andere Backends weisen diesen Indextyp zurück.
- Operatoren auf verschlüsselten Spalten antworten mit HTTP 400, statt den gespeicherten Wert zu beschädigen.
Upgrade von 2.4
Der Installer behält laut heise die Datei docker-compose.override.yml, eigene HTTP- und HTTPS-Ports und die HTTPS-Einstellung. Bei --use-existing-config muss man das Executor-Image selbst auf openruntimes/executor:1.1.2 stellen, sonst bleibt der alte Executor im Betrieb. Beim Start des neuen Executors werden Runtime-Container entfernt und starten bei der nächsten Ausführung kalt. Die erste Ausführung nach dem Upgrade dürfte deshalb länger dauern.
Die Release-Notes führen keine als Breaking Change markierte Änderung auf ("Removed: Nothing"). Trotzdem gibt es zwei Dinge, die man vor dem Upgrade wissen sollte: den geänderten Konsolen-Login und die Lücken beim Projektumzug.
Projekte umziehen
Wer ein einzelnes Projekt auf eine andere Installation oder in die Appwrite-Cloud schiebt, verliert nach den Release-Notes Passkey-Richtlinie, Richtlinie zur Passwortrotation und Android-Fingerprints. Das alles muss am Ziel neu eingestellt werden. Team-Mitgliedschaften erhalten neue IDs, eigene Mitgliedschafts-IDs bleiben nicht erhalten. Wer Mitgliedschafts-IDs in eigenem Code speichert, prüft das vor dem Umzug.
Vor dem Produktiveinsatz lohnt ein Lauf der Migration in einer Kopie, zumal die Laufzeit mit der Anzahl der Projekte wächst.
Weiterführende Quellen
- Appwrite: Passkeys für die eigene App mit selbst gehostetem Backend (heise, 14.10.2026): Passkeys, Functions, Upgrade
- Appwrite 2.5.0, Release-Notes: Migration, bekannte Einschränkungen
- Simple Icons, appwrite.svg: Logo (CC0)
Wie aktualisiert man eine selbst gehostete Appwrite-Instanz von 2.4 auf 2.5?+
Laut Release-Notes startet man den Installer mit dem Einstiegspunkt upgrade und führt danach docker compose exec appwrite migrate aus. Vorher wird ein Backup empfohlen. Wer --use-existing-config nutzt, setzt das Executor-Image von Hand auf openruntimes/executor:1.1.2.
Was ändert sich bei den Functions?+
Eine Function kann alle N Minuten laufen, statt über einen Cron-Ausdruck. Appwrite legt anhand der Function-ID einen festen Zeitpunkt im Intervall fest, deshalb starten stündliche Jobs nicht alle um :00. Das Intervall wird im Reiter Settings unter Executions gesetzt.
Welche Daten gehen beim Umzug eines einzelnen Projekts verloren?+
Nach den Release-Notes werden Passkey-Richtlinie, Richtlinie zur Passwortrotation und Android-Zertifikats-Fingerprints beim Projektumzug nicht übernommen und müssen am Ziel neu gesetzt werden. Team-Mitgliedschaften bekommen neue IDs.
senn-tech