metasploit_data_models 1.3.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +2 -0
  5. data/Gemfile +7 -16
  6. data/app/models/mdm/workspace.rb +1 -44
  7. data/app/models/metasploit_data_models/search/visitor/where.rb +1 -1
  8. data/db/migrate/20160415153312_remove_not_null_from_web_vuln_p_arams.rb +5 -0
  9. data/lib/metasploit_data_models/version.rb +1 -1
  10. data/metasploit_data_models.gemspec +8 -9
  11. data/spec/app/models/mdm/host_spec.rb +1 -1
  12. data/spec/app/models/mdm/web_vuln_spec.rb +1 -1
  13. data/spec/app/models/mdm/workspace_spec.rb +1 -54
  14. data/spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb +1 -1
  15. data/spec/dummy/bin/bundle +3 -0
  16. data/spec/dummy/bin/rails +4 -0
  17. data/spec/dummy/bin/rake +4 -0
  18. data/spec/dummy/config/boot.rb +3 -9
  19. data/spec/dummy/config/environment.rb +3 -3
  20. data/spec/dummy/config/environments/development.rb +22 -8
  21. data/spec/dummy/config/environments/production.rb +43 -31
  22. data/spec/dummy/config/environments/test.rb +19 -10
  23. data/spec/dummy/config/initializers/assets.rb +8 -0
  24. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  25. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  26. data/spec/dummy/config/initializers/inflections.rb +6 -5
  27. data/spec/dummy/config/initializers/mime_types.rb +0 -1
  28. data/spec/dummy/config/initializers/session_store.rb +1 -6
  29. data/spec/dummy/config/initializers/wrap_parameters.rb +6 -6
  30. data/spec/dummy/config/locales/en.yml +23 -0
  31. data/spec/dummy/db/structure.sql +78 -75
  32. data/spec/spec_helper.rb +0 -5
  33. metadata +42 -52
  34. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3b60fcc58f7853a690eaa995996c2fef56b86439
4
- data.tar.gz: 9dd6197c1457688c06a9d75dece9a42a931f1fdc
3
+ metadata.gz: 9e3831b7d870ff2f6137158b6b3834424a60d6e6
4
+ data.tar.gz: 203a3c40853109a9c1f2b66c45d278c1eb42345b
5
5
  SHA512:
