Pular para o conteúdo principal

10 publicações com a etiqueta "auth"

Ver todas as etiquetas

Changelog - 07/05/2026

Segurança — remoção total de debug do bundle de produção

  • Toggle ?EnableDebug=1 removido em prod. O parâmetro de URL e a chave sessionStorage["debug_enabled"] foram completamente eliminados — não existe mais runtime gate que possa ser ligado por query param, cookie ou storage. O motivador foi um leak no /api/games/start: o endpoint passava debug:true ao ApiClient e ecoava _debug.requestInfo na response, expondo o header cf-worker-key que o Worker usa pra autenticar com o BFF — qualquer um clicando em "Play" em qualquer brand de prod conseguia ler do DevTools. Endpoint corrigido com 6 testes de regressão que travam o contrato (debug:true proibido, _debug ausente em sucesso e erro).
  • Painéis DevApiDebug/DevApiExplorer agora gated por import.meta.env.DEV. Novo wrapper DevPanel com React.lazy condicional — em prod, o dynamic import('./DevApiDebug') vira inalcançável e o Vite remove o chunk inteiro do build. Consumers (home, favorites, game detail, wallet, history) trocaram <DevApiDebug> por <DevPanel> envolto em {import.meta.env.DEV && (...)}, garantindo que loader _debug data nunca serializa no SSR stream de prod.
  • Rotas /api/dev/*, /dev/ftd-cashback, /debug e /debug/analytics só existem em dev build. O registro em app/router/routes.ts é gated por process.env.NODE_ENV !== 'production' — em prod build esses arquivos são tree-shaken por completo (server e client). Eliminados também app/utils/debug.server.ts (com isDebugRequest/?EnableDebug) e a doc docs/enable-debug/overview.md.
  • CI guard pnpm bundle:guard falha se strings proibidas vazarem para o bundle de prod. Novo script scripts/check-prod-bundle.mjs faz grep no build/ após pnpm build e detecta DevApiDebug, DevApiExplorer, activateDebugFromUrl, isDebugActive, EnableDebug, debug_enabled, validation_debug, /api/dev/, /dev/ftd-cashback, debug/analytics e cf-worker-key (no client bundle apenas). Wired via pnpm build:check (= build + bundle:guard). Adicionar nova string secret-adjacent exige atualizar FORBIDDEN_STRINGS no script.
  • Bumps no core que sustentam a remoção: @cactus-agents/api-client 0.12.0 (redação regex-based de headers *-key/*-token/*-secret/cf-*/x-api-* no requestInfo em modo debug) e @cactus-agents/utils 1.0.0 major (remove os exports activateDebugFromUrl e isDebugActive — não existe mais API pública pra ligar o toggle em runtime). Defense-in-depth: console.* em ftd-cashback.client.ts, smartico-checkin.client.ts e useOnFirstScrollIntoView.ts agora também passam por import.meta.env.DEV, então mesmo se um caller acidentalmente passar debug:true em prod o output some no build.

Changelog - 06/05/2026

Pós-registro & Auth — fluxo regulatório e dedup de bursts

  • Novo hook useAfterRegisterFlow (app/hooks/useAfterRegisterFlow.ts) orquestra o pós-registro: abre o modal de depósito uma vez, logo após o cadastro, bypassando o throttle de 12h do useAutoDepositModal. Replica o handleOpenRegisterStrategy → openModal('deposit') do handleSuccessRegister legado em Vue. Suporta o ramo regulatório (espera o LimitsStep do ValidationBlockerOverlay resolver antes de abrir o depósito) e suprime quando há ?deposit=<campaign> na URL, conta restrita ou featuresConfig.autoDepositAfterRegister === false.
  • Store app/store/onboarding.ts (Zustand, não persistida) carrega o sinal justRegistered + lastPrudentialLimitActive entre o sucesso do RegisterModal e o próximo render do DefaultLayout. Reset automático no logout.
  • Forward de user_prudential_limit_active no payload de signup (/bff/register-simplified, /auth/register): sinaliza ao BFF qual botão regulatório o usuário clicou ("Quero definir meus limites agora" vs "Continuar sem limites"). Nova feature flag autoDepositAfterRegister propagada nos 13 overrides de brand.
  • Dedup cross-request de /auth/user-profile em app/services/auth.server.ts: cache token-scoped com TTL de 10s + cap de 100 entradas (chave = SHA-256 hex do token, evita expor token cru em dumps de memória). Resolve o burst pós-login onde POST /api/auth/login, useAuthProfileSync → GET /api/auth/profile e revalidator.revalidate() → _layout loader pegavam três Requests distintos com o mesmo token — o WeakMap<Request> antigo não conseguia deduplicar.
  • /api/auth/profile agora consome getAuthForRequest em vez de chamar createAuthFromClient direto, herdando automaticamente o cache acima. PRs touch-up em 20+ componentes (UserSummaryHeader, ValidationContextGate, GameIframe, payments, protection, validation steps) que liam useProfile() ad-hoc.

