• release

Logto Produkt-Updates

Logto v1.40.0 bringt einen Zeitbereichswähler für Audit-Logs, umfangreichere Webhook-Payloads für Organisationsmitgliedschaften, große Performance-Verbesserungen für große Organisationen und mehrere Verbesserungen für das Selbst-Hosting.

Yijun
Yijun
Developer

Verschwenden Sie keine Wochen mit Benutzerauthentifizierung
Bringen Sie sichere Apps schneller mit Logto auf den Markt. Integrieren Sie Benutzerauthentifizierung in Minuten und konzentrieren Sie sich auf Ihr Kernprodukt.
Jetzt starten
Product screenshot

Logto v1.40.0 ist ein Release zur Verstärkung der Plattform. Es macht Audit-Logs in großem Umfang praktikabel, zeigt dir genau, was sich bei Webhooks zur Organisationsmitgliedschaft geändert hat, beschleunigt Organisationsabfragen bei großen Mandanten und beseitigt einige langwierige Reibungspunkte für selbst gehostete Deployments. Es gibt auch drei neue Connectoren. Hier ist alles Neue.

Audit-Logs, die du tatsächlich eingrenzen kannst

Audit-Logs sind am nützlichsten, wenn gerade etwas passiert ist – aber bisher hat die Konsole ein unbegrenztes Fenster geladen, was bei Mandanten mit sehr großen Log-Mengen langsam wurde.

