ADR-003: Login Google como Feature Opcional Pós-Lançamento
Status: Implementado Data (estimada): feature/40-login → master (commit
a96e1a43) Tipo: ADR Retroativo
Contexto
O produto foi lançado sem autenticação. O fluxo de compartilhamento de repertório inicialmente era apenas por texto (WhatsApp). Com a demanda de sincronização entre dispositivos, folheto PDF e identificação do autor da sugestão, surgiu a necessidade de uma conta de usuário.
Decisão
Implementar Google OAuth 2.0 com PKCE como mecanismo de autenticação, mantendo o login como funcionalidade opcional — o app funciona completamente sem conta para leitura de músicas, repertórios locais e liturgia.
Alternativas Consideradas
- Apple Sign-In — descartado como opção única (obrigatória na App Store apenas se usar login social, mas o Google é suficiente como opção)
- E-mail + senha — descartado por complexidade de gerenciamento de credenciais no servidor
- Login obrigatório — descartado para não criar barreira de entrada ao produto
Consequências
- 🟢 Barreira zero para novos usuários — tudo funciona sem conta
- 🟢 Sem necessidade de gerenciar senhas no servidor
- 🟡 Dependência do Google OAuth — se o serviço cair, compartilhamento é bloqueado
- 🟡 No web: credenciais em localStorage (sem HttpOnly) — risco aceitável para o contexto
- 🟢 PKCE garante segurança sem client_secret no bundle do app