はじめに
Elixir の Livebook 、何でも可視化できて便利ですね
実行コードを残しておけば、誰でもいつでも再現できるのもいいところ
(いずれ Python の Jpyter に取って代わるでしょう)
しかし、パスワードや API キーなど、秘密情報は残すわけにはいきません
api_key = "1234"
なんて残してしまった日には、まして GitHub にあげてしまった日にはセキュリティインシデントの発生です
では、どうすればよいか、というのが今回の話です
Kino.input で入力エリアを用意する
というわけで、以下が答えです
Kino.Input.password
を使います
api_key_input = Kino.Input.password("API_KEY")
引数は入力エリアのタイトルです
下画像のような入力エリアが表示されます
Kino.Input.password
の場合、入力した文字が●になるので、入力しているときも見られることがありません
Kino.Input.text
の場合は入力した文字が見えてしまいます
ちなみに、以下のように default
を指定すると、未入力の状態を指定できます
api_key_input = Kino.Input.text("API_KEY", default: "*****")
入力した内容を参照する
Kino.Input.read
で入力した値を参照します
auth_header = {"X-API-KEY", Kino.Input.read(api_key_input)}
"dummy"
このとき、入力した値が含まれるものを最終行にすると実行結果に表示されてしまうため、
適当なものを最後に入れましょう
ダメな例
良い例
まとめ
秘密情報には気をつけましょう