Mit diesem Release gibt es einen Zeitbereichswähler auf der Seite für Audit-Logs, standardmäßig eingestellt auf die letzten 7 Tage. Es gibt voreingestellte Fenster (Letzte 1 Stunde, Letzte 24 Stunden, Letzte 7 Tage, Letzte 30 Tage) und einen benutzerdefinierten Datumsbereich; ältere Logs bleiben durch das Vergrößern des Fensters zugänglich (#8810).

Im Hintergrund bietet die Management-API jetzt die Abfrageparameter start_time und end_time bei GET /api/logs und GET /api/hooks/{id}/recent-logs (exklusive Grenzen in Unix-Millisekunden), sodass du Log-Abfragen auch programmatisch einschränken kannst (#8806). Für sehr große Mandanten gibt es einen neuen Parameter enableCap=true, der die Zähl-Abfrage bei ca. 10.000 Zeilen abbricht und einen Header Total-Number-Is-Capped: true zurückgibt, was eine schnellere Antwort im Tausch gegen eine exakte Gesamtzahl liefert; die Konsole nutzt dann ein Vorher/Nachher-Layout, wenn das Limit erreicht ist (#8796, #8802). Das Standardverhalten ohne diesen Parameter bleibt unverändert.

Webhooks zu Organisationsmitgliedschaften zeigen dir jetzt, was sich geändert hat

Der Webhook Organization.Membership.Updated hat bisher mitgeteilt, dass sich etwas geändert hat, aber nicht was genau. Jetzt enthält er explizite Delta-Felder — addedUserIds / removedUserIds und addedApplicationIds / removedApplicationIds — über alle Membership-Endpunkte hinweg, plus addedUserIds bei Akzeptieren einer Einladung und Just-in-Time-Provisionierung (E-Mail-Domäne und Enterprise SSO JIT) (#8840).

Das ist vollständig ergänzend und keine Breaking-Änderung: Leere Deltas werden weggelassen, und jedes Array ist bei Massenoperationen auf 5000 Einträge begrenzt (Abgleich via GET /organizations/:id/users oder .../applications, wenn du das überschreitest). Siehe die Webhook-Referenz für das vollständige Datenmodell. Diese Arbeit ersetzt einen früheren Community-Vorschlag – Dank an @chiche84 (#8752).

Während wir im Session-Code waren, hat auch GET /api/my-account/sessions ein isCurrent-Flag für jeden Eintrag erhalten, damit Session-Management-UIs die "Dieses Gerät"-Zeile markieren und vermeiden können, die eigene Session des Anrufers zu widerrufen (#8731).

Organisationen, die auch beim Wachsen schnell bleiben

Einige Änderungen zielen speziell auf Mandanten mit sehr großen Organisationen:

  • GET /organizations/:id/users aggregiert jetzt Rollen über eine LATERAL-Subabfrage, damit das LIMIT die Benutzerliste vor dem Rollen-Lookup beschränkt — anstatt bei jeder paginierten Abfrage das gesamte Join von members × roles zu materialisieren (#8826).
  • Zwei neue sekundäre Indizes beschleunigen umgekehrte Suchen: Einen auf organization_user_relations (tenant_id, user_id), verwendet bei jedem Login und von der Membership-Middleware (#8818), und einen auf organization_role_user_relations (tenant_id, organization_id, user_id), verwendet bei getUserScopes und Rollen-Zuweisungen pro Benutzer (#8819).
  • PUT /organizations/:id/users nutzt ab jetzt eine neue, delta-basierte Abfrage, die nur die tatsächlich geänderten Zeilen schreibt, anstatt bei jedem Aufruf alle Membership-Zeilen zu überschreiben – und Rollen von Mitgliedern, die beim Update bestehen bleiben, werden beibehalten (#8820).

Account Center und Sign-in-Korrekturen

  • Bedingungen bei Anmeldung zu Registrierung. Wenn die Vereinbarungspolitik "Zustimmung per Checkbox nur bei Registrierung erforderlich" ist, wird jetzt beim Anmelden mit nicht registrierter E-Mail oder Telefonnummer und anschließendem "neues Konto erstellen" zuerst die Zustimmung zu den Bedingungen abgefragt – wie bei der separaten Registrierung und Social/SSO-Flows (#8835).
  • Ersteinrichtung des Passworts. Nutzende ohne Passwort, E-Mail oder Telefon können ihr erstes Passwort nun über die Account-API setzen, ohne einen Verifizierungseintrag (#8746).
  • Stille Wieder-Authentifizierung. Bei einem User-Info-Fehler – zum Beispiel nach Nutzerwechsel im selben Browser mit abgelaufenem Zugangstoken – authentifiziert das Account Center mit prompt=none neu, statt sofort zur Login-Maske zu springen, Danke an @taka-guevara (#8785).
  • Saubere Session-Abläufe und Social-Callbacks. Abgelaufene Account Center Sessions leiten ohne Aufflackern des manuellen Anmeldefehlers weiter (#8830), der Social-Link-Callback liest jetzt connectorId korrekt (#8758) und der 2-Schritt-Verifizierungs-Label ist verständlicher (#8792).
  • i18n. Korrektur der chinesischen Übersetzung von "Passkey" in den MFA-Phrasen, Dank an @rotempasharel1 (#8870).

Neue und verbesserte Connectoren

Dieses Release fügt drei Connectoren hinzu und verbessert mehrere weitere – viele davon aus der Community:

  • MailJunky E-Mail-Connector für Transaktions-Auth-E-Mails, beigetragen von @devadarshh (#8638).
  • SMSBao SMS-Connector für nationale SMS-Verifizierung, beigetragen von @wintbiit (#8871).
  • Aliyun SMS-Authentifizierungsdienst Connector, beigetragen von @CertStone (#8385).
  • Aliyun Direct Mail unterstützt jetzt die Konfiguration der Direct-Mail-Region (#8892).
  • WeCom ruft dank zusätzlicher API-Aufrufe detailliertere Nutzerprofile ab, beigetragen von @liyujun-dev (#8191).
  • SMTP auth kann nun ohne user und pass eingesetzt werden, sodass Relays, die per Quelle (z. B. IP/VLAN) autorisieren, ohne gefälschte Zugangsdaten funktionieren (#8888).
  • Connector Kit hat die Erkennung von E-Mail-Branding-URLs verschärft, um Fehlalarme bei Punkt-Abkürzungen zu vermeiden, Dank an @aayushbaluni (#8747).

Für selbst gehostete Nutzer

Einige Änderungen speziell für OSS-Deployments:

Air-gapped Admin-Setup. Die Befehle install und db seed akzeptieren jetzt ein --dapc Flag (Alias --disable-admin-pwned-password-check). Die Standard-Passwortrichtlinie für den Admin-Mandanten aktiviert den Have I Been Pwned Check, der bei jedem Admin-Passwort api.pwnedpasswords.com abfragt — und beim ersten Admin-Sign-up blockiert, falls dieser Endpunkt nicht erreichbar ist. Mit --dapc wird die Richtlinie ohne Breach-Check gesetzt, sodass die Erstregistrierung ohne Netzverbindung funktioniert. (Dank an @darcyYe, #8859)

Admin-Signierschlüssel aus der Datenbank. OSS-Deployments lesen die Admin-Tenant-Signierschlüssel nun direkt aus der Datenbank, wodurch die zusätzliche Host-/DNS-Konfiguration entfällt, mit der der Logto-Container vorher seine eigene Admin-OIDC-Konfiguration über den externen Endpoint geholt hat (#8869).

Migration erforderlich. v1.40.0 bringt Änderungen am Datenbankschema (die neuen Organisations-Relation-Indizes und zusätzliche interne Spalten). Nach dem Upgrade der Version führe bitte den Schemaänderungs-Schritt durch, bevor du den Server startest. Siehe die Upgrade-Anleitung.

Loslegen

Bereit zum Upgrade? Sieh dir unsere Upgrade-Anleitung für eine Schritt-für-Schritt-Erklärung an.

Für die vollständige Änderungsliste siehe die GitHub-Release-Seite.

Hast du Fragen oder Feedback? Tritt unserem Discord bei oder eröffne ein Issue auf GitHub.