SQL マスキングツール Vanir を作った
本番データと同様の分量、分布のデータが欲しいことはよくあるが、 個人情報を含むとそのままコピってくるわけにもいかない。
そこで *** みたいにマスキングする必要があるが、なんかそれっぽいのが見つからなかったのでえいやで作った。
https://github.com/mtsmfm/vanir
名前は某見通す悪魔から。
マスクしたいテーブル名とカラム名の yaml に Go のテンプレート書けばおっけー。
ハッシュ化できるようにしたのは、メアドなどの個人情報を外部キーに使っているような設計がされてしまっている場合にも レコードの紐付けが切れないようにするため (つらい)。
bcrypt で一回限りのソルトを共通で使うような方式にしてみたけれど、ここまでする必要があったのだろうか。 bcrypt の内部メソッド使いたいがためにコピってきてるのがつらい。
Go はほとんど書いたことないので誰か添削を。。。
ほんとは mRuby にしたかったけれど SQL パーサが見あたらなかった。
来週の LT 資料が微塵もできてなくてやばい。