2017/09/12分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
- Add
config/credentials.yml.enc
to store production app secrets. - Add
ActiveSupport::EncryptedFile
andActiveSupport::EncryptedConfiguration
.
Add credentials using a generic EncryptedConfiguration class (#30067)
秘密情報を保持する為のファイルとして、config/credentials.yml.enc
を追加しています。
現状、秘密情報を保持する為のファイルが複数(config/secrets.yml
、config/secrets.yml.enc
)あり、かつ、それらのファイルとは別にSECRET_BASE_KEY
という環境変数があったりで、少々ややこしい状態になっていました。
そのため、既存の仕組みとは別に、新たに秘密情報を管理する為のファイルを追加し、今後はそこに秘密情報を集約する事にしていく予定との事です。secret_key_base
もデフォルトでconfig/credentials.yml.enc
に定義されるようになています。なお、secrets.yml.xxxはdeprecateにする予定との事です(このPRではそこまでは含まれていません)。
config/credentials.yml.enc
にはencrypted secrets同様に編集、及び、値を表示する為のコマンド(credentials:edit
、credentials:show
)が提供されており、encrypted secretsとおなじような形で使用できます。なお、keyファイル名は異なっています(credentialsはconfig/master.key
というファイルを使用しています)。なお、RAILS_MASTER_KEY
環境変数は変わらず使用出来ます。
合わせて、EncryptedFileを扱う為の仕組みをActive Supportに切り出して汎用的に使用できるようにする対応、及び、secret_key_baseの設定がdevelopment及びtestで不要になる対応が含まれています。
secret_key_baseがconfig/credentials.yml.enc
で設定されるようになった、かつ、config/credentials.yml.enc
はproduction環境でのみ使用する事を想定している事から、secret_key_baseをdevelopment及びtestで設定しないで良いようにしたようです。
Ignore activestorage/test/service/configurations.yml
.gitignore
の修正です。
activestorage/test/service/configurations.yml
をignoreするファイルに追加しています。
上記ファイルはActive Storageのテストの時に使用するファイルで、外部サービス(AWC, GCP, Azure)のアクセスkey等を定義する為のファイルです。で、当然それらの情報はsecretsであり、リポジトリに含むべきではない為、ignoreするようにしています。
activestorage/test/service/configurations.yml
をactivestorage/test/service/configurations.example.yml
にリネームしています。
先のコミットの通り、configurations.yml
はignoreするようになったのですが、exampleが無いとそもそも何書いたら良いかわからないので、configurations.example.yml
が代わりに置かれるようになりました。
Use escaped character in regexp
railties/test/generators/namespaced_generators_test.rb
の修正です。
assert_no_match
でテストを行ってる箇所で正規表現を使用する際、".“をエスケープせずに使用している箇所があったのを、”\“でエスケープするよう修正しています。