evo-auth-service-community¶
Ruby 3.4.4 / Rails 7.1 · porta 3001
Serviço de autenticação e autorização: Bearer/JWT, OAuth 2.0 (Doorkeeper,
RFC 6749), MFA (TOTP, Email OTP, backup codes), RBAC granular, isolamento por
conta, discovery .well-known (RFC 8414), compliance GDPR/LGPD.
Estrutura em camadas (padrão comum a Auth e CRM)¶
app/
├── models/concerns/ # behaviors compartilhados
├── services/[domain]/ # Service Objects — lógica de negócio
├── controllers/ # HTTP handlers finos, delegam a services
├── jobs/ # Sidekiq async jobs
├── listeners/ # Wisper event subscribers
├── builders/ # construtores de objetos complexos
├── policies/ # Pundit — RBAC
├── serializers/ # JSON serializers (Plain Ruby, via Oj)
├── channels/ # ActionCable (WebSocket)
└── mailers/
spec/
├── models/, services/, requests/ (contrato de API), fixtures/
Padrões¶
Service Objects:
app/services/domain/operation_service.rb.Event-driven (Wisper): eventos como
contact.created,message.sent.Pundit Policies:
ContactPolicy.new(user, contact).show?.Serializers em Plain Ruby (sem
ActiveModel::Serializer).
Build & testes¶
cd evo-auth-service-community
bundle install
bundle exec rails db:migrate
bundle exec rails s -p 3001
bundle exec rspec # todos os testes
bundle exec rspec spec/services/ # unit
bundle exec rspec spec/requests/ # contrato de API