kintoneのアプリ設定の変更履歴を残す方法 ― 変更を承認制にしてガバナンス・監査に対応(無料)

kintoneは現場で手軽にアプリを直せるのが魅力ですが、利用が広がるほど 「この項目はいつから必須になったのか」「誰の判断で選択肢を変えたのか」が分からなくなりがちです。 この記事では、アプリの設定変更をレコードで依頼 → 承認 → 自動で反映する流れにして、 アプリ設定の変更履歴を残す方法を、実際に検証環境で依頼・承認した結果つきで解説します。

→ 対応プラグインを見る

執筆者: 羽鳥達郎(合同会社Pons) / kintoneアプリデザインスペシャリスト・基本情報技術者・cybozuオフィシャルパートナー ※本サイトで配布するプラグインは、サイボウズ株式会社のオフィシャルプロダクトではありません。

こんな方におすすめ

なぜアプリ設定の変更履歴が必要になるのか

kintoneでは、アプリ管理権限を持つ人なら誰でも、フィールドの追加・必須化・選択肢の変更・一覧の作成などを その場で行えます。立ち上げ期にはこの手軽さが強みですが、アプリが業務の基幹になってくると、次のような困りごとが出てきます。

解決の方向性は、「設定変更は必ず依頼として記録し、承認されたものだけを反映する」という 変更管理(チェンジマネジメント)の仕組みを、kintoneの中に用意することです。

kintone標準機能ではどこまでできるか

つまり、標準機能だけでも「依頼と承認の記録」までは作れますが、承認された内容をそのまま確実に反映する部分が手作業になります。 ここをREST APIで自動化するのが、この記事で紹介する方法です。

JavaScript自作・他社プラグインとの比較、なぜGovAppsプラグインか

方法向いている場合注意点
依頼アプリ+手作業で反映変更の頻度が少なく、反映作業をアプリ管理者が確実にこなせる場合承認後の設定作業が手作業のため、作業漏れや依頼内容との食い違いが起きうる。反映したかどうかも別途記録が必要
JavaScriptを自作する社内に開発者がいて、自社の規程に合わせて作り込みたい場合フィールド設定・一覧の変更API、アプリの更新(デプロイ)、権限確認、失敗時の取り消しまでを自前で実装・保守する必要がある。誤った実装はアプリ設定を壊すため、テストの負担が大きい
有料の他社プラグイン・サービス予算があり、サポートや多機能さを重視する場合月額・年額の費用がかかる。他のアプリの設定を書き換える強い操作を行うのに、処理の中身(ソースコード)を確認できないことが多い
GovAppsプラグイン(アプリ設定変更依頼プラグイン)無料で、依頼・承認・自動反映と変更履歴をすぐに始めたい場合変更できる内容は、フィールドの主な設定(名前・コード・必須・重複禁止・初期値・選択肢・文字数/値の範囲・削除)と一覧の作成・修正・削除に限られる(計算式・ルックアップ・アクセス権などは対象外)

アプリ設定変更依頼プラグインは無料・広告なしで、 ソースコードをGitHubで全公開 しています。他のアプリの設定を書き換えるプラグインだからこそ、処理の中身を誰でも確認できること、 セキュリティレビューのチェックリストを公開していることを重視しています。 主な設計は次のとおりです。

プラグインでの実現方法

今回は、変更対象のアプリとして「契約管理」(契約名・契約先・契約金額・契約区分)を用意し、 別に「アプリ設定変更依頼」アプリを作ってアプリ設定変更依頼プラグインを追加しました。

  1. 依頼用のアプリを作り、プラグインを追加して設定画面で「保存」を押す
    依頼に必要なフィールド(対象アプリ・対象フィールド・変更内容・依頼理由・反映結果・反映日時など)と依頼の入力欄が自動で作成され、 プロセス管理(未申請 →[申請する]→ 承認待ち →[承認する]→ 完了)がONになります。手動でのフィールド作成は不要です。
  2. プロセス管理の承認経路(作業者)を設定する
    「承認待ち」の作業者を、アプリ管理者や情報システム担当にします。承認する人には、変更対象アプリのアプリ管理権限が必要です。 承認後に依頼内容を書き換えられないよう、レコードのアクセス権もあわせて設定しておくと安心です。
アプリ設定変更依頼プラグインの設定画面。完了ステータス名の入力欄と、保存時にフィールドとスペースの作成・プロセス管理のON・アプリの更新を自動で行う旨、承認経路(作業者)を必ず設定するよう促す注意書きが表示されている。
  1. 依頼者がレコードを追加して依頼する
    対象アプリをアプリ名で検索し、フィールドを「フィールド名(フィールドコード)」で選び、変更内容を選びます。 選べる変更内容は、フィールドの種類に合わせて自動で絞り込まれ、現在の設定も表示されます。今回は「契約名を必須にする」依頼を、依頼理由つきで作成しました。
依頼の入力欄。対象アプリ「契約管理」を検索して選び、変更の対象に「フィールド」、対象フィールドに「契約名(契約名)」、変更内容に「必須項目の設定」、変更後に「必須」を選んでいる。現在は「任意」であることが表示されている。
  1. 一覧の作成も依頼できる
    「こういう一覧がほしい」という依頼は、対象アプリの一覧画面で絞り込み・並べ替えをして、そのURLを貼り付けて「変換」を押すだけです。 URLの条件が、フィールドコードの絞り込み条件・並び順に変換されます。
一覧の作成を依頼する入力欄。一覧名「更新予定の契約(金額順)」、一覧画面のURLを変換した結果として絞り込み条件「契約区分 in ("更新")」、並び順「契約金額 desc」が表示され、表示するフィールドを選べる。

実行結果: 承認すると対象アプリに自動で反映され、変更履歴が残る

依頼者が「申請する」を実行し、承認者が「承認する」を押すと、変更内容の確認ダイアログが表示されます。 「反映する」を押すと、承認者の権限で対象アプリの管理権限を確認したうえで設定を変更し、アプリの更新(運用環境への反映)まで自動で行われます。

「承認する」を押したときの「変更内容の確認」ダイアログ。対象アプリ「契約管理」、対象フィールド「契約名」、変更内容「必須項目の設定」、変更前「任意」、変更後「必須」と、承認者の権限で設定を変更しアプリを更新する旨の説明、「反映する」ボタンが表示されている。

反映が終わるとステータスが「完了」になり、依頼レコードに反映結果(変更前・変更後)と反映日時が記録されます。 対象アプリを開くと、「契約名」が必須項目になり、別の依頼で追加した契約区分「解約」も選べるようになっていました。

完了した依頼レコードの詳細画面。ステータスが「完了」になり、依頼内容の表(契約名を必須にする)と、反映結果に「対象アプリ『契約管理』に『必須項目の設定』を反映し、運用環境へ反映しました」、反映日時が記録されている。
変更対象アプリ「契約管理」のレコード追加画面。契約名に必須マーク(*)が付き、契約区分のドロップダウンがある。

依頼アプリに「変更履歴」という一覧を作っておくと、アプリ設定の変更履歴(変更管理台帳)として、 どのアプリの・何を・誰の依頼で・なぜ変えたか、承認済みか(ステータス)・いつ反映されたかを一覧で確認できます。 監査で設定変更の経緯を聞かれたときも、この一覧を絞り込んだりCSVに書き出したりして答えられます。 ステータスの履歴から、誰が承認したかも確認できます。

アプリ設定変更依頼アプリの「変更履歴」一覧。対象アプリ名・対象フィールド・変更内容・依頼理由・ステータス・作成者・反映日時の列に、「契約名を必須に(完了)」「契約区分の選択肢の変更(完了)」「一覧の作成(承認待ち)」の3件の依頼が並んでいる。

あわせて確認したいポイント

対応するプラグイン

無料プラグイン

アプリ設定変更依頼プラグイン

アプリのフィールド設定・一覧の変更をレコードで依頼・承認し、完了になったときに対象アプリへ自動反映(アプリの更新まで)。依頼レコードがアプリ設定の変更履歴になる

プラグイン詳細を見る →

無料プラグイン

決裁者稟議者記録プラグイン

プロセス管理のアクション実行ごとに、実行前後のステータス・実行ユーザー・役職・実行日時をサブテーブルへ自動記録。承認の証跡をレコード内に残したい場合に

プラグイン詳細を見る →

あわせて見たい記事・解決策ページ

あわせて検討したいkintone関連サービス