Skip to content

feat(auth): remove Lovable Auth, padroniza Supabase nativo (F1-1.x)#104

Merged
adm01-debug merged 1 commit into
mainfrom
cleanup/remove-lovable-auth
May 9, 2026
Merged

feat(auth): remove Lovable Auth, padroniza Supabase nativo (F1-1.x)#104
adm01-debug merged 1 commit into
mainfrom
cleanup/remove-lovable-auth

Conversation

@adm01-debug
Copy link
Copy Markdown
Owner

@adm01-debug adm01-debug commented May 9, 2026

Plano

Remove a integração com Lovable Auth (@lovable.dev/cloud-auth-js) já que saímos do Lovable Cloud. Agora todo login social usa Supabase Auth nativo direto.

Diff resumido

package-lock.json                          |  7 ----
package.json                               |  1 -
src/components/auth/SocialLoginButtons.tsx | 58 ++++++++++--------------------
src/integrations/lovable/index.ts          | 38 --------------------
src/pages/SSOCallbackPage.tsx              | 14 ++++----
5 files changed, 26 insertions(+), 92 deletions(-)

Net: -66 linhas de código.

O que muda

Arquivo Mudança
src/integrations/lovable/index.ts 🗑️ DELETADO (broker createLovableAuth())
package.json / package-lock.json Remove @lovable.dev/cloud-auth-js
src/components/auth/SocialLoginButtons.tsx 100 → 75 linhas. Remove isSelfHosted() + branch Lovable. Mantém apenas supabase.auth.signInWithOAuth({ provider: 'google' }) que já era o caminho usado em promogifts.com.br e *.atomicabr.com.br
src/pages/SSOCallbackPage.tsx Apenas JSDoc atualizado (3 fluxos → 2 fluxos do Supabase). Código sem mudança lógica

Por que o risco é BAIXO

Antes da refatoração, o componente já tinha esse padrão:

if (isSelfHosted()) {
  // Direct Supabase OAuth — bypasses Lovable broker for VPS deployments
  const { error } = await supabase.auth.signInWithOAuth({ provider: 'google', options: { redirectTo: redirect_uri } });
} else {
  // Lovable broker — original flow for Lovable Cloud domains
  const { lovable } = await import('@/integrations/lovable/index');
  ...
}

O caminho self-hosted (Supabase nativo) era o que rodava em produção do PromoGifts. Estou simplesmente removendo o caminho else (broker Lovable) que nunca foi exercitado em VPS.

SSO em produção

⚠️ Pré-deploy requer ativação de Google OAuth no painel Supabase. Documento detalhado vem no PR docs/auth-sso-todo (próximo).

Se for testar smoke no Vercel preview agora, clique "Continuar com Google" → vai chamar supabase.auth.signInWithOAuth. Sem o provider configurado no Supabase, vai retornar Provider not enabled (toast de erro), o que é o comportamento esperado e mostra que o caminho funciona até o ponto de configuração faltante. Email/senha continua 100%.

Test plan

  • npm run typecheck passa (sem erros TS)
  • npm run build passa (1m19s, sem warnings novos)
  • Nenhum import residual de @/integrations/lovable ou @lovable.dev/cloud-auth-js em src/ ou tests/
  • Pre-push hook ESLint passou (drift positivo: 1571 → 1563 erros)
  • CI verde (aguardando)
  • CodeRabbit revisão
  • Smoke test no Vercel preview: clicar 'Continuar com Google' → toast 'Provider not enabled' (esperado até SSO ser ativado)
  • Email/senha login continua funcionando 100%

Decisões tomadas

  • Apple sign-in ficou de fora (nunca foi implementado na UI, apenas no tipo do SDK Lovable). Será documentado como 'opcional pré-deploy' em docs/AUTH-SSO-ACTIVATION.md.
  • lovable-tagger (dep diferente, dev-mode component tagger) NÃO é removida neste PR. Se for órfã, sai em PR futuro de cleanup de deps.

Aprovado por @adm01-debug em chat (Caminho C — deletar agora + documentar pré-deploy)

Summary by CodeRabbit

  • Refactor

    • Simplificação da arquitetura de autenticação consolidando o fluxo de login
  • Chores

    • Removida dependência de autenticação não utilizada
    • Remoção de integração não utilizada
  • Style

    • Reformatação dos logs de autenticação e tratamento de erros de sessão
    • Ajustes no layout da página de redirecionamento de autenticação

Review Change Stack

Como saímos do Lovable Cloud, removemos a dependência `@lovable.dev/cloud-auth-js`
e o broker que rotear OAuth via Lovable. Agora todo login social vai direto
pelo Supabase Auth.

