curlコマンドでプラグインを運用する方法

目次

はじめに

2024年7月版のアップデートで、プラグインに関するAPIが追加されました。
プラグインをアプリに追加する際、これまではkintoneとアプリの両方の管理画面を開いて作業する必要がありました。
しかし、APIを使うことで、ほとんどの操作を画面を開かずにcurlのみで実行できます。
curlコマンドでkintone REST APIを実行してみよう

また、cronやタスクスケジューラを活用すれば、指定した時間に自動でプラグインのアップデートを行うこともできます。
今回は、curlを使ってプラグインを運用する方法について紹介します。

下準備

顧客リストアプリの追加

kintoneのアプリストア画面で、左上の検索窓に『顧客リスト』と入力して検索します。
表示された検索結果から『顧客リスト』の『このアプリを追加』をクリックして、アプリを追加します。

バージョンの異なる2つのプラグインファイルと秘密鍵を作成する

当サイトで公開されている入力値チェックプラグインを利用します。
入力値チェックプラグイン

次に示す手順に従い、異なるバージョンのプラグイン2つと秘密鍵を作成します。 入力値チェックプラグインのzipファイルを以下のリンク先からダウンロードしてください。
SAMPLE_checkvalue_plugin_v2.3.3.zip

(1)ver2.3.3のフォルダーを準備する
  1. SAMPLE_checkvalue_plugin_v2.3.3.zipを解凍します。
    PUBKEYとSIGNATUREファイルは使わないので削除します。
  2. contents.zipを解凍します。
  3. 解凍したcontentsフォルダーをコピーしてcontents_v2.3.3という名前に変更します。
    コピー元のcontentsフォルダーはver1.0.0を作成するときに使います。
(2)ver1.0.0のフォルダーを準備する
  1. contentsフォルダーをコピーしてcontents_v1.0.0という名前に変更します。
  2. contents_v1.0.0/manifest.jsonを開き"version": "2.3.3"を"version": "1.0.0"に変更して保存します。
(3)ver1.0.0のプラグインファイルと秘密鍵を作成する

ここから、cli-kintoneのplugin keygen/plugin packコマンドを利用します。
事前にcli-kintoneのインストールが必要です。
インストールしていない場合は、次のドキュメントを参考にインストールしてください。
cli-kintoneのインストール

  1. plugin keygenコマンドを実行して、秘密鍵を作成します。
    plugin keygenコマンドについては、 plugin keygen (External link) を参考にしてください。

    1
    
    cli-kintone plugin keygen --output contents_v1.0.0.private.ppk
  2. plugin packコマンドを実行して、プラグインファイルをパッケージングします。
    plugin packコマンドについては、 plugin pack (External link) を参考にしてください。

    1
    
    cli-kintone plugin pack --input contents_v1.0.0/manifest.json --private-key contents_v1.0.0.private.ppk

    成功すると、plugin.zipが生成されます。
    ファイル名をcontents_v1.0.0.plugin.zipに変更して保存してください。

(4)ver2.3.3のプラグインファイルを作成する
  1. plugin packコマンドを実行します。
    --private-keyには、(3)で作成したcontents_v1.0.0.private.ppkを指定します。
    同じ秘密鍵を使うことで、ver1.0.0と同じプラグインidのプラグインファイルを作成できます。

    1
    
    cli-kintone plugin pack --input contents_v2.3.3/manifest.json --private-key contents_v1.0.0.private.ppk

    成功すると、plugin.zipが生成されます。
    ファイル名をcontents_v2.3.3.plugin.zipに変更して保存してください。
    秘密鍵(contents_v1.0.0.private.ppk)は(3)で作成したものを引き続き利用します。

これで、v1.0.0とv2.3.3の2つのプラグインファイルと秘密鍵が完成しました。

curlを使ったプラグインの運用方法

では、curlを使ったプラグインの運用方法について以下の流れで説明します。

  1. プラグインをインストールする。
    v1.0.0のプラグインをインストールします。
  2. アプリにプラグインを追加する。
    インストールしたプラグインを顧客リストアプリに追加し、設定します。
  3. プラグインを更新する。
    v1.0.0のプラグインをv2.3.3に更新します。
  4. プラグインをアンインストールする。
    プラグインをアンイストールします。
    information

    • プラグインをインストール、更新、アンインストールするアカウントは、kintoneシステム管理者権限が必要です。
    • 認証方法として、今回はパスワード認証を使います。パスワード認証は次のページを参照してください。
      パスワード認証

1.プラグインのインストール

新規にプラグインをインストールする際は、まずプラグインファイルを一時保管領域にアップロードします。
アップロードが完了したら、そのファイルキーを使用してプラグインをインストールします。

(1)プラグインファイルをアップロードする

ファイルをアップロードするAPIでcontents_v1.0.0.plugin.zipを一時保管領域にアップロードします。
ファイルをアップロードする

1
2
3
curl -X POST 'https://sample.cybozu.com/k/v1/file.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)' \
  -F 'file=@contents_v1.0.0.plugin.zip'

アップロードが成功すると、以下のようにレスポンスとしてfileKeyが表示されます。
fileKeyは後で使用しますので、メモに控えてください。

1
{"fileKey":"b80a4e9f-837d-48ce-b30c-14712f395952"}
(2)プラグインを読み込む(インストール)

アップロードしたプラグインファイルを読み込み(インストール)します。
プラグインを読み込む

1
2
3
4
curl -X POST 'https://sample.cybozu.com/k/v1/plugin.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)' \
  -H 'Content-Type: application/json' \
  -d '{"fileKey": "(メモしたfileKeyの値)"}'

読み込みに成功すると、プラグインidとバージョンが出力されます。

1
{"id":"lckkahmekfcjioncompafcpdohdgmbam","version":"1.0.0"}
(3)インストール済みのプラグインの一覧を取得する

ここでインストール済みのプラグインの一覧を取得するAPIを使って確認してみましょう。
インストール済みのプラグインの一覧を取得する

1
2
3
4
curl -X GET 'https://sample.cybozu.com/k/v1/plugins.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)' \
  -H 'Content-Type: application/json' \
  -d '{"offset": 0}'

インストール済みプラグインのリストがjson形式で表示されます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "plugins": [
    {
      "id": "lckkahmekfcjioncompafcpdohdgmbam",
      "name": "入力値チェックプラグイン",
      "isMarketPlugin": false,
      "version": "1.0.0"
    }
  ]
}

先ほど読み込んだプラグインが表示され、インストールされていること確認できます。

2.アプリにプラグインを追加する

(1)アプリにプラグインを追加する

プラグインがインストールされていれば、アプリに追加できます。
APIを使用して、プラグインの追加します。
アプリにプラグインを追加する

それでは、顧客リストアプリに入力値チェックプラグインを追加しましょう。
追加には、アプリIDとプラグインIDを使用します。

1
2
3
4
5
6
7
curl -X POST 'https://sample.cybozu.com/k/v1/preview/app/plugins.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)' \
  -H 'Content-Type: application/json' \
  -d '{
        "app": "(kintoneのアプリid)",
        "ids": ["(プラグインid)"]
      }'

追加に成功すると、アプリ設定を変更した際のリビジョン番号が表示されます。
このリビジョン番号は、次のステップで設定を運用環境へ反映する際に使用します。

1
{"revision":"12"}

この段階では、まだアプリにプラグインが反映されていません。

(2)アプリの設定を運用環境へ反映する

現在はプラグインの追加設定のみが行われており、アプリにはまだ反映されていません。
インストールを運用環境に反映するには、アプリ設定を運用環境へ反映するAPIを使用します。
アプリの設定を運用環境へ反映する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
curl -X POST 'https://sample.cybozu.com/k/v1/preview/app/deploy.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)' \
  -H 'Content-Type: application/json'  \
  -d '{
       "apps": [
         {
           "app": "(kintoneのアプリid)",
           "revision": "(アプリにプラグインを追加するAPIのレスポンスのrevision)"
         }
       ],
       "revert": false
     }'

これで、アプリにプラグインが反映されました。
次に、kintoneの顧客リストアプリの設定画面を開き、プラグインの項目を確認しましょう。

入力値チェックプラグインがたしかに追加されていることを確認できました。
さて、アプリの画面を開いた際に、次のメッセージが表示されたはずです。

設定が必要なプラグインを追加すると、このメッセージが表示されます。
表示された場合は、プラグインの設定画面で設定してください。

設定画面を開くと、左側にプラグインのバージョンが表示されています。
ここで、追加されたプラグインのバージョンを確認できます。

設定画面での説明は省略します。

3.プラグインを更新する

入力値チェックプラグインをv1.0.0からv2.3.3にバージョンアップします。
プラグインの更新手順も、追加時と同様に、まずプラグインファイルのアップロードから始めます。

(1)プラグインファイルをアップロードする

ファイルをアップロードするAPIでcontents_v2.3.3.plugin.zipを一時保管領域にアップロードします。
プラグインファイルのアップロード手順にしたがって、ファイルをアップロードし、filekeyを取得してください。
プラグインファイルをアップロードする

(2)プラグインを更新する

プラグインを更新するAPIを使用します。
プラグイン追加時のAPIとは異なる点に注意してください。
プラグインを更新する

1
2
3
4
5
6
7
curl -X PUT 'https://sample.cybozu.com/k/v1/plugin.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)' \
  -H 'Content-Type: application/json' \
  -d '{
      "id": "(プラグインid)",
      "fileKey": "(手順(1)のfileKeyの値)"
  }'

更新が成功すると、プラグインIDと新しいバージョンが表示されます。

1
{"id":"lckkahmekfcjioncompafcpdohdgmbam","version":"2.3.3"}

これで、プラグインのバージョンアップが完了しました。

4.プラグインをアンインストールする

(1)プラグインをアンインストールする

プラグインをアンインストールする場合は、以下を実行します。
プラグインをアンインストールする

1
2
3
4
5
6
curl -X DELETE 'https://sample.cybozu.com/k/v1/plugin.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)' \
  -H 'Content-Type: application/json' \
  -d '{
      "id": "(プラグインid)"
     }'

成功した際は、空のオブジェクトが返ります。

1
{}

このAPIを実行すると、プラグインのアンインストールは行われますが、アプリごとのプラグイン設定は残ります。
該当アプリのプラグイン利用を解除するには、以下の手順を実行してください。

  1. kintoneのシステム管理画面からプラグインのページを開く。
  2. インストールが必要なプラグインのリストで、アンインストールされたプラグインの行を確認する。
  3. プラグインが適用されているアプリの名前をクリックし、管理画面を開く。
  4. プラグインの設定画面で、利用を解除するプラグインの行にある青い丸の「×」アイコンをクリックする。

番外編.他ドメインで設定済みプラグインを含むテンプレートを読み込んだ場合

他の環境でプラグインが設定されたアプリをテンプレートとして読み込む際、読み込み先の環境にプラグインがインストールされていない場合は、インストールが必要です。
このとき、必要なプラグインの一覧を取得するAPIを使用することで、インストールすべきプラグインを確認できます。
インストールが必要なプラグインの一覧を取得する

1
2
3
4
5
6
curl -X GET 'https://sample.cybozu.com/k/v1/plugins/required.json' \
  -H 'X-Cybozu-Authorization: (パスワード認証の値)'  \
  -H 'Content-Type: application/json' \
  -d '{
    "limit": 100
  }'

成功するとインストールが必要なプラグインを取得できます。

1
2
3
4
5
6
7
8
9
{
  "plugins": [
    {
      "id": "lckkahmekfcjioncompafcpdohdgmbam",
      "name": "入力値チェックプラグイン",
      "isMarketPlugin": false
    }
  ]
}

おわりに

いかがでしたでしょうか。
プラグイン管理APIを活用すれば、運用の大部分を画面を開かずにcurlだけで効率的に行うことができます。
ぜひ、皆さんも活用してみてください。

information

このTipsは、2026年8月版kintoneで動作を確認しています。

公式コミュニティ

kintone開発者同士で質問や知見を共有し、学び合うことができます。