krewDataの機能 > リアルタイム実行 > リアルタイム実行利用時の重要な注意事項 |
リアルタイム実行では利用に発生する通信と実行時の認証に関して最大限セキュリティを考慮した仕組みで提供していますが、リアルタイム実行に使用するURLが漏洩した場合はその類ではありません。そのためリアルタイム実行URLについては、お客様ご自身の責任の元、厳重に管理してください。
リアルタイム実行URLが漏洩した場合、悪意のある攻撃者によってデータ編集フローを実行される恐れがあります。その場合、攻撃者は出力アプリコマンドに設定しているアプリのレコードをお客様が意図しない内容で登録/更新/削除できます。
※攻撃者はレコードの取得はできません。そのためお客様の業務データが漏洩することはありません。
また、攻撃者は対象のリアルタイム実行をお客様が意図しないタイミングと回数で実行できるため、同一のリアルタイム実行を大量に実行できます。krewDataでは安定したパフォーマンスをお客様に提供できるように、同一のリアルタイム実行を1分あたり5回に制限しているため、その上限を超える回数で悪意的に実行された場合、該当のリアルタイム実行を業務上、適切に使用できなくなります。
krewDataは大量に同一のリアルタイム実行を実行された場合はそれを検知できる仕組みを提供しています。リアルタイム実行を実行すると、お客様が設定した任意のアプリに実行ログを出力します。大量実行のケースもレコードとしてログアプリに出力し、krewDataのユーザー情報として登録されている管理者に通知することができます。
漏洩の恐れがある場合や実際に悪用を管理者が検知した場合は、該当のリアルタイム実行を無効にするか、リアルタイム実行URLを再生成してください。
なお、悪用され意図せず登録/更新/削除されたアプリのレコードを悪用前の状態に復元する機能はkrewDataでは提供しておりません。あらかじめご了承下さい。
krewSheet連携による実行方法では、複数レコードのパラメータをOR条件(いずれかの条件を満たす)として適用します。これにより、Webhook/API実行で実行した場合と以下のようなケースで実行動作が変わるのでご注意ください。
実行単位に2つのデータ編集フローを登録
レコード番号 1、2、3を選択して対象実行単位を実行
krewSheetで選択したレコード数に関わらず、常に実行単位の各フローを1回だけ実行する。通知された対象レコードのパラメータはOR条件(いずれかの条件を満たす)として適用されます。
実行順序 | データ編集フロー名 | パラメータを適用したフィルタ条件 |
---|---|---|
1 | 引当/出荷 | レコード番号 =(等しい) 1 または レコード番号 =(等しい) 2 または レコード番号 =(等しい) 3 |
2 | 在庫レコード追加 | レコード番号 =(等しい) 1 または レコード番号 =(等しい) 2 または レコード番号 =(等しい) 3 |
Webhook/API実行による実行では、常に通知された対象レコード毎に各フローを実行します。
<1レコード目>
実行順序 | データ編集フロー名 | パラメータを適用したフィルタ条件 |
---|---|---|
1 | 引当/出荷 | レコード番号 =(等しい) 1 |
2 | 在庫レコード追加 | レコード番号 =(等しい) 1 |
<2レコード目>
実行順序 | データ編集フロー名 | パラメータを適用したフィルタ条件 |
---|---|---|
1 | 引当/出荷 | レコード番号 =(等しい) 2 |
2 | 在庫レコード追加 | レコード番号 =(等しい) 2 |
<3レコード目>
実行順序 | データ編集フロー名 | パラメータを適用したフィルタ条件 |
---|---|---|
1 | 引当/出荷 | レコード番号 =(等しい) 3 |
2 | 在庫レコード追加 | レコード番号 =(等しい) 3 |
リアルタイム実行の制限事項について説明します。制限事項に該当する状況が想定される業務には、krewDataのリアルタイム実行は対応できません。
リアルタイム実行では、実行時に実行単位に含まれるデータ編集フロー全体をロックし、他のリアルタイム実行による同一の実行単位の呼び出しを制御します(排他制御)。同一の実行単位における1分あたりの実行回数には以下の上限があります。
上限を超えた実行要求は実行を待機します。
待機時間には上限があり、一定時間を経過するとタイムアウトエラーになります。 |
下図は同一の実行単位を同時に7人のユーザーが実行した場合の例です。この場合、5つの実行要求(①~⑤)は順次実行されますが、1分あたりの実行回数の制限(5回/分)に達したため、残り2つの実行要求(⑥、⑦)は⑤の実行が終了した後すぐには開始されず、最初の実行開始から1分経過後に実行を開始します。
排他制御の詳細については「処理の実行」の「排他制御」を参照してください。
リアルタイム実行のデータ編集フローの実行時に入力アプリコマンドがkintoneアプリから読み込むことができるレコード数には上限があります。
※ データ編集フローに複数の入力アプリコマンドを配置している場合は、各アプリの合計レコード数が処理レコード数になります。
※ 出力アプリコマンドによるkintoneアプリへのレコードの書き込み時も上記の上限が適用されます。
作成したデータ編集フローがkintoneアプリから読み込むレコード数は、プラグイン設定画面の「フロー設定」タブで確認することができます。また、データ編集フローを実行し、実際の処理対象となったレコード数は、プラグイン設定画面の「リアルタイム実行」タブ、またはログ出力先アプリの実行ログで確認することができます。 |
複数の実行単位が同時に実行している場合の同時出力可能なレコード数には上限があります。
例)3つの実行単位が同時に実行された場合
実行単位1、および実行単位2の合計出力レコード数が上限(20,000レコード)に達するため、実行単位3のフローCは実行を待機し、実行単位1、または実行単位2の処理が完了した後にレコード出力を行います。
スケジュール実行のデータ編集フローが同一ドメイン環境で実行中の場合、リアルタイム実行のデータ編集フローは実行されません。リアルタイム実行のデータ編集フローが実行要求された場合は実行を待機し、スケジュール実行が完了した後に実行を開始します。