Logto productupdates
Logto v1.40.0 brengt een tijdsbereik-kiezer voor auditlogs, rijkere webhookpayloads voor organisatieleden, grote prestatieverbeteringen voor grote organisaties en verschillende verbeteringen voor zelf-gehoste implementaties.
Logto v1.40.0 is een release gericht op het versterken van het platform. Deze versie maakt auditlogs schaalbaar en bruikbaar, laat precies zien wat er is veranderd in webhooks voor organisatieleden, versnelt organisatiequeries bij grote tenants, en verwijdert een aantal al lang bestaande pijnpunten voor zelf-gehoste deployments. Er zijn ook drie nieuwe connectoren toegevoegd. Dit is wat er nieuw is.
Auditlogs die je echt kunt afbakenen
Auditlogs zijn vooral handig als er net iets is gebeurd — maar tot nu toe haalde de Console een onbegrensd venster op, wat traag werd bij tenants met grote hoeveelheden logs.
Deze release voegt een tijdsbereik-kiezer toe aan de auditlogspagina, standaard ingesteld op de afgelopen 7 dagen. Je krijgt vooraf ingestelde vensters (Laatste 1 uur, Laatste 24 uur, Laatste 7 dagen, Laatste 30 dagen) en een eigen datumrange. Oudere logs blijven bereikbaar door het venster simpelweg breder te maken (#8810).
Onder de motorkap heeft de Management API nu start_time en end_time queryparameters op GET /api/logs en GET /api/hooks/{id}/recent-logs (exclusieve grenzen in unix-milliseconds), zodat je logqueries ook programmatisch kunt afbakenen (#8806). Voor de aller-grootste tenants kort een nieuwe enableCap=true parameter de count-query af op ongeveer 10.000 rijen en stuurt een Total-Number-Is-Capped: true header mee, waarbij een exact totaal wordt ingewisseld voor een antwoord dat niet tegen de statement_timeout aanloopt; de Console schakelt over op een Vorige/Volgende-indeling wanneer de limiet wordt bereikt (#8796, #8802). Standaardgedrag zonder de parameter blijft ongewijzigd.
Webhooks voor organisatieleden laten nu zien wat er is veranderd
De Organization.Membership.Updated webhook gaf voorheen alleen aan dat het lidmaatschap was veranderd, maar niet wat er was veranderd. Nu bevatten payloads expliciete delta-velden — addedUserIds / removedUserIds en addedApplicationIds / removedApplicationIds — bij de endpoints voor lidmaatschap, plus addedUserIds bij uitnodigingsacceptatie en just-in-time-provisioning (email-domein en enterprise SSO JIT) (#8840).
Dit is volledig aanvullend en niet-breaking: lege deltavelden worden weggelaten, en elke array heeft een limiet van 5000 items voor bulkbewerkingen (gebruik GET /organizations/:id/users of .../applications om te reconciliëren als je daar overheen gaat). Zie de webhookreferentie voor het volledige contract. Dit werk vervangt een eerder communityvoorstel — dank aan @chiche84 (#8752).
Terwijl we toch in de sessiecode zaten, heeft GET /api/my-account/sessions nu ook een isCurrent-vlag op elk item, zodat beheerschermen voor sessies de rij "Dit apparaat" kunnen markeren en voorkomen dat de eigen sessie van de gebruiker wordt ingetrokken (#8731).
Organisaties die snel blijven als ze groeien
Verschillende wijzigingen richten zich op tenants met zeer grote organisaties:
GET /organizations/:id/usersaggregeert nu rollen via eenLATERALsubquery, zodatLIMITde gebruikersset afkapt voordat de rollen worden opgehaald — in plaats van bij elke gepagineerde request de volledigemembers × rolesjoin te materialiseren (#8826).- Twee nieuwe secundaire indexen versnellen omgekeerde lookups: één op
organization_user_relations (tenant_id, user_id)die wordt gebruikt bij elke login en door de membership-middleware (#8818), en één oporganization_role_user_relations (tenant_id, organization_id, user_id)die wordt gebruikt doorgetUserScopesen per-user role joins (#8819). PUT /organizations/:id/usersschakelt over op een nieuwe delta-gebaseerde query die alleen de rijen schrijft die daadwerkelijk zijn veranderd, in plaats van elke membershiprij opnieuw te schrijven bij elke call — roltoewijzingen voor bestaande leden blijven behouden (#8820).
Accountcentrum en inlog-fixes
- Voorwaarden bij inloggen-naar-registratie. Wanneer het akkoordbeleid is "vereist een checkbox bij registratie", zal inloggen met een niet-geregistreerd e-mailadres of telefoonnummer en daarna kiezen voor "nieuw account aanmaken" nu eerst om akkoord met de voorwaarden vragen, voordat het account wordt aangemaakt — net als bij de gewone registratie en social/SSO-flows (#8835).
- Eerste wachtwoord instellen. Gebruikers zonder wachtwoord, e-mail of telefoon kunnen nu hun eerste wachtwoord instellen via de Account API zonder een verificatierecord (#8746).
- Stille herauthenticatie. Bij een user-info fout — bijvoorbeeld een verlopen accesstoken na het wisselen van gebruiker in dezelfde browser — wordt nu herauthenticatie gedaan met
prompt=nonein plaats van direct naar het login-scherm te gaan, dankzij @taka-guevara (#8785). - Schonere sessieverloop en social callbacks. Verlopen Accountcentrum-sessies leiden nu door zonder dat de handmatige inlogfout zichtbaar knippert (#8830), de social linking callback leest nu
connectorIdcorrect uit (#8758), en het label voor het aan/uitzetten van 2-stapsverificatie is duidelijker (#8792). - i18n. De Chinese vertaling van "Passkey" bij MFA-zinnen is gecorrigeerd, dank aan @rotempasharel1 (#8870).
Nieuwe en verbeterde connectoren
Deze release voegt drie connectoren toe en verbetert er nog een aantal — deels vanuit de community:
- MailJunky e-mailconnector voor transactionele authenticatie-mails, mogelijk gemaakt door @devadarshh (#8638).
- SMSBao SMS-connector voor binnenlandse sms-verificatie, bijgedragen door @wintbiit (#8871).
- Aliyun SMS-authenticatiedienst connector, bijgedragen door @CertStone (#8385).
- Aliyun Direct Mail ondersteunt nu het instellen van de Direct Mail-regio (#8892).
- WeCom haalt uitgebreidere gebruikersprofielen op via extra API-calls, bijgedragen door @liyujun-dev (#8191).
- SMTP
authmag nuuserenpassweglaten, zodat relais die autoriseren op basis van bron (zoals IP/VLAN) werken zonder valse credentials (#8888). - Connector Kit strakkere detectie van e-mailbranding-URL's om valse positieve resultaten met afgekorte domeinen te voorkomen, dank aan @aayushbaluni (#8747).
Voor zelf-gehoste gebruikers
Een paar wijzigingen zijn specifiek gericht op soepelere OSS-deployments:
Afgeschermde admin-setup. De
installendb seedcommando's accepteren nu een--dapcflag (alias--disable-admin-pwned-password-check). Het initiële wachtwoordbeleid van de admin-tenant voert standaard een Have I Been Pwned-lekcheck uit, waarbij op elk admin-passwordapi.pwnedpasswords.comwordt aangeroepen — wat de eerste adminaanmelding laat hangen als dat endpoint niet bereikbaar is. Met--dapcwordt het beleid zonder deze lekcheck toegevoegd, dus voor het aanmelden van de admin is geen uitgaand netwerkverkeer meer verplicht. (Dank aan @darcyYe, #8859)
Admin-tekensleutels uit de database. OSS-deployments lezen nu de admin-tenant signing keys direct uit de database, waardoor de extra host/DNS-mapping wegvalt die de Logto-container eerder gebruikte om zijn eigen admin OIDC-configuratie via het externe endpoint op te halen (#8869).
Migratie vereist. v1.40.0 brengt databaseveranderingen mee (de nieuwe organisatie-relatie-indexen en extra interne kolommen). Trek na het updaten eerst de database-migratiestap, voordat je de server opstart. Zie de upgrade handleiding.
Aan de slag
Klaar voor de upgrade? Bekijk onze upgrade handleiding voor stapsgewijze instructies.
Voor de complete lijst van wijzigingen, zie de GitHub releasepagina.
Vragen of feedback? Kom bij ons op Discord of open een issue op GitHub.

