1PasswordにはVS Code拡張があって、.env ファイルなどにハードコードされたシークレットを1Passwordに保存して、secret reference というURL形式に置き換えてくれる。
ちなみにコミュニティ製のJetBrains IDE用の拡張もある。
これを使って .env.local.template を作る。
TWITTER_CONSUMER_KEY='op://Private/Twitter/API Key/consumer_key' TWITTER_CONSUMER_SECRET='op://Private/Twitter/API Key/consumer_secret'
op:// のところがsecret reference。
.gitignore ファイルでは .env.local は無視しているけど、.env.local.template はリポジトリに入れてしまう。
# .env .env.local .env.*.local
あとは、1PasswordのVS Code拡張で「Preview with secrets」すると、secret referenceが解決されたプレビューが得られるので、これを .env.local として保存したら良い。けどちょっと面倒なので、1Password CLIでやってしまう方が便利。
$ op inject --in-file .env.local.template --out-file .env.local
1Passwordをチームで使っていると便利ですね。