
kintoneプラグインの管理を劇的に楽にする設定移行ブックマークレット
こんにちは、キン担ラボの本橋です。今回はごく一部の方に向けた便利機能の紹介です。

便利ですよね、kintoneプラグイン。皆さんどのくらい使っていますか?
シンプルなものから高度な機能を持ったプラグインまで、数多くのプラグインを利用できるのもkintoneエコシステムの魅力です。
便利ですが、便利になればなるほど設定項目の個数が増えていきます。設定項目が増えると、別の環境にプラグインを設定したい場合にこんどは手数が多くなって大変になっていきます。

テーブルならまだましで、設定画面にタブ切り替えが入ってくる規模のプラグインになると膨大な設定項目がお目見えすることになります。
たとえ100万行のテーブルを持ったプラグイン設定であっても数クリックで移行できるブックマークレットを紹介します。
エクスポート用ブックマークレット
javascript:(function() { const pluginId = window.location.href.match(/pluginId=([a-zA-Z0-9]+)/)[1]; const config = kintone.plugin.app.getConfig(pluginId); const blob = new Blob([JSON.stringify(config, null, 2)], {type: 'application/json'}); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.style.display = 'none'; a.href = url; a.download = pluginId + '.json'; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); })()
インポート用ブックマークレット
javascript:(function(){var e=document.querySelector('input[type="file"]');if(e)return void e.click();var t=document.createElement('input');t.type='file',t.accept='.json',t.onchange=function(e){var n=e.target.files[0],o=new FileReader;o.onload=function(e){try{var n=JSON.parse(e.target.result);n?kintone.plugin.app.setConfig(n):console.error('Invalid settings format.')}catch(e){console.error('Error parsing JSON: '+e.message)}};o.readAsText(n)},document.body.appendChild(t)})();
ブックマークレットの使い方
ブラウザのブックマークを追加して使ってください。以下のスクショのように、URLにブックマークレットのコードを直接コピペすれば動作します。

プラグインの設定画面でエクスポート用のブックマークレットを実行すると、プラグイン設定がJSON形式でダウンロードされます。
同じようにプラグインの設定画面でインポート用ブックマークレットを実行すると、ファイル読み込みダイアログが開き、先ほどダウンロードしたJSONファイルを読み込むことでプラグイン設定として保存されます。
(※注:インポート用ブックマークレットは2回連続で実行してみてください)
作った経緯
最初に僕が書いたQiitaの記事では、手作業でプラグイン設定を移行できますよ、という手順を紹介していました。手作業前提です。
kintone開発者向けコミュニティ『devkin meetup』でこの記事を紹介したところ、エクスポート機能をブックマークレット化しておくと便利だよ、と田村さんにカスタムを加えていただきました。
たしかに毎回手順書きを見比べながらするのは手間が多くなりますが、ブックマークレット化しておけばどちらもマウスクリックだけで済みます。
ということでこちらの記事ではブックマークレットの紹介だけさせていただきました。内部でやってる処理は先ほど紹介したQittaをご覧ください。
そしてdevkin meetup! の第1回イベントは11月にオンラインで予定されています。こちらもお楽しみに!