Changelog - 31/03/2026

Banners e Stories

  • Novos componentes de Stories implementados — StoriesCircles, StoriesModal, StoriesOnlyButton e StoriesWithModal para exibição interativa de banners
  • Autoplay adicionado ao HomeBannerCarousel com remoção do skeleton loading
  • Controle de visibilidade por linha (visibility control) adicionado ao sistema de home rows com classes responsivas
  • Correções de estabilidade no StoriesModal: safeClose para fechamento seguro com overlay invisível, reset de progresso e timing corretos, ajuste de padding e role de acessibilidade
  • Widgets configuráveis: HomeBannerCarousel, TournamentsSection e demais widgets agora aceitam title, icon e i18nKey como props para maior flexibilidade

Changelog - 27/03/2026

Autenticação (Login / Registro / Recuperação de senha)

  • Campo de documento (CPF) adicionado ao modal de registro com estilização nova e auto-validação ao preencher
  • Overlay de confirmação de saída no modal de registro ("tem certeza que quer sair?") — cobre o painel completo incluindo header
  • Logo responsivo da marca exibido nos modais de login, registro e recuperação de senha
  • Banner visual nos modais de login e recuperação de senha (imagem lateral)
  • Animação fade-in/fade-out no backdrop dos modais
  • Feature skipDocumentMask na recuperação de senha (para marcas que não usam máscara de documento)
  • Integração do Turnstile (captcha Cloudflare) nos fluxos de autenticação (login, registro, recuperação)

Changelog - 25/03/2026

Autenticação / Login / Registro

  • Modal de recuperação de senha implementado e integrado ao fluxo de login ("Esqueceu a senha?")
  • Tela de confirmação de saída no modal de registro — previne fechamento acidental
  • Reset dos campos de login/senha/erro ao fechar o modal de login
  • Termos pré-marcados configuráveis e links legais clicáveis no formulário de registro
  • Opção para esconder botão de fechar no RegisterModal durante estado de confirmação
  • Melhoria na interação do overlay — cursor-default e pointer-events-none no backdrop

Changelog - 18/03/2026

Área do Usuário (front-web-base)

  • Substituição completa do menu lateral por navegação em abas (tabs): geral, histórico e configurações
  • Adicionadas páginas de conteúdo tabuladas: general.tsx (info da conta, segurança, métodos de pagamento), config.tsx (proteção, jogo responsável) e history.tsx (histórico de transações e de login)
  • Removidas páginas legadas separadas: conta, segurança, proteção da conta, IRPF, histórico de login
  • Seções de conta e segurança refatoradas com painéis colapsáveis e ícones
  • Sections Pix, Clabe, Senha e Autenticação em dois fatores agora são componentes auto-contidos com gerenciamento de estado próprio
  • Adicionado componente UserSummaryHeader com info do usuário e ações rápidas

Changelog - 16/03/2026

Jogos

  • Modal fullscreen para o player de jogos no mobile: ao clicar em Jogar, o jogo abre em tela cheia com header próprio (botão voltar e botão Depositar)
  • Detecção de dispositivo móvel no GameIframe para ajustar comportamento de exibição
  • Carrossel de jogos relacionados atualizado com setas de navegação e link "Ver todos"
  • Carrossel de provedores adicionado na página de detalhe do jogo
  • Grid de jogos ajustado para 3 colunas com espaçamento mais compacto
  • Deduplicação de jogos no cache para evitar itens repetidos nas linhas
  • Chaves de componentes migradas de game.id para game.slug para maior consistência
  • Ajuste no fallback de estatísticas: API pode retornar objeto com valores zerados, agora verificado corretamente antes de cair no mock

Changelog - 07/03/2026

Pagamentos

  • Implementado módulo completo de depósito e saque com integração a provedores de pagamento: novos componentes de modal (DepositModal, WithdrawModal), seletores de método, inputs de valor, atalhos de quantia e telas de resultado para PIX, SPEI e redirect
  • Criado hook usePayments para interação com a API de pagamentos no client-side
  • Adicionadas rotas de servidor para operações de pagamento: provedores, depósito, status de depósito, saque, lista de bancos e chave PIX
  • Criada store Zustand (payments.ts) para gerenciamento de estado dos modais de pagamento
  • Botões de depósito e saque ativados no menu de conta do usuário e na área de header (removidas badges "Em breve")
  • Adicionado SDK @cactus-agents/payments ao monorepo core com suporte a: listagem de provedores por moeda, submissão e polling de depósito, saque, gerenciamento de chaves PIX (Brasil) e lista de bancos SPEI (México)
  • Publicado pacote @cactus-agents/payments ^0.2.0 no registro; dependência adicionada ao front-web-base

Casino / Jogos

  • Adicionado módulo games/casino com cache, rotas e componentes para suporte ao casino legado
  • Integrado serviço de jogos legado (createLegacyGamesFromClient) ao SDK @cactus-agents/games (versão 0.3.0)
  • Corrigida ordem da entrada "Megaways" na configuração de home rows legado para exibição correta
  • Migrada dependência @cactus-agents/games de referência local para pacote publicado no registro

Wallet

  • Corrigido tratamento de erros na API de rollover: falhas em getRollover() e checkRolloverAccomplished() não impedem mais o retorno dos dados principais da carteira
  • Adicionado campo balance ao tipo RealWallet, com conversão de centavos para reais na transformação da resposta da API
  • Publicados @cactus-agents/wallet ^0.2.2 (inclui correção do rollover) e atualizada dependência no front-web-base

Auth

  • Melhorados os fluxos de login e registro com suporte a manipulação de cookies no lado do servidor

API / Infra

  • Corrigido createClient para encaminhar automaticamente o header Cookie em todas as requisições server-side, eliminando a necessidade de extração manual por rota

Layout

  • Padronizadas classes de padding e margem (p-4 lg:p-6) em rotas de jogos, debug e área do usuário para layout responsivo consistente
  • Ajustada largura padrão do conteúdo e alinhamentos visuais gerais

Acessibilidade

  • Modal agora fecha ao pressionar Enter ou Space na overlay; adicionado role="button" para conformidade com acessibilidade
  • Componente Pagination refatorado para tratamento de elipse com maior segurança de tipos

Deploy / CI

  • Pipeline de deploy expandida com suporte ao ambiente demo, além de produção e staging

Changelog - 06/03/2026

SDK Core (@cactus-agents/*)

  • Criado o monorepo front-cactus-core com os pacotes base do SDK: api-client, auth, brand, types e utils
  • Renomeado escopo de @cactus/* para @cactus-agents/* para alinhar com a organização no GitHub Packages
  • Adicionados wrappers createAuthFromClient e createBrandFromClient que eliminam boilerplate nos consumidores
  • Adicionado createFullFetcherFromClient e interface FullClientLike para pacotes que precisam de PATCH/PUT/DELETE
  • Novo helper extractApiError para padronizar extração de erros da API em todos os pacotes
  • Pipeline de release com Changesets publicando automaticamente no GitHub Packages