Releases: NoteHubBR/notehub-api
Releases · NoteHubBR/notehub-api
2.2 – Session Management with Device & Geolocation Tracking
Destaques
- Usuários agora podem visualizar todas as sessões ativas entre dispositivos, incluindo tipo de dispositivo, OS, browser e localização aproximada
- As sessões são protegidas por verificação de senha antes de serem expostas, com suporte a desconexão individual
Alterações principais
- Adicionados endpoints
POST /auth/sessionseDELETE /auth/session/{id} - Adicionado enriquecimento de dispositivo e geolocalização nos tokens via YAUAA e MaxMind GeoLite2
- Adicionada captura do IP real no Fly.io via header
Fly-Client-IP - Adicionada migration
V20260421__add_tokens_metadata.sqlcom colunas de dispositivo e geolocalização - Configurado heap da JVM (
-Xms256m -Xmx768m) para evitarOutOfMemoryErrorna inicialização
Breaking Changes
- Nenhuma
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v2.22.1 – Session Disconnection & Developer Badge
Destaques
- Adicionada a funcionalidade de desconexão de sessões ativas ao alterar senha ou e-mail, permitindo que o usuário invalide outros dispositivos no momento da troca de credenciais.
- Adicionada flag
devna entidadeUser, concedendo aos colaboradores os mesmos privilégios de customização dos patrocinadores (ex: GIF como avatar).
Alterações principais
- Adicionados os campos
disconnectAllekeepCurrentSessionnos DTOsChangePasswordREQeChangeEmailREQ - Implementado o método
disconnectAll(...)emTokenService/TokenServiceImplpara invalidação seletiva de tokens - Adicionado
findAllByUserEmail(String email)emTokenRepository - Injetados
TokenServiceeHttpServletRequestnoUserControllercom chamadas condicionais nos endpointsPATCH /change-passwordePATCH /change-email - Adicionado campo
devemUser.java(padrãofalse) com migrationV20260407__alter_table_users_add_dev_flag.sql - Campo
devexposto nos DTOsAuthRES,CreateUserRES,DetailUserRESePersonalUserRES - Validação de GIF em avatar atualizada para aceitar usuários
devesponsor - Documentação OpenAPI atualizada com detalhamento dos códigos de erro
INVALID_DEVICE_ID,SAME_PASSWORDeSAME_EMAILnas respostas400
Breaking Changes
- Nenhuma
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v2.12.0.3 – Flexible Authentication with Email or Username
Destaques
- Suporte a autenticação com e-mail ou username no mesmo campo;
- Novo campo
identifiersubstituiusernameno payload de login; - Detecção automática do tipo de identificador via presença de
@; - Documentação Swagger atualizada para refletir o novo contrato da rota;
- Mensagens de erro aprimoradas para o campo identificador.
Alterações principais
AuthREQ: campousernamerenomeado paraidentifier, com validações ajustadas para aceitar e-mail e username;TokenServiceImpl: lógica de detecção viacontains("@")para direcionar a query correta;TokenService: assinatura do método de autenticação atualizada;AuthController: documentação Swagger ajustada para refletir o novo campo;ControllerAdvice: ajuste nas mensagens de erro relacionadas ao identificador.
Breaking Changes
⚠️ Campousernamerenomeado paraidentifierno body da requisiçãoPOST /login.
Clientes que consomem esta rota precisam atualizar o payload.
Antes:
{ "username": "john_doe", "password": "secret" }Depois:
{ "identifier": "john_doe", "password": "secret" }ou
{ "identifier": "john@email.com", "password": "secret" }Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v2.0.32.0.2 – DDoS Protection with Penalty System
Destaques
- Rate limiting de 60 requisições por minuto por IP;
- Sistema de penalidade: bloqueio de 5 minutos após 10 violações consecutivas;
- Extração do IP real do cliente, considerando ambientes com proxies e load balancers;
- Limpeza automática do cache para prevenção de memory leaks;
- Exclusão do webhook do Stripe das regras de rate limiting;
- Logs detalhados para monitoramento e auditoria de violações.
Alterações principais
- Adicionado novo arquivo de segurança
RateLimitFilter.javana camada de infraestrutura.
Breaking Changes
- Nenhuma
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v2.0.22.0.1 - Enforce GIF Restrictions
Destaques
- Validação server-side para upload de imagens
.gif; - GIFs agora exclusivos para patrocinadores (apenas avatar);
- GIFs bloqueados para banners (todos os usuários);
Alterações principais
- Atualizada versão do projeto para
2.0.1. UserServiceImpl.java-> Adicionado métodovalidateGif();CustomExceptions.java->GifNotAllowedException;ControllerAdvice.java-> Handler para nova exceção;
Breaking Changes
- Nenhuma
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v2.0.12.0 - Stripe Payment Integration for Sponsorships
Destaques
- Integração completa com Stripe para processamento de pagamentos de patrocínios.
- Fluxo de checkout seguro e PCI-compliant para transações financeiras.
- Suporte a internacionalização (i18n) no processo de pagamento.
Alterações principais
pom.xmlatualizado com dependênciastripe-javapara integração oficial com a API do Stripe.- Implementação do fluxo completo de checkout de patrocínio (criação de sessão, redirecionamento e confirmação).
- Endpoint para webhooks do Stripe com bypass de autenticação para receber eventos de pagamento.
- Padronização de todas as rotas de pagamento sob o prefixo
/api/v1/payment. - Adição de suporte a locale para experiência localizada durante o checkout.
- Versão do projeto atualizada para 2.0 (
pom.xml,Dockerfilee documentação).
Breaking Changes
- Reestruturação das rotas de pagamento: Todas as rotas relacionadas a pagamento agora seguem o padrão
/api/v1/payment/*. Integrações existentes devem ser atualizadas para os novos endpoints. - Mudança de versão major (2.0): Indica evolução significativa da API. Revise a documentação para garantir compatibilidade.
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v2.0Atenção: Configure as variáveis de ambiente necessárias para o Stripe:
SWK- Secret para validação do WebhookSPK- Chave publicável da API do StripeSSK- Chave secreta da API do Stripe
Consulte a documentação atualizada para detalhes sobre os novos endpoints de pagamento.
1.7 - User Subscriptions & Topic-based Email Notifications
Destaques
- Adiciona suporte para inscrições de usuários por tópicos (subscriptions).
- Implementa envio de e-mails por tópico através de processamento em fila, permitindo notificações escaláveis e confiáveis.
Alterações principais
pom.xml,DockerfileeREADME.mdatualizados para a release 1.7.- Implementação de envio via fila para tópicos (notificações por e-mail).
- Nova migração para criação da tabela de inscrições de usuários.
- Adição da coleção/entidade
subscriptionsno modelo de usuário, com métodos para habilitar/desabilitar inscrições, enum + conversor JPA e exceção customizada para valores inválidos. - Endpoint para recuperar todas as inscrições de um usuário.
- Anotações OpenAPI/Swagger para os endpoints relacionados a inscrições.
Breaking Changes
- Nenhuma
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v1.71.6.1 - Profile Username Support Improvements
Destaques
- Usuários que autenticam via GitHub agora podem manter seus usernames originais ao editar informações do perfil.
Alterações principais
pom.xml,DockerfileeREADME.mdatualizados para a release 1.6.- Validação de usernames atualizada para aceitar hífens, com a nova expressão regular:
"^[a-zA-Z0-9_.-]+$".
Breaking Changes
- Nenhuma.
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v1.6.11.6 – Image security and profile support improvements
Destaques
- Reforço na segurança do envio de imagens, prevenindo ações de usuários bloqueados.
- Suporte para remoção de banner de perfil (permitindo valor nulo).
Alterações principais
pom.xml,DockerfileeREADME.mdatualizados para a release 1.6.- Implementada lógica de bloqueio de envio de imagens para usuários marcados como
blocked. - Permitida a exclusão de banner do perfil.
Breaking Changes
- Nova migração adicionada:
V20250923__alter_table_users_add_blocked.sql.
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v1.61.5 – OAuth user management improvements
Destaques
- Melhorias significativas no fluxo de usuários vindos de aplicações externas (OAuth).
- Separação dos serviços GitHub/Google, validações reforçadas e possibilidade de exclusão de conta via chave secreta.
- Correções de segurança envolvendo tokens de alteração de email/senha.
Alterações principais
README.mdpreparado para a release 1.5.- Permitida a exclusão de usuários OAuth usando uma chave secreta enviada por e-mail.
- Garantida a separação de escopos: tokens de alteração de email não podem ser usados para trocar senha.
- Serviços de login separados para GitHub e Google (melhor isolamento de lógica).
- Validação de
usernameeemailaprimorada para usuários autenticados via aplicações externas. - Alterado tipo de
hostemUserdeStringparaEnum— tipagem mais segura. - Dependência adicionada:
jackson-databind.
Breaking Changes
- Nenhuma conhecida.
Notas de upgrade
Atualize para a tag / release:
git fetch --tags
git checkout v1.5