## Mudanças

- **Removido**: `src/integrations/lovable/index.ts` (broker `createLovableAuth()`)
- **Removida dep**: `@lovable.dev/cloud-auth-js` do `package.json` + lockfile
- **`SocialLoginButtons.tsx`**: simplificado de 100→75 linhas
  - Removido helper `isSelfHosted()` (não é mais necessário)
  - Removido branch `if/else` que escolhia entre broker Lovable vs Supabase nativo
  - Mantido o caminho que JÁ era usado em domínios self-hosted (`promogifts.com.br`,
    `*.atomicabr.com.br`) — comprovadamente funcional
  - Adicionado JSDoc com referência a `docs/AUTH-SSO-ACTIVATION.md`
- **`SSOCallbackPage.tsx`**: somente JSDoc atualizado (de 3 fluxos → 2 fluxos).
  Lógica do código permanece idêntica — os 2 fluxos do Supabase Auth (PKCE +
  implicit grant) continuam funcionando perfeitamente. O fluxo do broker Lovable
  era apenas um caso especial onde `setSession` já tinha sido chamado pre-redirect,
  mas como ele agora não dispara, o caminho some naturalmente.

## Risk

🟢 **Baixo**. O caminho 'Supabase Auth nativo' já estava em produção em domínios
self-hosted. Estamos apenas removendo o caminho que NUNCA era usado em VPS.

## Test plan

- [x] `npm run typecheck` passa
- [x] `npm run build` passa (1m19s)
- [x] Nenhum import residual de `@/integrations/lovable` ou `@lovable.dev/cloud-auth-js`
- [x] Apenas referência no repo é o JSDoc do componente novo (contexto histórico)
- [ ] CI verde (aguardando)
- [ ] CodeRabbit revisão
- [ ] Smoke test manual no Vercel preview: clicar "Continuar com Google" → ver
      redirect pra accounts.google.com (espera-se 'Provider not enabled' no Supabase
      até o SSO ser ativado pré-deploy, mas a chamada deve sair da nossa página)

## Próximos PRs relacionados

- `docs/auth-sso-todo`: documenta como ativar Google OAuth pré-deploy via
  painel Supabase (este será o complemento crítico)
- (Futuro, fora desta faxina) Remover `lovable-tagger` se for órfão
Copilot AI review requested due to automatic review settings May 9, 2026 14:45
@vercel
Copy link
Copy Markdown

vercel Bot commented May 9, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
promo-gifts Ready Ready Preview, Comment May 9, 2026 2:45pm

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 9, 2026

Warning

.coderabbit.yaml has a parsing error

The CodeRabbit configuration file in this repository has a parsing error and default settings were used instead. Please fix the error(s) in the configuration file. You can initialize chat with CodeRabbit to get help with the configuration file.

💥 Parsing errors (1)
Validation error: String must contain at most 250 character(s) at "tone_instructions"
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 732ad237-5045-462a-b73b-f00b9bc18d52

📥 Commits

Reviewing files that changed from the base of the PR and between 7e29078 and f71a1cc.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (4)
  • package.json
  • src/components/auth/SocialLoginButtons.tsx
  • src/integrations/lovable/index.ts
  • src/pages/SSOCallbackPage.tsx
💤 Files with no reviewable changes (2)
  • package.json
  • src/integrations/lovable/index.ts

📝 Walkthrough

Visão Geral

Este PR remove a integração Lovable OAuth broker, seu pacote npm e a lógica condicional associada, migrando SocialLoginButtons para usar Supabase Auth diretamente. Inclui refatoração de logging em SSOCallbackPage sem alterações funcionais.

Alterações

Remoção da Integração Lovable

Camada / Arquivo(s) Resumo
Remoção de Dependência e Módulo
package.json, src/integrations/lovable/index.ts
@lovable.dev/cloud-auth-js removido do package.json; módulo Lovable integration deletado incluindo lovable.auth.signInWithOAuth().
Refatoração do SocialLoginButtons
src/components/auth/SocialLoginButtons.tsx
Simplifica para chamar supabase.auth.signInWithOAuth diretamente; remove isSelfHosted() e fluxo condicional Lovable broker; preserva interface de props e comportamento de UI (spinner de carregamento, botão desabilitado).
Melhorias de Formatação em SSOCallbackPage
src/pages/SSOCallbackPage.tsx
Refatora logging de debug/erro para multilinha; ajusta className do contenedor de min-h-screen flex para flex min-h-screen items-center justify-center; mantém fluxo SSO, exchange de código, timeout 8s e cleanup.

