ユースケース
署名付き埋め込みのユースケース
ケース: 小売業支援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
については、ユーザーがダッシュボード上のフォームから表示内容を変更することができます
最終更新
役に立ちましたか?