.env
.envは、一般に以下2つの動機を混同して管理している
環境ごとに異なる(機密情報でない)変数を書きたい
機密情報を書きたい
envという名前から推察するに、本来の目的は前者のみのはずmrsekut.icon
.envに関する議論はこの2つを分けないとごっちゃになる
例えば、責務が前者だけの場合、Gitで管理することは何の問題もない
.envに機密情報を書いた場合のリスク
Gitで管理することで起きるリスク
コードに機密情報が埋め込まれることによるリスク
じゃあどうやって機密情報を扱えばよいのか
envfileの問題点
envはgitとは別の手段で共有するが、それを忘れがち
なので壊れがち
チームが大きいほど問題になりやすい
.envを誤ってpublic repoにcommitすると漏洩する
envとsmを組み合わせて使うハイブリットアプローチの提案
envにはsmのaccess tokenのみを保存しておく
他の情報はsmからfetchして使う
smの情報を使う関数を全てasyncにするか、injectionする必要があるのねmrsekut.icon
秘匿情報が必要なときは毎回serverから配信すれば良い
Next.js使っているならそのへんはカバーされているっぽいmrsekut.icon
どこまでが機密情報なのか?
開発環境のURLは秘匿情報か?
わざわざ公開してもリスクが増えるだけなので秘匿情報として扱いたい
GitHubで「add env」で検索する
ひぇっmrsekut.icon
安全なものに書き換えていても、diff見りゃ残ってるんだよな...