せっかく作ったからブログでも書こうと思った。
前にも話した通り、最近vimにはまっている。
今まではIntelliJ IDEAで開発をしてきたが、今となってはデバッガになってしまった。
Print Debugで大抵大丈夫だし、モチベーションが沸いたらgo-delve/delve: Delve is a debugger for the Go programming language. を試してみたい。
本題
cappyzawa/vault.nvim: vim plugin to operate vault. (write not yet) を作ってみた.

ちなみにまだKV v1 — Secrets Engines — Vault by HashiCorp にしか対応していない。
近々KV v2 — Secrets Engines — Vault by HashiCorp に対応するつもりはある。
使い方
通常のvault cliと同様にあらかじめ環境変数 VAULT_ADDR
, VAULT_TOKEN
を設定しておく必要がある。(厳密にいうと、vault cliでは設定が必須なわけではないのだがだいたいのユースケースでは設定しているはず。)
defaultのkey mappingであれば、vaultのpathを選択して、<Leader>vr
をするだけだ。
ただ、ファイル中には省略されたkeyが記述されていることもあるはず。そんなときは<Leader>vpp
でpath prefixを設定する。
vaultには field
という概念もあり、このpluginではdefaultで value
と設定されている。これは<Leader>vf
で変更することもできる。
上のgifと合わせて紹介する。
- vaultには
/secret/org
,/secret/repo
というpathに値が格納されている(それぞれfieldはvalue
) - ファイルには
org
とrepo
というpathが記述されている - それぞれprefixが足りていないため、
<Leader>vpp
で path prefixの/secret
を追加してあげる - あとは読むだけなので、
org
やrepo
を選択して、<Leader>vr
で値を読める
開発しながら、あれ?この値なんだっけ?ってなるときが多かったから自分のために作ったけど結構便利だと思う。
TODO
vault read
コマンドを使っているが、vault kv get
コマンドを利用するようにする
kv backendを使っているならこっちの方が良いはず。ドキュメントもvault kv
コマンドで案内されている。
- kv v2に対応する
おまけ
cf pluginを公開した
このvault pluginを作成しようとしたきっかけの1つ。
cf cliで--var
オプションが追加され、変数をmanifestにぶち込むことが可能になったが、この値をvaultからとれれば何かしら便利なのでは? というのと、cfのserver versionが低いとそのオプションを利用できず、そもそもmanifestに変数をぶちこめないという人もこれなら利用できるのでは?と考えたからだ
repository: cappyzawa/cf-push-with-vault: cf plugin to push cf app with vault
CommunityRepo: cf CLI Plugins#push-with-vault — Cloud Foundry Community
vault.nvimのreleaseはどうやってるの?
Releases · cappyzawa/vault.nvim
もちろんConcourseだ。(@making さんが提供してくれてるやつ)

Release v5.1.0 · concourse/concourse からresourceにiconが使えるようになって映える。