2017/11/27分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Add new error class
QueryCanceled
which will be raised when canceling statement due to user request.
Revert "Merge pull request #31006 from rails/kamipo/ordinal_methods_should_respect_loaded_records"
Active Recordのordinal methods(first
やsecond
等)でrecordsがロード済みの場合ロード済みのrecordsを使用するよう修正した、Merge pull request #31006 from rails/kamipo/ordinal_methods_should_respect_loaded_records をrevertしています。
昨日も書いたとおり、別のPRで進めている対応と内容が矛盾している為、というで理由でrevertされています。
Merge pull request #31229 from y-yagi/remove_field_ids_from_scaffold_form
railties/lib/rails/generators/erb/scaffold/templates/_form.html.erb.tt
、
railties/lib/rails/generators/named_base.rb
の修正です。
scaffoldで生成される_form.html.erb
にid
属性が付与されていたのを削除しています。
label
とinput
をリンクする為に付与していたのですが、Merge pull request #29439 from npezza93/set-skip-default-idsでform_with
もデフォルトでid
属性を生成するようになり、viewに明示的にid
属性を付与する必要は無くなった為削除しています。
Rename TransactionTimeout
to more descriptive LockWaitTimeout
(#31223)
Active Recordの修正です。
ロック待機のタイムアウトの期限が切れた場合に使用する為の
TransactionTimeoutを
LockWaitTimeoutにリネームしています。
TransactionTimeoutは汎用的な名前過ぎてエラーの内容がわかりずらく、
LockWaitTimeout`の方がより適切な名前だろう、という事で変更されたようでう。
Active Recordの修正です。
ユーザのリクエストによりqueryがキャンセルされた時に使用する為のQueryCanceled
クラスを追加しています。
Merge pull request #31167 from albertoalmagro/clean-db-ambiguity
railties/lib/rails/tasks/engine.rake
の修正です。
taskのdescpiton内のDB
をrailties/lib/rails/tasks/engine.rake
に修正しています。
Use Puma 3.11 in newly generated applications
railties/lib/rails/generators/app_base.rb
の修正です。
rails new
で生成するGemfileで使用するPumaのバージョンを3.11以上に修正しています。
early hintsを使用するにはPuma 3.11以上が必要な為。
参考:3.11 (Amber is the color of it's energy)
Add DSL for configuring Content-Security-Policy header
Action Packの修正です。
Content-Security-Policy headerを設定出来るよう対応しています。
設定はアプリ全体(initializersで実施)、及び、controller単位で出来るようになっています。
# config/initializers/content_security_policy.rb Rails.application.config.content_security_policy do |p| p.default_src :self, :https p.font_src :self, :https, :data p.img_src :self, :https, :data p.object_src :none p.script_src :self, :https p.style_src :self, :https, :unsafe_inline # Specify URI for violation reports # p.report_uri "/csp-violation-report-endpoint" end
class PostsController < ApplicationController content_security_policy do |p| p.upgrade_insecure_requests true p.base_uri :self, -> { "https://#{current_user.domain}.example.com" } end end
また、config.content_security_policy_report_only
にtrueを指定するとレポートだけを行う(ブロックはしない)モードになります(Content-Security-Policy-Report-Only
がHTTPヘッダーに指定される)。 content_security_policy_report_only
はcontroller単位でも指定可能になっています。
参考:Content Security Policy (CSP) - Web セキュリティ | MDN
Enable Style/DefWithParentheses
rubocop rule
.rubocop.yml
にStyle/DefWithParentheses
copを追加、及び各ファイルにルールを適用しています。
Add CHANGELOG.md entry for #31162 [ci skip]
actionpack/CHANGELOG.md
の修正です。
先のコミットで追加されたContent-Security-Policy headerの対応についてエントリーを追加しています。
Fix CHANGELOG for CSP PR #31162 [ci skip]
actionpack/CHANGELOG.md
の修正です。
Content-Security-Policy headerの対応についてのエントリーのexampleコードでタイポしている箇所があったのを修正しています。
Merge pull request #31238 from prathamesh-sonpatki/csp-initializer-test
railties/test/generators/app_generator_test.rb
の修正です。
デフォルトで生成されるファイルを確認するテストで、config/initializers/content_security_policy.rb
が生成される事を確認するよう修正しています。
Update the middleware list with CSP [ci skip]
rails guideのRails on Rack
の修正です。
Inspecting Middleware Stack
の項、bin/rails middleware
の実行結果の一覧にActionDispatch::ContentSecurityPolicy::Middleware
を追加しています。
Remove Content-Security-Policy initializer in API-only Applications
railties/lib/rails/generators/rails/app/app_generator.rb
の修正です。
Content-Security-Policy header用のinitializerをAPI-only Applicationでは削除するよう修正しています。APIではContent-Security-Policyを指定する必要は無い為。