他のサービスからの移行
aikagi import が .env 形式をまとめて読み込みます。先に結果だけを確かめてから書き込めます。
ファイルから
aikagi import .env標準入力からも読めます。手元のファイルに平文を落とさずに済むので、別のコマンドの出力をそのまま流すときはこちらです。
aikagi import -置き場所は、いま居るリポジトリの .aikagi.toml から決まります。-w -p -e や --personal で指定することもできます。
先に確かめる
いきなり書き込ませずに、まず結果だけを見てください。何が増えて、何が更新され、何が飛ばされるかが出ます。
aikagi import .env --dry-runすでに同じ名前がある鍵は、黙って飛ばします。入れ替えたいときだけ --overwrite を付けてください。
名前の付きかた
読み込んだキーは、そのままの綴りで 1 本ずつの鍵になります。フォルダに入れたいときは指定してください。
aikagi import .env --folder aws/prod --lowercase--folder | 置き場所のフォルダ。省くと、その場所の根に入ります。 |
|---|---|
--lowercase | 名前を小文字に揃えます。エージェントに届く環境変数の名前は、どちらの綴りでも変わりません。 |
キーの名前にスラッシュは使えません。フォルダを勝手に生やさないためです。引っかかったら、その行を直してから読み込ませてください。
フォルダは環境変数の名前になります
フォルダに入れると、エージェントに届く環境変数の名前が変わります。環境変数の名前は、フォルダを含めた置き場所の全体から作られるためです。--folder aws/prod に入れた SECRET_KEY は、AWS_PROD_SECRET_KEY として届きます。
移行元がフォルダでアプリを分けているなら、その形をそのまま写さないでください。写すと、どのアプリも自分の環境変数を見つけられなくなります。移行元のフォルダ 1 つを、aikagi のプロジェクト 1 つにしてください。そのプロジェクトの根に入れれば、名前はそのままです。
aikagi import - -p web-app -e productionフォルダが役に立つのは、1 つのアプリの中で AWS_ や STRIPE_ のように頭を揃えたいときです。そのときは、頭の分を名前から外して、フォルダの名前に移してください。
覚書の引き継ぎ
キーの上に書いてある # の行は、そのまま覚書として引き継ぎます。行の末尾に書いたものも拾います。
# 請求に使うほう
STRIPE_SECRET_KEY=...要らないときは --no-comments、全部を同じ一文で揃えたいときは --comment です。
aikagi import .env --comment "移行時に取り込み"移行元とのつながりが切れるところ
読み込みの途中で、次の 2 つを注意として伝えます。値そのものは 1 文字も出しません。
- 値に
${…}の参照が残っているとき。aikagi は書かれたままの文字列として持つので、移行元で効いていた参照は切れます。 - 複数のキーが同じ値を持っているとき。移行元では「1 本の鍵と、それを指す参照」だったものが、こちらでは別々の鍵になります。
どちらも取り込み自体は進みます。読んだうえで、まとめ直すかどうかを決めてください。
同じキーがファイルの中に二度出てきたときは、あとに書いてあるほうを採ります。継ぎ足していった .env の意図はそちらにあるためです。
他の金庫から直接
手元に別のシークレット管理サービスのコマンドが入っているなら、その出力をパイプで渡せます。平文がファイルに残りません。
<そのサービスのコマンド> export --format dotenv | aikagi import -そのコマンドを aikagi 側から呼んで、環境やフォルダを指定しながら移す道もあります。複数の環境をまとめて移すこともできます。綴りは aikagi import --help で確かめてください。
移したあと
入ったことは一覧で確かめられます。値は出ないので、名前と数を見てください。
aikagi ls --recursive個人の保管庫に取り込んだ鍵をチームに配るときは、プロジェクトへ移してください。やりかたはワークスペースと環境にあります。