Estimativa de Esforço de Revisão

🎯 2 (Simples) | ⏱️ ~12 minutos

Poema

Um broker partiu, seus fios cortados,
Supabase agora faz os saltos—
OAuth simples, sem desvios,
A autenticação segue diretos, os caminhos rivais resolvidos. 🐰✨

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning A descrição está bem estruturada, mas não segue exatamente o template obrigatório do repositório em vários pontos críticos. Reformule a descrição usando o template oficial: adicione checkboxes de 'Tipo de mudança' (✨ Nova feature ou 🔄 Refatoração), seção explícita 'Issue relacionada', e checklist completa com todas as verificações do repositório.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed O título descreve com precisão a mudança principal: remoção da autenticação Lovable e padronização do Supabase nativo, com identificação de rastreamento (F1-1.x).
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes the legacy Lovable Cloud auth broker integration and standardizes social login on native Supabase Auth OAuth flows (targeting the F1-1.x auth stack cleanup).

Changes:

  • Removed @lovable.dev/cloud-auth-js from dependencies and lockfile.
  • Deleted the Lovable auth integration module and removed the Lovable/self-host branching from social login.
  • Updated SSOCallbackPage documentation/comments to reflect the Supabase-only callback flows (plus formatting).

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
package.json Drops @lovable.dev/cloud-auth-js dependency.
package-lock.json Removes the dependency entry and its node_modules metadata.
src/components/auth/SocialLoginButtons.tsx Simplifies social login to always use supabase.auth.signInWithOAuth({ provider: 'google' }).
src/integrations/lovable/index.ts Deletes the Lovable auth broker wrapper.
src/pages/SSOCallbackPage.tsx Updates callback flow documentation/formatting around Supabase OAuth handling.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 111 to 112
// (1) e (3) Verifica se já existe sessão (broker Lovable já chamou setSession,
// ou supabase-js já parseou o hash fragment automaticamente).
* direto em domínios self-hosted. Como saímos do Lovable Cloud, agora
* usamos sempre Supabase Auth direto.
*
* Para reativar o SSO antes do deploy, ver `docs/AUTH-SSO-ACTIVATION.md`.
adm01-debug added a commit that referenced this pull request May 9, 2026
)

Complemento direto do PR #104 (cleanup/remove-lovable-auth).

Documento detalha como ativar SSO Google em produção via Supabase nativo,
em ~30min, sem precisar de código novo:

1. Criar OAuth Client ID no Google Cloud (passo 1)
2. Configurar redirect URIs (passo 2)
3. Habilitar provider Google no Supabase (passo 3)
4. Variáveis de ambiente (sanidade) (passo 4)
5. Smoke test manual (passo 5)
6. Apple Sign-In (opcional, passo 6) — requer implementar botão na UI primeiro

Inclui troubleshooting (erros comuns + solução) e procedimento de rollback
em 30 segundos (toggle Supabase) ou 1 linha de código (esconder botão).

**Risk**: zero (apenas documentação, nenhum código alterado).

**Test plan**: revisão manual do conteúdo + verificação dos links externos
(Supabase docs, Google docs).
@adm01-debug adm01-debug merged commit d5457af into main May 9, 2026
18 of 19 checks passed
@adm01-debug adm01-debug deleted the cleanup/remove-lovable-auth branch May 9, 2026 14:51
adm01-debug added a commit that referenced this pull request May 9, 2026
24 erros eliminados nos PRs da Faxina F1 desta semana (Onda 1, #103, #104,
#99, etc) que entraram em main como drift positivo. O `pre-push` hook já
sugeria "Considere atualizar o baseline" desde a Onda 1.

**Antes:**
- baseline: 1571 erros
- atual:    1547 erros (drift positivo de -24)

**Depois:**
- baseline: 1547 erros (congelados)
- atual:    1547 erros (sem drift, sem regressão)

**Distribuição dos 1547 erros congelados:**
- 615 arquivos com pelo menos 1 violação ignorada
- Maiores ofensores continuam sendo no-unused-vars, no-explicit-any,
  no-undef, eqeqeq (mesmas categorias mapeadas no relatório de auditoria
  — elas serão atacadas em PRs futuros da Fase 6)

**Risk**: 🟢 zero. Apenas reduz o teto que o CI permite — torna o gate
mais rigoroso, não menos. Qualquer regressão futura de lint vai falhar mais cedo.

**Test plan**:
- [x] `npm run lint:baseline:update` (regenerou)
- [x] `npm run lint:baseline` (gate passa: atual=baseline=1547)
- [ ] CI verde
- [ ] CodeRabbit OK
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants