ユースケース
署名付き埋め込みのユースケース
ケース: 小売業支援SaaSにおける埋め込みダッシュボードの活用
シナリオ
小売業の店舗運営を支援するSaaSプラットフォームにおいて、店舗ごとの売上状況やKPIを把握するためのダッシュボードをSaaS内に埋め込むニーズを想定します。 この機能により、店舗マネージャーやエリアマネージャーがログインした際、自分の店舗に関連する情報だけを表示することができます。
ノートブックのパラメータ
署名付き埋め込みのソースとなるノートブックには、以下のパラメータが設定されているものとします。
tenant_id:ログインしているユーザーが所属するテナントID
「テキスト入力」型パラメータ
store_id:データの表示対象となる店舗ID
「テキスト選択」型パラメータで、 選択肢は
tenant_idで指定されたテナント内の店舗IDを選択可能
date_range:データの集計期間
「日付範囲」型パラメータで、デフォルト値は相対日付で前日から7日間が指定されている
product_category:データの集計対象を絞り込むための商品カテゴリ
「テキスト複数選択」型パラメータで、未選択の場合は全ての商品カテゴリを表示するようにSQL上で条件指定している
設定例A: 署名付き埋め込みのフォームを利用する場合
前提となるノートブックの設計
tenant_idを固定することで、ユーザーがアクセス可能なデータのセキュリティを担保できているデータを抽出する際のSQLには、
tenant_idがフィルタ条件として必ず指定されている例えば、店舗データを抽出する際も、
store_idだけでなくtenant_idもフィルタ条件に指定され、テナントが異なる店舗のデータは抽出できないようになっている
date_rangeとproduct_categoryについては、任意の値が指定可能という設計である
パラメータの設定
tenant_id: サーバーサイドパラメータの固定値store_id: サーバサイドパラメータの初期値date_range: クライアントサイドパラメータproduct_category: クライアントサイドパラメータ
表示までの流れ
サーバーサイドでトークンを発行
ユーザーの所属する
tenant_idをサーバーサイドパラメータの固定値として指定tenant_idに紐づくstore_idの中で、初期状態として表示するstore_idをサーバーサイドパラメータの初期値として指定
フロントエンドでの初期描画処理
SET_TOKENメッセージの送信時に、以下のクライアントサイドパラメータを一緒に送信しますdate_rangeは相対日付の再計算を行うため、デフォルト値にリセットするように指定product_categoryは空配列を初期値として指定
ユーザーによるダッシュボードの操作
ユーザーは
store_id,date_range,product_categoryをダッシュボードのフォーム上から変更することができます
設定例B: SaaS側のフロントエンドでパラメータを管理する場合
前提となるノートブックの設計
「設定例A」と同様の設計とします
パラメータの設定
tenant_id: サーバーサイドパラメータの固定値store_id: クライアントサイドパラメータdate_range: クライアントサイドパラメータproduct_category: クライアントサイドパラメータ
表示までの流れ
サーバーサイドでトークンを発行
ユーザーの所属する
tenant_idをサーバーサイドパラメータの固定値として指定
フロントエンドでの初期描画処理
SET_TOKENメッセージの送信時に、以下のクライアントサイドオプションを一緒に送信しますパラメータはSaaS側で管理するため、パラメータフォームを非表示にするオプション(
displayOptions.hideParamsForm = true)を指定store_id,date_range,product_categoryには、SaaS側で管理している値を指定します
ユーザーによるダッシュボードの操作
SaaS側で管理している条件の変更等により、ダッシュボードの表示条件を変更する場合、次の手順を踏みます
初期描画処理で利用したトークンを再利用して、更新されたクライアントサイドオプションと一緒に
SET_TOKENメッセージを再送信しますSET_TOKENメッセージを再送信することで、新しく送信されたクライアントサイドオプションにより、ダッシュボードの再描画が行われますこの時に送信するクライアントサイドパラメータは、差分ではなく、全件(
store_id,date_range,product_category)を送信する必要があります同一のユーザーが、同一のサーバーサイドパラメータの固定値を利用する場合、トークンの再利用が可能です(有効期限には注意してください)
設定例C: サーバーサイドパラメータの固定値を更新する場合
前提となるノートブックの設計
tenant_idとstore_idの両方を固定することで、ユーザーがアクセス可能なデータのセキュリティを担保できている「設定例A」の場合と異なり、
store_idをサーバーサイドで固定する必要がある場合を想定します
date_rangeとproduct_categoryについては、「設定例A」と同様に、任意の値が指定可能という設計である
パラメータの設定
tenant_id: サーバーサイドパラメータの固定値store_id: サーバーサイドパラメータの固定値date_range: クライアントサイドパラメータproduct_category: クライアントサイドパラメータ
表示までの流れ
サーバーサイドでトークンを発行
ユーザーの所属する
tenant_idと、初期状態として表示するstore_idをサーバーサイドパラメータの固定値として指定
フロントエンドでの初期描画処理
SET_TOKENメッセージの送信時に、以下のクライアントサイドパラメータを一緒に送信しますdate_rangeは相対日付の再計算を行うため、デフォルト値にリセットするように指定product_categoryは空配列を初期値として指定
ユーザーによるダッシュボードの操作
store_idはサーバーサイドパラメータの固定値のため、ダッシュボード上のフォームからは変更できず、SaaS側でstore_idを管理し、対象店舗の変更フォームを用意する必要がありますユーザーからの操作により、
store_idを変更してダッシュボードを再描画する場合、次の手順を踏みますサーバーサイドに対して、新しい
store_idを指定してトークンを新しく発行し、新しいトークンとクライアントサイドパラメータを一緒にSET_TOKENメッセージを送信しますサーバーサイドパラメータの固定値を変更するためには、トークンの再発行が必要となります
クライアントサイドパラメータは、差分ではなく、全件(
date_range,product_category)を送信する必要がありますユーザーの操作により変更された
date_rangeやproduct_categoryを保持したい場合、 iframe から送信されるPARAM_CHANGEDメッセージを記録しておき、再描画時に送信するようにします
date_rangeとproduct_categoryについては、ユーザーがダッシュボード上のフォームから表示内容を変更することができます
最終更新
役に立ちましたか?

