はじめに
タイトルのことで今日、詰まりました。
なんかわかっていなかったので書き残しています。
credentials.yml.enc
こいつは秘密情報で暗号化されたものである。
rails new で作成される。
暗号化されているので、githubにpushしても問題ない。
複合するにはrails new した際に同時に作成されたmaster.keyが必要になる。
master.key
上で書いたcredentials.yml.encを複合する際に必要となる。
これが流出したら外部の人間がcredentials.yml.encを複合して内容を閲覧できてしまうので注意。
ただrailsが.gitignoreに設定してくれているので迂闊に修正しない限りはgitの履歴に載ることはない。
チーム開発においてあるメンバーが作成し、pushしたcredentials.yml.encをローカルで開発していく際に
使う場合はそのメンバーからmaster.keyを直接もらってconfig/master.keyに配置するか環境変数として
チーム内で共有するという形を取る。
環境変数にする場合はRAILS_MASTER_KEYとしてからすること。
コマンドについて
credentialsを参照するためにはコマンドで参照したりすることが多い。
内容を見たいのなら bin/rails credentials:show
編集したいなら bin/rails credentials:editを使用する。
なお編集については vi や vim等のコマンドを指定する必要がある。
自分はvimでやりたいという人間は EDITOR="vim" bin/rails credentials:edit とする。
docker で開発を進めることが多く、大抵 上記のようにvim指定してコマンド実行しても
コンテナにvimコマンドがないことがほとんどだと思うのでそのような場合は apt install vim ?だっけか
そのようなコマンドを叩いてvimをインストールしてから使うこと。
コード内でcredentialsを参照する
Rails.application.credentials.(参照対象の名前) みたいにする。
終わりに
意外とわかってなかった。
これを機に理解した。