Class: RailsBase::Configuration::Mfa

Inherits:
Base
  • Object
show all
Defined in:
lib/rails_base/configuration/mfa.rb

Constant Summary collapse

MFA_MIN_LENGTH =
4
MFA_MAX_LENGTH =
8
DEFAULT_VALUES =
{
  enable: {
    type: :boolean,
    default: ENV.fetch('MFA_ENABLE', 'true')=='true',
    description: 'Enable MFA and SMS verification. When not enabled, there are some interesting consequences',
  },
  mfa_length: {
    type: :integer,
    default: 5,
    custom: ->(val) { val > MFA_MIN_LENGTH && val < MFA_MAX_LENGTH },
    msg: "Must be an integer greater than #{MFA_MIN_LENGTH} and less than #{MFA_MAX_LENGTH}",
    description: 'Length of MFA verification',
  },
  twilio_sid: {
    type: :string,
    default: ENV.fetch('TWILIO_ACCOUNT_SID',''),
    secret: true,
    description: 'Twilio SID',
  },
  twilio_auth_token: {
    type: :string,
    default: ENV.fetch('TWILIO_AUTH_TOKEN', ''),
    secret: true,
    description: 'Twilio Auth Token',
  },
  twilio_from_number: {
    type: :string,
    default: ENV.fetch('TWILIO_FROM_NUMBER', ''),
    description: 'Number that we send MFA\'s From',
  },
  twilio_velocity_max: {
    type: :integer,
    default: ENV.fetch('TWILIO_VELOCITY_MAX', 5).to_i,
    description: 'Max number of SMS we send to a user in a sliding window',

  },
  twilio_velocity_max_in_frame: {
    type: :duration,
    default: ENV.fetch('TWILIO_VELOCITY_MAX_IN_FRAME', 1).to_i.hours,
    description: 'Sliding window for twilio_velocity_max',
  },
  twilio_velocity_frame: {
    type: :duration,
    default: ENV.fetch('TWILIO_VELOCITY_FRAME', 5).to_i.hours,
    description: 'Debug purposes. How long to keep admin_velocity_max attempts',
  },
  active_job_queue: {
    type: :string,
    default: 'twilio_sms',
    description: 'The active job queue to send twilio messages from. Ensure that adapter is bound to the queue',
  }
}

Constants inherited from Base

Base::ALLOWED_TYPES

Method Summary

Methods inherited from Base

_allow_write_block?, _unset_allow_write!, #assign_default_values!, #dig, #initialize, #override_methods!, #validate!

Constructor Details

This class inherits a constructor from RailsBase::Configuration::Base