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