tags : DevOps, CLI

インストール

brew install 1password-cli

1Password アプリとの連携

1Password アプリ → 設定 → 開発者 → 「CLI との連携」をオン。 これにより op コマンドが Touch ID / パスワードで認証される。

ボルトにアイテムを作成

op item create \
  --category=login \
  --vault="Development" \
  --title="i18n-api" \
  --url="https://example.com/api"

GUI からも作成可能。

参照パスの形式

op://ボルト名/アイテム名/フィールド名

確認コマンド:

op item get "アイテム名" --vault="ボルト名" --format=json

.env.template の書き方

リポジトリにコミットする .env.templateop:// 参照を記載:

API_KEY=op://Development/my-api/credential
DATABASE_URL=op://Development/db/connection-string

op run — コマンド実行時に環境変数を注入

op:// 参照を実際の値に置き換えてからコマンドを実行する。 .env ファイルは不要。

op run --env-file=.env.template -- tsx scripts/my-script.ts

package.json での使用例:

{
  "scripts": {
    "update:lang": "op run --env-file=.env.template -- tsx scripts/update-i18n.ts"
  }
}

実行時に Touch ID が求められ、認証後にシークレットが環境変数として注入される。

op inject — .env ファイルを生成

.env.template から実際の値を埋めた .env.local を生成:

op inject -i .env.template -o .env.local

.env.local.gitignore に含めること。

Mac 移行時

  1. 1Password アカウントにログイン
  2. brew install 1password-cli
  3. 1Password アプリで CLI 連携をオン

.env のコピーは不要。すべてのシークレットはボルトから取得される。