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.
YijunDeveloper
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.
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 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).
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).
SMTPauth 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).
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.