Skip to content

Releases: NoteHubBR/notehub-api

2.2 – Session Management with Device & Geolocation Tracking

27 Apr 13:55

Choose a tag to compare

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/sessions e DELETE /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.sql com colunas de dispositivo e geolocalização
  • Configurado heap da JVM (-Xms256m -Xmx768m) para evitar OutOfMemoryError na inicialização

Breaking Changes

  • Nenhuma

Notas de upgrade

Atualize para a tag / release:

git fetch --tags
git checkout v2.2

2.1 – Session Disconnection & Developer Badge

17 Apr 11:50

Choose a tag to compare

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 dev na entidade User, concedendo aos colaboradores os mesmos privilégios de customização dos patrocinadores (ex: GIF como avatar).

Alterações principais

  • Adicionados os campos disconnectAll e keepCurrentSession nos DTOs ChangePasswordREQ e ChangeEmailREQ
  • Implementado o método disconnectAll(...) em TokenService / TokenServiceImpl para invalidação seletiva de tokens
  • Adicionado findAllByUserEmail(String email) em TokenRepository
  • Injetados TokenService e HttpServletRequest no UserController com chamadas condicionais nos endpoints PATCH /change-password e PATCH /change-email
  • Adicionado campo dev em User.java (padrão false) com migration V20260407__alter_table_users_add_dev_flag.sql
  • Campo dev exposto nos DTOs AuthRES, CreateUserRES, DetailUserRES e PersonalUserRES
  • Validação de GIF em avatar atualizada para aceitar usuários dev e sponsor
  • Documentação OpenAPI atualizada com detalhamento dos códigos de erro INVALID_DEVICE_ID, SAME_PASSWORD e SAME_EMAIL nas respostas 400

Breaking Changes

  • Nenhuma

Notas de upgrade

Atualize para a tag / release:

git fetch --tags
git checkout v2.1

2.0.3 – Flexible Authentication with Email or Username

26 Mar 12:28

Choose a tag to compare

Destaques

  • Suporte a autenticação com e-mail ou username no mesmo campo;
  • Novo campo identifier substitui username no 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: campo username renomeado para identifier, com validações ajustadas para aceitar e-mail e username;
  • TokenServiceImpl: lógica de detecção via contains("@") 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

⚠️ Campo username renomeado para identifier no body da requisição POST /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.3

2.0.2 – DDoS Protection with Penalty System

06 Jan 12:27

Choose a tag to compare

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.java na camada de infraestrutura.

Breaking Changes

  • Nenhuma

Notas de upgrade

Atualize para a tag / release:

git fetch --tags
git checkout v2.0.2

2.0.1 - Enforce GIF Restrictions

17 Dec 18:08
03ee582

Choose a tag to compare

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étodo validateGif();
  • 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.1

2.0 - Stripe Payment Integration for Sponsorships

12 Dec 17:28
a124d39

Choose a tag to compare

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.xml atualizado com dependência stripe-java para 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, Dockerfile e 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.0

Atenção: Configure as variáveis de ambiente necessárias para o Stripe:

  • SWK - Secret para validação do Webhook
  • SPK - Chave publicável da API do Stripe
  • SSK - 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

08 Oct 18:05
2cc031f

Choose a tag to compare

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, Dockerfile e README.md atualizados 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 subscriptions no 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.7

1.6.1 - Profile Username Support Improvements

29 Sep 14:15
da3699d

Choose a tag to compare

Destaques

  • Usuários que autenticam via GitHub agora podem manter seus usernames originais ao editar informações do perfil.

Alterações principais

  • pom.xml, Dockerfile e README.md atualizados 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.1

1.6 – Image security and profile support improvements

26 Sep 17:12
c09bfa7

Choose a tag to compare

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, Dockerfile e README.md atualizados 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.6

1.5 – OAuth user management improvements

17 Sep 17:09

Choose a tag to compare

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.md preparado 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 username e email aprimorada para usuários autenticados via aplicações externas.
  • Alterado tipo de host em User de String para Enum — 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