6
- metadata.gz: 695e9338ef6e687ce7830d7d3562559c6a447ad80c1b372bf361538d7114477e155e6e37d617860c1e7a750e55794d71164f939bf540967c4c29c8aaa9b47bed
7
- data.tar.gz: 059b3ea8a8cb6a4b86ac74d18750948b3a59dbc5ed7ee253533e026704c339de968924a28f9363a2f8b287c64af9d8d7e5b0cff3e26c30d2bb809cacd132c3bc
6
+ metadata.gz: 70986e57992f2d364bb3fc1ec81267f889529877f4a2795245af315ad3d12b339a353fab8d81e1f96104af9c6581037babbe50874f33289aee936e5b79b6a54d
7
+ data.tar.gz: b99e4c92772eaf4223d2a6e68c0693a675d99268382287a8eeaad21c818361b3e13b4d5421793abbd19badf589378a0c26871f629f815c6e4733dac3abdf2675
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/.gitignore CHANGED
@@ -25,3 +25,5 @@ Gemfile.lock
25
25
  pkg/*
26
26
  # Database configuration (with passwords) for specs
27
27
  spec/dummy/config/database.yml
28
+ # Secrets
29
+ spec/dummy/config/secrets.yml
data/Gemfile CHANGED
@@ -3,17 +3,11 @@ source "https://rubygems.org"
3
3
  # Specify your gem's dependencies in metasploit_data_models.gemspec
4
4
  gemspec
5
5
 
6
- # gem 'metasploit-yard', github: 'rapid7/metasploit-yard', branch: 'staging/rails-upgrade'
7
- # gem 'metasploit-erd', github: 'rapid7/metasploit-erd', branch: 'staging/rails-upgrade'
8
- # gem 'metasploit-erd', github: 'rapid7/yard-metasploit-erd', branch: 'staging/rails-upgrade'
9
- # gem 'metasploit-erd', github: 'rapid7/metasploit-concern', branch: 'staging/rails-upgrade'
10
- # gem 'metasploit-erd', github: 'rapid7/metasploit-model', branch: 'staging/rails-upgrade'
11
-
12
6
 
13
7
  group :development do
14
- gem 'metasploit-erd'
8
+ #gem 'metasploit-erd'
15
9
  # embed ERDs on index, namespace Module and Class<ActiveRecord::Base> pages
16
- gem 'yard-metasploit-erd'
10
+ #gem 'yard-metasploit-erd'
17
11
  end
18
12
 
19
13
  # used by dummy application
@@ -22,15 +16,12 @@ group :development, :test do
22
16
  gem 'coveralls', require: false
23
17
  # supplies factories for producing model instance for specs
24
18
  # Version 4.1.0 or newer is needed to support generate calls without the 'FactoryGirl.' in factory definitions syntax.
25
- gem 'factory_girl', '>= 4.1.0'
19
+ gem 'factory_girl'
26
20
  # auto-load factories from spec/factories
27
21
  gem 'factory_girl_rails'
28
22
 
29
- rails_version_constraint = [
30
- '>= 4.0.9',
31
- '< 4.1.0'
32
- ]
33
- gem 'rails', *rails_version_constraint
23
+
24
+ gem 'rails', '~>4.2.6'
34
25
  # Used to create fake data
35
26
  gem "faker"
36
27
  end
@@ -39,12 +30,12 @@ group :test do
39
30
  # In a full rails project, factory_girl_rails would be in both the :development, and :test group, but since we only
40
31
  # want rails in :test, factory_girl_rails must also only be in :test.
41
32
  # add matchers from shoulda, such as validates_presence_of, which are useful for testing validations
42
- gem 'shoulda-matchers', '~> 3.0'
33
+ gem 'shoulda-matchers'
43
34
  # code coverage of tests
44
35
  gem 'simplecov', :require => false
45
36
  # need rspec-rails >= 2.12.0 as 2.12.0 adds support for redefining named subject in nested context that uses the
46
37
  # named subject from the outer context without causing a stack overflow.
47
- gem 'rspec-rails', '~> 3.2'
38
+ gem 'rspec-rails'
48
39
  # used for building markup for webpage factories
49
40
  gem 'builder'
50
41
  end
@@ -129,41 +129,11 @@ class Mdm::Workspace < ActiveRecord::Base
129
129
 
130
130
  validates :name, :presence => true, :uniqueness => true, :length => {:maximum => 255}
131
131
  validates :description, :length => {:maximum => 4096}
132
- validate :boundary_must_be_ip_range
133
132
 
134
133
  #
135
134
  # Instance Methods
136
135
  #
137
136
 
138
- # If {#limit_to_network} is disabled, this will always return `true`. Otherwise, return `true` only if all of the
139
- # given IPs are within the project {#boundary boundaries}.
140
- #
141
- # @param ips [String] IP range(s)
142
- # @return [true] if actions on ips are allowed.
143
- # @return [false] if actions are not allowed on ips.
144
- def allow_actions_on?(ips)
145
- return true unless limit_to_network
146
- return true unless boundary
147
- return true if boundary.empty?
148
- boundaries = Shellwords.split(boundary)
149
- return true if boundaries.empty? # It's okay if there is no boundary range after all
150
- given_range = Rex::Socket::RangeWalker.new(ips)
151
- return false unless given_range # Can't do things to nonexistant IPs
152
- allowed = false
153
- boundaries.each do |boundary_range|
154
- ok_range = Rex::Socket::RangeWalker.new(boundary)
155
- allowed = true if ok_range.include_range? given_range
156
- end
157
- return allowed
158
- end
159
-
160
- # Validates that {#boundary} is {#valid_ip_or_range? a valid IP address or IP address range}.
161
- #
162
- # @return [void]
163
- def boundary_must_be_ip_range
164
- errors.add(:boundary, "must be a valid IP range") unless valid_ip_or_range?(boundary)
165
- end
166
-
167
137
  # @deprecated Use `Mdm::Workspace#credential_cores` when `Metasploit::Credential::Engine` is installed to get
168
138
  # `Metasploit::Credential::Core`s. Use `Mdm::Service#logins` when `Metasploit::Credential::Engine` is installed to
169
139
  # get `Metasploit::Credential::Login`s.
@@ -265,7 +235,6 @@ class Mdm::Workspace < ActiveRecord::Base
265
235
  Mdm::Service.join_association(:host),
266
236
  Mdm::Host.join_association(:workspace)
267
237
  ).where(Mdm::Workspace[:id].eq(id)).uniq
268
-
269
238
  end
270
239
 
271
240
  # Web vulnerability found on {#web_sites}.
@@ -295,7 +264,7 @@ class Mdm::Workspace < ActiveRecord::Base
295
264
  def web_unique_forms(addrs=nil)
296
265
  forms = unique_web_forms
297
266
  if addrs
298
- forms.reject!{|f| not addrs.include?( f.web_site.service.host.address.to_s ) }
267
+ forms.to_a.reject!{|f| not addrs.include?( f.web_site.service.host.address.to_s ) }
299
268
  end
300
269
  forms
301
270
  end
@@ -309,18 +278,6 @@ class Mdm::Workspace < ActiveRecord::Base
309
278
  boundary.strip! if boundary
310
279
  end
311
280
 
312
- # Returns whether `string` is a valid IP address or IP address range.
313
- #
314
- # @return [true] if valid IP address or IP address range.
315
- # @return [false] otherwise.
316
- def valid_ip_or_range?(string)
317
- begin
318
- Rex::Socket::RangeWalker.new(string)
319
- rescue
320
- return false
321
- end
322
- end
323
-
324
281
  public
325
282
 
326
283
  Metasploit::Concern.run(self)
@@ -118,7 +118,7 @@ class MetasploitDataModels::Search::Visitor::Where
118
118
  #
119
119
  # @return [Arel::Nodes::NamedFunction]
120
120
  def cast_to_inet(string)
121
- cast_argument = Arel::Nodes::As.new(string, Arel::Nodes::SqlLiteral.new('INET'))
121
+ cast_argument = Arel::Nodes::As.new(Arel::Nodes.build_quoted(string), Arel::Nodes::SqlLiteral.new('INET'))
122
122
  Arel::Nodes::NamedFunction.new('CAST', [cast_argument])
123
123
  end
124
124
 
@@ -0,0 +1,5 @@
1
+ class RemoveNotNullFromWebVulnPArams < ActiveRecord::Migration
2
+ def change
3
+ change_column_null(:web_vulns, :params, true)
4
+ end
5
+ end
@@ -1,6 +1,6 @@
1
1
  module MetasploitDataModels
2
2
  # VERSION is managed by GemRelease
3
- VERSION = '1.3.0'
3
+ VERSION = '2.0.0'
4
4
 
5
5
  # @return [String]
6
6
  #
@@ -30,10 +30,10 @@ Gem::Specification.new do |s|
30
30
 
31
31
  # ---- Dependencies ----
32
32
  # documentation
33
- s.add_development_dependency 'metasploit-yard', '~> 1.1'
34
- s.add_development_dependency 'yard-activerecord', '~> 0.0.14'
33
+ s.add_development_dependency 'metasploit-yard'
34
+ s.add_development_dependency 'yard-activerecord'
35
35
  # embed ERDs on index, namespace Module and Class<ActiveRecord::Base> pages
36
- s.add_development_dependency 'yard-metasploit-erd', '~> 1.1'
36
+ s.add_development_dependency 'yard-metasploit-erd'
37
37
 
38
38
  s.add_development_dependency 'rake'
39
39
 
@@ -43,13 +43,12 @@ Gem::Specification.new do |s|
43
43
  # debugging
44
44
  s.add_development_dependency 'pry'
45
45
 
46
- rails_version_constraints = ['>= 4.0.9', '< 4.1.0']
47
46
 
48
- s.add_runtime_dependency 'activerecord', *rails_version_constraints
49
- s.add_runtime_dependency 'activesupport', *rails_version_constraints
50
- s.add_runtime_dependency 'metasploit-concern', '~> 1.1'
51
- s.add_runtime_dependency 'metasploit-model', '~> 1.1'
52
- s.add_runtime_dependency 'railties', *rails_version_constraints
47
+ s.add_runtime_dependency 'activerecord', '~>4.2.6'
48
+ s.add_runtime_dependency 'activesupport', '~>4.2.6'
49
+ s.add_runtime_dependency 'metasploit-concern'
50
+ s.add_runtime_dependency 'metasploit-model'
51
+ s.add_runtime_dependency 'railties', '~>4.2.6'
53
52
 
54
53
  # os fingerprinting
55
54
  s.add_runtime_dependency 'recog', '~> 2.0'
@@ -408,7 +408,7 @@ RSpec.describe Mdm::Host, type: :model do
408
408
  let(:arch) { "asdfasdf" }
409
409
  it 'should normalize to Unknown' do
410
410
  expect(host).to be_valid
411
- expect(host.arch).to be described_class::UNKNOWN_ARCHITECTURE
411
+ expect(host.arch).to eq described_class::UNKNOWN_ARCHITECTURE
412
412
  end
413
413
  end
414
414
  described_class::ARCHITECTURES.each do |arch|
@@ -65,7 +65,7 @@ RSpec.describe Mdm::WebVuln, type: :model do
65
65
  it { is_expected.to have_db_column(:method).of_type(:string).with_options(:limit => 1024, :null => false) }
66
66
  it { is_expected.to have_db_column(:name).of_type(:string).with_options(:limit => 1024, :null => false) }
67
67
  it { is_expected.to have_db_column(:owner).of_type(:string) }
68
- it { is_expected.to have_db_column(:params).of_type(:text).with_options(:null => false) }
68
+ it { is_expected.to have_db_column(:params).of_type(:text) }
69
69
  it { is_expected.to have_db_column(:path).of_type(:text).with_options(:null => false) }
70
70
  it { is_expected.to have_db_column(:payload).of_type(:text) }
71
71
  it { is_expected.to have_db_column(:pname).of_type(:text) }
@@ -85,58 +85,6 @@ RSpec.describe Mdm::Workspace, type: :model do
85
85
  end
86
86
 
87
87
  context 'validations' do
88
- context 'boundary' do
89
- let(:boundary) do
90
- nil
91
- end
92
-
93
- let(:error) do
94
- 'must be a valid IP range'
95
- end
96
-
97
- before(:example) do
98
- workspace.boundary = boundary
99
- workspace.valid?
100
- end
101
-
102
- it 'should validate using #valid_ip_or_range?' do
103
- expect(workspace).to receive(:valid_ip_or_range?).with(boundary).and_return(false)
104
-
105
- workspace.valid?
106
- end
107
-
108
- context 'with valid IP' do
109
- let(:boundary) do
110
- '192.168.0.1'
111
- end
112
-
113
- it 'should not record an error' do
114
- expect(workspace.errors[:boundary]).not_to include(error)
115
- end
116
- end
117
-
118
- context 'with valid range' do
119
- let(:boundary) do
120
- '192.168.0.1/24'
121
- end
122
-
123
- it 'should not record an error' do
124
- expect(workspace.errors[:boundary]).not_to include(error)
125
- end
126
- end
127
-
128
- context 'with invalid IP or range' do
129
- let(:boundary) do
130
- '192.168'
131
- end
132
-
133
- it 'should record error that boundary must be a valid IP range', :pending => 'https://www.pivotaltracker.com/story/show/43171927' do
134
- expect(workspace).not_to be_valid
135
- expect(workkspace.errors[:boundary]).to include(error)
136
- end
137
- end
138
- end
139
-
140
88
  context 'description' do
141
89
  it { is_expected.to validate_length_of(:description).is_at_most(4 * (2 ** 10)) }
142
90
  end
@@ -549,5 +497,4 @@ RSpec.describe Mdm::Workspace, type: :model do
549
497
  end
550
498
  end
551
499
  end
552
-
553
- end
500
+ end
@@ -680,7 +680,7 @@ RSpec.describe MetasploitDataModels::Search::Visitor::Relation, type: :model do
680
680
 
681
681
  context 'with CIDR' do
682
682
  let(:formatted_address) {
683
- '1.3.4.5/8'
683
+ "'1.3.4.5/8'"
684
684
  }
685
685
 
686
686
  it 'should find only matching record' do
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
+ load Gem.bin_path('bundler', 'bundle')
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
3
+ require_relative '../config/boot'
4
+ require 'rails/commands'
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+ require_relative '../config/boot'
3
+ require 'rake'
4
+ Rake.application.run
@@ -1,10 +1,4 @@
1
- require 'rubygems'
2
- gemfile = File.expand_path('../../../../Gemfile', __FILE__)
1
+ # Set up gems listed in the Gemfile.
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
3
3
 
4
- if File.exist?(gemfile)
5
- ENV['BUNDLE_GEMFILE'] = gemfile
6
- require 'bundler'
7
- Bundler.setup
8
- end
9
-
10
- $:.unshift File.expand_path('../../../../lib', __FILE__)
4
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
@@ -1,5 +1,5 @@
1
- # Load the rails application
1
+ # Load the Rails application.
2
2
  require File.expand_path('../application', __FILE__)
3
3
 
4
- # Initialize the rails application
5
- Dummy::Application.initialize!
4
+ # Initialize the Rails application.
5
+ Rails.application.initialize!
@@ -1,23 +1,37 @@
1
- Dummy::Application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb
1
+ Rails.application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
3
 
4
4
  # In the development environment your application's code is reloaded on
5
5
  # every request. This slows down response time but is perfect for development
6
6
  # since you don't have to restart the web server when you make code changes.
7
7
  config.cache_classes = false
8
8
 
9
- # Show full error reports and disable caching
9
+ # Do not eager load code on boot.
10
+ config.eager_load = false
11
+
12
+ # Show full error reports and disable caching.
10
13
  config.consider_all_requests_local = true
11
14
  config.action_controller.perform_caching = false
12
15
 
13
- # Don't care if the mailer can't send
16
+ # Don't care if the mailer can't send.
14
17
  config.action_mailer.raise_delivery_errors = false
15
18
 
16
- # Do not compress assets
17
- config.assets.compress = false
19
+ # Print deprecation notices to the Rails logger.
20
+ config.active_support.deprecation = :log
21
+
22
+ # Raise an error on page load if there are pending migrations.
23
+ config.active_record.migration_error = :page_load
18
24
 
19
- # Expands the lines which load the assets
25
+ # Debug mode disables concatenation and preprocessing of assets.
26
+ # This option may cause significant delays in view rendering with a large
27
+ # number of complex assets.
20
28
  config.assets.debug = true
21
29
 
22
- config.eager_load = false
30
+ # Adds additional error checking when serving assets at runtime.
31
+ # Checks for improperly declared sprockets dependencies.
32
+ # Raises helpful error messages.
33
+ config.assets.raise_runtime_errors = true
34
+
35
+ # Raises error for missing translations
36
+ # config.action_view.raise_on_missing_translations = true
23
37
  end
@@ -1,66 +1,78 @@
1
- Dummy::Application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb
1
+ Rails.application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
3
 
4
- # Code is not reloaded between requests
4
+ # Code is not reloaded between requests.
5
5
  config.cache_classes = true
6
6
 
7
- # Full error reports are disabled and caching is turned on
7
+ # Eager load code on boot. This eager loads most of Rails and
8
+ # your application in memory, allowing both threaded web servers
9
+ # and those relying on copy on write to perform better.
10
+ # Rake tasks automatically ignore this option for performance.
11
+ config.eager_load = true
12
+
13
+ # Full error reports are disabled and caching is turned on.
8
14
  config.consider_all_requests_local = false
9
15
  config.action_controller.perform_caching = true
10
16
 
11
- # Disable Rails's static asset server (Apache or nginx will already do this)
17
+ # Enable Rack::Cache to put a simple HTTP cache in front of your application
18
+ # Add `rack-cache` to your Gemfile before enabling this.
19
+ # For large-scale production use, consider using a caching reverse proxy like nginx, varnish or squid.
20
+ # config.action_dispatch.rack_cache = true
21
+
22
+ # Disable Rails's static asset server (Apache or nginx will already do this).
12
23
  config.serve_static_assets = false
13
24
 
14
- # Compress JavaScripts and CSS
15
- config.assets.compress = true
25
+ # Compress JavaScripts and CSS.
26
+ config.assets.js_compressor = :uglifier
27
+ # config.assets.css_compressor = :sass
16
28
 
17
- # Don't fallback to assets pipeline if a precompiled asset is missed
29
+ # Do not fallback to assets pipeline if a precompiled asset is missed.
18
30
  config.assets.compile = false
19
31
 
20
- # Generate digests for assets URLs
32
+ # Generate digests for assets URLs.
21
33
  config.assets.digest = true
22
34
 
23
- # Defaults to nil and saved in location specified by config.assets.prefix
24
- # config.assets.manifest = YOUR_PATH
35
+ # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
25
36
 
26
- # Specifies the header that your server uses for sending files
37
+ # Specifies the header that your server uses for sending files.
27
38
  # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
28
39
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
29
40
 
30
41
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
31
42
  # config.force_ssl = true
32
43
 
33
- # See everything in the log (default is :info)
34
- # config.log_level = :debug
44
+ # Set to :debug to see everything in the log.
45
+ config.log_level = :info
35
46
 
36
- # Prepend all log lines with the following tags
47
+ # Prepend all log lines with the following tags.
37
48
  # config.log_tags = [ :subdomain, :uuid ]
38
49
 
39
- # Use a different logger for distributed setups
50
+ # Use a different logger for distributed setups.
40
51
  # config.logger = ActiveSupport::TaggedLogging.new(SyslogLogger.new)
41
52
 
42
- # Use a different cache store in production
53
+ # Use a different cache store in production.
43
54
  # config.cache_store = :mem_cache_store
44
55
 
45
- # Enable serving of images, stylesheets, and JavaScripts from an asset server
56
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
46
57
  # config.action_controller.asset_host = "http://assets.example.com"
47
58
 
48
- # Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added)
49
- # config.assets.precompile += %w( search.js )
50
-
51
- # Disable delivery errors, bad email addresses will be ignored
59
+ # Ignore bad email addresses and do not raise email delivery errors.
60
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
52
61
  # config.action_mailer.raise_delivery_errors = false
53
62
 
54
- # Enable threaded mode
55
- # config.threadsafe!
56
-
57
63
  # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
58
- # the I18n.default_locale when a translation can not be found)
64
+ # the I18n.default_locale when a translation cannot be found).
59
65
  config.i18n.fallbacks = true
60
66
 
61
- # Log the query plan for queries taking more than this (works
62
- # with SQLite, MySQL, and PostgreSQL)
63
- # config.active_record.auto_explain_threshold_in_seconds = 0.5
64
-
65
- config.eager_load = true
67
+ # Send deprecation notices to registered listeners.
68
+ config.active_support.deprecation = :notify
69
+
70
+ # Disable automatic flushing of the log to improve performance.
71
+ # config.autoflush_log = false
72
+
73
+ # Use default logging formatter so that PID and timestamp are not suppressed.
74
+ config.log_formatter = ::Logger::Formatter.new
75
+
76
+ # Do not dump schema after migrations.
77
+ config.active_record.dump_schema_after_migration = false
66
78
  end