Português (Portugal)
  • release

Atualizações do produto Logto

O Logto v1.40.0 traz um seletor de intervalo de tempo para logs de auditoria, payloads mais ricos para webhooks de membros da organização, grandes ganhos de desempenho para organizações de grande porte e várias melhorias de qualidade de vida para auto-hospedagem.

Yijun
Yijun
Developer

Pare de perder semanas com autenticação de utilizadores
Lance aplicações seguras mais rapidamente com o Logto. Integre a autenticação de utilizadores em minutos e concentre-se no seu produto principal.
Começar
Product screenshot

O Logto v1.40.0 é uma versão que fortalece a plataforma. Torna os logs de auditoria práticos em escala, informa exatamente o que mudou nos webhooks de membros da organização, acelera consultas de organização em locatários grandes e elimina alguns pontos de fricção antigos para implementações auto-hospedadas. Também chegaram três novos conectores. Eis o que há de novo.

Logs de auditoria realmente configuráveis

Os logs de auditoria são mais úteis quando algo acabou de acontecer — mas até agora, o Console buscava uma janela sem limites, o que ficava lento em locatários com volumes enormes de logs.

Esta versão adiciona um seletor de intervalo de tempo à página de logs de auditoria, com padrão para os últimos 7 dias. Tens janelas predefinidas (Última 1 hora, Últimas 24 horas, Últimos 7 dias, Últimos 30 dias) e um intervalo de datas personalizado, e logs mais antigos continuam acessíveis apenas ampliando a janela (#8810).

Nos bastidores, a Management API ganha os parâmetros de consulta start_time e end_time em GET /api/logs e GET /api/hooks/{id}/recent-logs (limites exclusivos em milissegundos unix), para que possas configurar consultas de logs também programaticamente (#8806). Para os maiores locatários, um novo parâmetro enableCap=true interrompe a consulta do contador por volta das ~10.000 linhas e retorna um cabeçalho Total-Number-Is-Capped: true, trocando o total exato por uma resposta que não vai atingir statement_timeout; o Console muda para um layout de Anterior/Seguinte quando o limite é atingido (#8796, #8802). O comportamento padrão sem o parâmetro não muda.

Webhooks de membros da organização agora mostram o que mudou

O webhook Organization.Membership.Updated costumava apenas informar que a membresia foi alterada, mas não o que mudou. Agora transporta campos delta explícitos — addedUserIds / removedUserIds e addedApplicationIds / removedApplicationIds — em todos os endpoints de membros, além de addedUserIds em aceite de convite e provisionamento just-in-time (JIT por domínio de email e SSO empresarial) (#8840).

Isto é totalmente aditivo e não colide com versões anteriores: deltas vazias são omitidas e cada array é limitado a 5000 entradas para operações em massa (faz reconciliação via GET /organizations/:id/users ou .../applications quando ultrapassares esse valor). Vê a referência de webhook para o contrato completo. Este trabalho substitui uma proposta anterior da comunidade — crédito a @chiche84 (#8752).

Enquanto trabalhávamos no código de sessões, o GET /api/my-account/sessions também ganhou uma flag isCurrent em cada entrada, para UIs de gestão de sessões poderem marcar a linha "Este dispositivo" e evitar revogar a sessão do próprio utilizador (#8731).

Organizações que continuam rápidas à medida que crescem

Várias mudanças focam locatários com organizações muito grandes:

  • O endpoint GET /organizations/:id/users agora agrega papéis através de uma subconsulta LATERAL, de modo que o LIMIT refina o conjunto de utilizadores antes de buscar os papéis — em vez de materializar o join completo membros × papéis a cada pedido paginado (#8826).
  • Dois novos índices secundários aceleram consultas reversas: um em organization_user_relations (tenant_id, user_id), usado em cada início de sessão e pelo middleware de membrecia (#8818), e outro em organization_role_user_relations (tenant_id, organization_id, user_id), utilizado por getUserScopes e joins de papéis por utilizador (#8819).
  • O endpoint PUT /organizations/:id/users passa a usar uma nova consulta baseada em diferenças que escreve apenas as linhas que realmente mudaram, ao invés de reescrever todas as linhas de membresia em cada chamada — e preserva os papéis dos membros que permanecem após a atualização (#8820).

Centro de Conta e correções de início de sessão

  • Termos no iniciar-sessão-para-registo. Quando a política de acordo é "requerer aceitação por checkbox apenas no registo", ao iniciares sessão com um email ou telefone não registado e depois escolheres "criar uma nova conta", agora aparece a aceitação dos termos antes de criar a conta — tal como no registo dedicado e nos fluxos sociais/SSO (#8835).
  • Configuração inicial de palavra-passe. Utilizadores sem palavra-passe, email ou telefone podem agora criar a sua primeira palavra-passe através da API de Conta sem um registo de verificação (#8746).
  • Reautenticação silenciosa. Em erro de informações de utilizador — por exemplo, um token de acesso antigo após troca de utilizadores no mesmo navegador — o Centro de Conta reautentica-se com prompt=none em vez de saltar para o ecrã de login, graças a @taka-guevara (#8785).
  • Sessão expirada e callbacks sociais mais limpos. Sessões expiradas no Centro de Conta redirecionam sem exibir o erro manual de início de sessão (#8830), o callback de ligação social agora lê corretamente o connectorId (#8758), e o rótulo do toggle de verificação em dois passos está mais claro (#8792).
  • i18n. Corrigida a tradução chinesa de "Passkey" nas frases de MFA, graças a @rotempasharel1 (#8870).

Novos conectores e conectores melhorados

Esta versão inclui três conectores e melhora vários outros — muitos deles da comunidade:

  • Conector de email MailJunky para emails transacionais de autenticação, contribuído por @devadarshh (#8638).
  • Conector SMS SMSBao para verificação doméstica de SMS, contribuído por @wintbiit (#8871).
  • Conector de serviço de autenticação SMS da Aliyun, contribuído por @CertStone (#8385).
  • Aliyun Direct Mail agora suporta configuração da região do Direct Mail (#8892).
  • WeCom obtém mais detalhes de perfil de utilizador via chamadas adicionais à API, contribuído por @liyujun-dev (#8191).
  • No SMTP, o auth pode agora omitir user e pass, para que relays que autorizam por origem (ex. IP/VLAN) funcionem sem forjar credenciais (#8888).
  • Connector Kit aperfeiçoou a detecção de URL de branding de email para evitar falsos positivos em abreviações com ponto, graças a @aayushbaluni (#8747).

Para utilizadores auto-hospedados

Algumas mudanças focadas em implementações OSS:

Configuração sem Internet para admin. Os comandos install e db seed agora aceitam o parâmetro --dapc (alias --disable-admin-pwned-password-check). A política de palavra-passe do tenant admin ativa, por padrão, a verificação de violação Have I Been Pwned, que chama o api.pwnedpasswords.com a cada submissão de palavra-passe admin — e trava o primeiro registo admin quando esse endpoint não está acessível. Com --dapc, a política é criada com a verificação desativada, por isso o registo admin já não depende de acesso à rede externa. (Crédito @darcyYe, #8859)

Chaves de assinatura admin vindas da base de dados. Implementações OSS agora leem as chaves de assinatura do tenant admin diretamente da base de dados, eliminando os mapeamentos extra de host/DNS que antes permitiam ao container Logto buscar a configuração OIDC do tenant admin pelo endpoint externo (#8869).

Migração obrigatória. O v1.40.0 contém alterações ao esquema de base de dados (novos índices de relação de organização e colunas internas adicionais). Após atualizares para esta versão, executa a alteração de base de dados antes de iniciar o servidor. Vê o guia de atualização.

Começa já

Pronto para atualizar? Consulta o guia de atualização para instruções passo a passo.

Para a lista completa de alterações, vê a página de lançamento no GitHub.

Tens perguntas ou feedback? Junta-te a nós no Discord ou abre um issue no GitHub.