Commit 5da10c3
Changed files (14)
config
environments
initializers
config/environments/development.rb
@@ -1,10 +1,6 @@
# frozen_string_literal: true
Rails.application.configure do
- # Verifies that versions and hashed value of the package contents in the
- # project's package.json
- config.webpacker.check_yarn_integrity = true
-
# Settings specified here will take precedence over those in
# config/application.rb
config.webpacker.check_yarn_integrity = true
@@ -21,12 +17,13 @@ Rails.application.configure do
config.consider_all_requests_local = true
# Enable/disable caching. By default caching is disabled.
- if Rails.root.join('tmp/caching-dev.txt').exist?
+ # Run rails dev:cache to toggle caching.
+ if Rails.root.join('tmp', 'caching-dev.txt').exist?
config.action_controller.perform_caching = true
config.cache_store = :memory_store
config.public_file_server.headers = {
- 'Cache-Control' => "public, max-age=#{2.days.seconds.to_i}"
+ 'Cache-Control' => "public, max-age=#{2.days.to_i}"
}
else
config.action_controller.perform_caching = false
@@ -34,6 +31,10 @@ Rails.application.configure do
config.cache_store = :null_store
end
+ # Store uploaded files on the local file system
+ # (see config/storage.yml for options)
+ config.active_storage.service = :local
+
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false
@@ -45,6 +46,9 @@ Rails.application.configure do
# Raise an error on page load if there are pending migrations.
config.active_record.migration_error = :page_load
+ # Highlight code that triggered database queries in logs.
+ config.active_record.verbose_query_logs = true
+
# Debug mode disables concatenation and preprocessing of assets.
# This option may cause significant delays in view rendering with a large
# number of complex assets.
config/environments/production.rb
@@ -1,10 +1,6 @@
# frozen_string_literal: true
Rails.application.configure do
- # Verifies that versions and hashed value of the package contents in the
- # project's package.json
- config.webpacker.check_yarn_integrity = false
-
# Settings specified here will take precedence over those in
# config/application.rb
config.webpacker.check_yarn_integrity = false
@@ -22,24 +18,25 @@ Rails.application.configure do
config.consider_all_requests_local = false
config.action_controller.perform_caching = true
- # Attempt to read encrypted secrets from `config/secrets.yml.enc`.
- # Requires an encryption key in `ENV["RAILS_MASTER_KEY"]` or
- # `config/secrets.yml.key`.
- config.read_encrypted_secrets = true
+ # Ensures that a master key has been made available in either
+ # ENV["RAILS_MASTER_KEY"]
+ # or in config/master.key. This key is used to decrypt credentials
+ # (and other encrypted files).
+ # config.require_master_key = true
# Disable serving static files from the `/public` folder by default since
# Apache or NGINX already handles this.
config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
# Compress JavaScripts and CSS.
- # config.assets.js_compressor = :uglifier
+ config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
- # `config.assets.precompile` and `config.assets.version`
- # have moved to config/initializers/assets.rb
+ # `config.assets.precompile` and `config.assets.version` have moved to
+ # config/initializers/assets.rb
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
# config.action_controller.asset_host = 'http://assets.example.com'
@@ -48,6 +45,10 @@ Rails.application.configure do
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
+ # Store uploaded files on the local file system
+ # (see config/storage.yml for options)
+ config.active_storage.service = :local
+
# Mount Action Cable outside main process or domain
# config.action_cable.mount_path = nil
# config.action_cable.url = 'wss://example.com/cable'
@@ -72,6 +73,7 @@ Rails.application.configure do
# (and separate queues per environment)
# config.active_job.queue_adapter = :resque
# config.active_job.queue_name_prefix = "proof_#{Rails.env}"
+
config.action_mailer.perform_caching = false
# Ignore bad email addresses and do not raise email delivery errors.
config/environments/test.rb
@@ -1,8 +1,8 @@
# frozen_string_literal: true
Rails.application.configure do
- # Settings specified here will take precedence over those
- # in config/application.rb.
+ # Settings specified here will take precedence over those in
+ # config/application.rb
# The test environment is used exclusively to run your application's
# test suite. You never need to work with it otherwise. Remember that
@@ -18,7 +18,7 @@ Rails.application.configure do
# Configure public file server for tests with Cache-Control for performance.
config.public_file_server.enabled = true
config.public_file_server.headers = {
- 'Cache-Control' => "public, max-age=#{1.hour.seconds.to_i}"
+ 'Cache-Control' => "public, max-age=#{1.hour.to_i}"
}
# Show full error reports and disable caching.
@@ -30,6 +30,10 @@ Rails.application.configure do
# Disable request forgery protection in test environment.
config.action_controller.allow_forgery_protection = false
+
+ # Store uploaded files on the local file system in a temporary directory
+ config.active_storage.service = :test
+
config.action_mailer.perform_caching = false
# Tell Action Mailer not to deliver emails to the real world.
config/initializers/content_security_policy.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+# Be sure to restart your server when you modify this file.
+
+# Define an application-wide content security policy
+# For further information see the following documentation
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
+
+# Rails.application.config.content_security_policy do |policy|
+# policy.default_src :self, :https
+# policy.font_src :self, :https, :data
+# policy.img_src :self, :https, :data
+# policy.object_src :none
+# policy.script_src :self, :https
+# policy.style_src :self, :https
+
+# # Specify URI for violation reports
+# # policy.report_uri "/csp-violation-report-endpoint"
+# end
+
+# If you are using UJS then enable automatic nonce generation
+# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
+
+# Report CSP violations to a specified URI
+# For further information see the following documentation:
+# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only
+# Rails.application.config.content_security_policy_report_only = true
config/application.rb
@@ -12,11 +12,12 @@ Dotenv.load(".env.local", ".env.#{Rails.env}", ".env")
module Proof
class Application < Rails::Application
# Initialize configuration defaults for originally generated Rails version.
- config.load_defaults 5.1
+ config.load_defaults 5.2
# Settings in config/environments/* take precedence over those specified
# here.
- # Application configuration should go into files in config/initializers
- # -- all .rb files in that directory are automatically loaded.
+ # Application configuration can go into files in config/initializers
+ # -- all .rb files in that directory are automatically loaded after loading
+ # the framework and any gems in your application.
end
end
config/cable.yml
@@ -6,5 +6,5 @@ test:
production:
adapter: redis
- url: redis://localhost:6379/1
+ url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %>
channel_prefix: proof_production
config/credentials.yml.enc
@@ -0,0 +1,1 @@
+dDOzIOVIa7ekY7NpkWpHS13CTOMcPWJm+N5tQ6+ydfvmBW0I1C5CX8DJpvFPKDd+xz16L0sKmmy+c+cM0P7+2QCVwPr32H46ntzg2WASRy0mPil5KlOLAHSGh80U8pEUW84ufYlEviYmte9x8hA83Da4TD1VLKAEmIETzWcloETA00a3by/MA1kjWOruNUmuzDbPMjTJCw5/qGvtvU5Exi0hU72VnnQbyHHtlxHoUgmcHsg7Wgynob4z2D8gvXVzmoxrWedT93QjgKXDbkdbYubMFFZQr2fHOcOKVkAai5GHyYPbndJsgwQ0t+NCQH8Y8KmIyzBla2WtfMVMP2jSJrnlIkh2tYlWnKqsrRNmQUHV6gJZ01aCRcm2XSQwtsv4rRq/+3WbELq7x38k3WuHbwxfVtMF8FnoZhjS--PRf9HdxMWVbWoRU3--Bo5kQAi40+k8PQ+RbvtBNA==
\ No newline at end of file
config/puma.rb
@@ -27,30 +27,9 @@ workers ENV.fetch("WEB_CONCURRENCY") { 2 }
# Use the `preload_app!` method when specifying a `workers` number.
# This directive tells Puma to first boot the application and load code
# before forking the application. This takes advantage of Copy On Write
-# process behavior so workers use less memory. If you use this option
-# you need to make sure to reconnect any threads in the `on_worker_boot`
-# block.
+# process behavior so workers use less memory.
#
preload_app!
-# If you are preloading your application and using Active Record, it's
-# recommended that you close any connections to the database before workers
-# are forked to prevent connection leakage.
-#
-before_fork do
- ActiveRecord::Base.connection_pool.disconnect! if defined?(ActiveRecord)
-end
-
-# The code in the `on_worker_boot` will be called if you are using
-# clustered mode by specifying a number of `workers`. After each worker
-# process is booted, this block will be run. If you are using the `preload_app!`
-# option, you will want to use this block to reconnect to any threads
-# or connections that may have been created at application boot, as Ruby
-# cannot share connections between processes.
-#
-on_worker_boot do
- ActiveRecord::Base.establish_connection if defined?(ActiveRecord)
-end
-
# Allow puma to be restarted by `rails restart` command.
plugin :tmp_restart
config/secrets.yml
@@ -1,32 +0,0 @@
-# Be sure to restart your server when you modify this file.
-
-# Your secret key is used for verifying the integrity of signed cookies.
-# If you change this key, all old signed cookies will become invalid!
-
-# Make sure the secret is at least 30 characters and all random,
-# no regular words or you'll be exposed to dictionary attacks.
-# You can use `rails secret` to generate a secure secret key.
-
-# Make sure the secrets in this file are kept private
-# if you're sharing your code publicly.
-
-# Shared secrets are available across all environments.
-
-# shared:
-# api_key: a1B2c3D4e5F6
-
-# Environmental secrets are only available for that specific environment.
-
-development:
- secret_key_base: 017db8b6e8f4db01ec33c519eb43907ca4cfcd279f08eeabe06a1144271e9c1d4dbe5e85f27f85d2d7f141aeae9fd43242396c5a5529e100035ed79c00fd485c
-
-test:
- secret_key_base: aa37e59ae32a027cec4b55804d1a8cbd1d94043f3bed954be5a3fdf837511be4a9aa084615918bfc73aafab5125ab0c02b47aa7207d1be55a2995f74ccca95f7
-
-# Do not keep production secrets in the unencrypted secrets file.
-# Instead, either read values from the environment.
-# Or, use `bin/rails secrets:setup` to configure encrypted secrets
-# and move the `production:` environment over there.
-
-production:
- secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
config/storage.yml
@@ -0,0 +1,34 @@
+test:
+ service: Disk
+ root: <%= Rails.root.join("tmp/storage") %>
+
+local:
+ service: Disk
+ root: <%= Rails.root.join("storage") %>
+
+# Use rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key)
+# amazon:
+# service: S3
+# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
+# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %>
+# region: us-east-1
+# bucket: your_own_bucket
+
+# Remember not to checkin your GCS keyfile to a repository
+# google:
+# service: GCS
+# project: your_project
+# credentials: <%= Rails.root.join("path/to/gcs.keyfile") %>
+# bucket: your_own_bucket
+
+# Use rails credentials:edit to set the Azure Storage secret (as azure_storage:storage_access_key)
+# microsoft:
+# service: AzureStorage
+# storage_account_name: your_account_name
+# storage_access_key: <%= Rails.application.credentials.dig(:azure_storage, :storage_access_key) %>
+# container: your_container_name
+
+# mirror:
+# service: Mirror
+# primary: local
+# mirrors: [ amazon, google, microsoft ]
.env
@@ -1,1 +1,2 @@
ISSUER=http://proof.test/metadata
+RAILS_MASTER_KEY=''
.rubocop.yml
@@ -5,6 +5,7 @@ AllCops:
2.5
Exclude:
- 'bin/**/*'
+ - 'config/initializers/*.rb'
- 'config/routes.rb'
- 'db/schema.rb'
- 'db/seeds.rb'
Gemfile
@@ -22,8 +22,9 @@ gem 'scim-shady', '~> 0.2'
gem 'spank'
gem 'therubyracer', platforms: :ruby
gem 'turbolinks', '~> 5'
+gem 'uglifier', '>= 1.3.0'
gem 'webpacker'
-# gem 'redis', '~> 3.0'
+# gem 'redis', '~> 4.0'
group :development do
gem 'brakeman'
Gemfile.lock
@@ -258,6 +258,8 @@ GEM
turbolinks-source (5.1.0)
tzinfo (1.2.5)
thread_safe (~> 0.1)
+ uglifier (4.1.9)
+ execjs (>= 0.3.0, < 3)
unicode-display_width (1.3.0)
web-console (3.6.0)
actionview (>= 5.0)
@@ -324,6 +326,7 @@ DEPENDENCIES
sqlite3
therubyracer
turbolinks (~> 5)
+ uglifier (>= 1.3.0)
web-console (>= 3.3.0)
webmock
webpacker