埋め込み SDK を使い始める
埋め込み SDKを使用してチャートやダッシュボードをウェブ アプリケーションに埋め込むと、設定とレンダリングをより柔軟に調整できるようになります。
前提条件
チャートの埋め込みを有効にするには、 ダッシュボード作成者である必要があります。
手順
埋め込みを有効にする
( 任意 )チャートのフィルタリング可能なフィールドを指定します。
チャート ビューアがデータをフィルタリングできるフィールドを指定します。 デフォルトでは、フィールドは指定されていません。つまり、少なくとも 1 つのフィールドを明示的に許可するまでチャートをフィルタリングできません。
または、 Allow all fields in the data source used in this chartを選択して、グラフ内のすべてのフィールドを指定することもできます。
フィルタ可能なフィールドの詳細については、「 フィルタ可能なフィールドの指定 」を参照してください。
埋め込み認証プロバイダの設定
Authentication Settings ビューにGoします。
注意
Authentication Settingsページにアクセスするには、プロジェクト オーナーである必要があります。 管理者以外のユーザーでも埋め込みチャートは引き続き使用できますが、プロジェクト オーナーからキーを取得する必要があります。
[Authentication Settings] タブをクリックします。
[ Authentication Settings(認証設定) ] タブが表示されます。
認証プロバイダを追加します。
Authentication providersセクションから [ Add ] をクリックします。
Nameフィールドに、プロバイダーのわかりやすい名前を入力します。
Providerリストから、追加するプロバイダーのタイプを選択します。
プロバイダーからのトークンを検証するために Charts を設定します。
入力する必要がある値は、選択したプロバイダーによって異なります。
プロバイダーフィールドカスタムJSON web token
次の値を指定します。
フィールド値署名アルゴリズム
署名キー
JSON web token署名を検証するために使用される秘密キーまたはキー。 トークンが署名されていない場合、Charts はそれらを無効と見なします。 誤ったキーを指定すると、Charts はトークン署名を検証できず、それらが無効であると見なします。
指定する必要がある値は、 Signing Algorithmによって異なります。
HS256
: JSON web tokenの署名に使用した秘密キーを入力します。RS256
: JWK or JWKS URLまたはPEM Public Keyのいずれかを選択します。JWK or JWKS URLを選択すると、Charts は JWK からキーを検索します 指定された URL 上の または JWKS ファイル。次に、Charts はそのキーを使用して JSON web token を検証します。 ファイルに複数のキーがある場合、Charts は一致するまで各キーを試行します。 JWK または JWKS ファイルを含む URL を入力します。
PEM Public Keyを選択した場合、Charts は指定された公開鍵を使用して JSON web token を検証します。 JSON web tokenの署名に使用されたキーペアの公開キーを入力します。 公開鍵は PEM 形式 である必要があります 次の例に示すように、
-----BEGIN CERTIFICATE----- MIIDfjCCAmagAwIBAgIBBzANBgkqhkiG9w0BAQUFADB0MRcwFQYDVQQDEw5LZXJu ZWwgVGVzdCBDQTEPMA0GA1UECxMGS2VybmVsMRAwDgYDVQQKEwdNb25nb0RCMRYw FAYDVQQHEw1OZXcgWW9yayBDaXR5MREwDwYDVQQIEwhOZXcgWW9yazELMAkGA1UE BhMCVVMwHhcNMTQwNzE3MTYwMDAwWhcNMjAwNzE3MTYwMDAwWjBsMQ8wDQYDVQQD EwZzZXJ2ZXIxDzANBgNVBAsTBktlcm5lbDEQMA4GA1UEChMHTW9uZ29EQjEWMBQG A1UEBxMNTmV3IFlvcmsgQ2l0eTERMA8GA1UECBMITmV3IFlvcmsxCzAJBgNVBAYT AlVTMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAp76KJeDczBqjSPJj 5f8DHdtrWpQDK9AWNDlslWpi6+pL8hMqwbX0D7hC2r3kAgccMyFoNIudPqIXfXVd 1LOh6vyY+jveRvqjKW/UZVzZeiL4Gy4bhke6R8JRC3O5aMKIAbaiQUAI1Nd8LxIt LGvH+ia/DFza1whgB8ym/uzVQB6igOifJ1qHWJbTtIhDKaW8gvjOhv5R3jzjfLEb R9r5Q0ZyE0lrO27kTkqgBnHKPmu54GSzU/r0HM3B+Sc/6UN+xNhNbuR+LZ+EvJHm r4de8jhW8wivmjTIvte33jlLibQ5nYIHrlpDLEwlzvDGaIio+OfWcgs2WuPk98MU tht0IQIDAQABoyMwITAfBgNVHREEGDAWgglsb2NhbGhvc3SCCTEyNy4wLjAuMTAN BgkqhkiG9w0BAQUFAAOCAQEANoYxvVFsIol09BQA0fwryAye/Z4dYItvKhmwB9VS t99DsmJcyx0P5meB3Ed8SnwkD0NGCm5TkUY/YLacPP9uJ4SkbPkNZ1fRISyShCCn SGgQUJWHbCbcIEj+vssFb91c5RFJbvnenDkQokRvD2VJWspwioeLzuwtARUoMH3Y qg0k0Mn7Bx1bW1Y6xQJHeVlnZtzxfeueoFO55ZRkZ0ceAD/q7q1ohTXi0vMydYgu 1CB6VkDuibGlv56NdjbttPJm2iQoPaez8tZGpBo76N/Z1ydan0ow2pVjDXVOR84Y 2HSZgbHOGBiycNw2W3vfw7uK0OmiPRTFpJCmewDjYwZ/6w== -----END CERTIFICATE-----
オーディエンス(任意)
オーディエンス クレーム JSON web tokenChartsAtlas が有効と見なすには、 に含める必要があります。
Google
[ Client IDフィールドに、アプリケーションの Google クライアント ID を次の形式で入力します。
<prefix>.apps.googleusercontent.com Atlas App Services
次の値を指定します。
フィールド値プロジェクト
アプリ サービスを含む プロジェクト 。
App Service
ユーザー トークンを発行している App Services
Atlas App Services を使用してデータを取得する(任意)
を切り替えて、Charts が App Services からユーザー データとルールを取得できるようにします。
有効にすると、Charts はApp Service Nameフィールドで指定したサービスからデータを取得します。
このオプションを有効にすると、特定のコレクションまたはユーザーに対して Atlas App Services で Charts が表示するデータを制御するためのルールを定義できます。
詳細については、App Services ドキュメントの「受信クエリのフィルタリング」を参照してください。
アプリ サービス名
Charts がチャートのデータを取得するために使用するアプリ サービス内のサービスの名前。 たとえば、
mongodb-atlas
。[Save] をクリックします。
( 任意 )ダッシュボードのフィルタ可能なフィールドを指定します。
ダッシュボード ビューアがデータをフィルタリングできるフィールドを指定します。 デフォルトでは、フィールドは指定されていません。つまり、少なくとも 1 つのフィールドを明示的に許可するまで、ダッシュボードをフィルタリングできません。
または、 Allow all fields in the data source used in this dashboardを選択して、ダッシュボード内のすべてのフィールドを指定することもできます。
フィルタ可能なフィールドの詳細については、「 フィルタ可能なフィールドの指定 」を参照してください。
認証プロバイダを追加します。
すでに認証プロバイダを設定している場合は、この手順をスキップします。 認証プロバイダをまだ設定していない場合は、ここで設定できます。
詳細については、「埋め込み認証プロバイダの構成 」を参照してください。
[Add] をクリックします。
認証統合の名前を指定します。
プロバイダーを選択し、プロバイダー設定を指定します。
[Save] をクリックします。
[Back to Embed Dashboard] をクリックします。
( 任意 )ダッシュボードのフィルタ可能なフィールドを指定します。
ダッシュボード ビューアがデータをフィルタリングできるフィールドを指定します。 デフォルトでは、フィールドは指定されていません。つまり、少なくとも 1 つのフィールドを明示的に許可するまで、ダッシュボードをフィルタリングできません。
または、 Allow all fields in the data source used in this dashboardを選択して、ダッシュボード内のすべてのフィールドを指定することもできます。
フィルタ可能なフィールドの詳細については、「 フィルタ可能なフィールドの指定 」を参照してください。
Web アプリの作成
ダッシュボードを表示する新しいアプリを作成するには、残りの手順に進みます。
注意
MongoDBは 、認証されていない埋め込みダッシュボードの事前構築例を 提供しますGithub リポジトリ内。この例では、埋め込み SDK を使用して非認証の埋め込みダッシュボードを表示する方法を示します。
ダッシュボードを表示する新しいアプリを作成するには、残りの手順に進みます。
注意
MongoDBは 認証された埋め込みダッシュボードの例を 提供しますGithub リポジトリ内。これらの例は、埋め込み SDK を使用して、 Atlas App Services 、Google、またはJSON web token認証プロバイダーを使用して埋め込みダッシュボードを認証する方法を示しています。
アプリへの埋め込みコードの追加
アプリに埋め込み SDK をインストールする方法については、「埋め込み SDK のインストール 」を参照してください。
次のコードをウェブアプリに追加して、チャートをレンダリングする場所を実行します。
注意
既存の Charts base URL とチャート ID を、表示するチャートの値に置き換えます。 Charts ベース URL とチャート ID は、埋め込みオプション モーダル ウィンドウに表示されます。
import ChartsEmbedSDK from "@mongodb-js/charts-embed-dom"; const sdk = new ChartsEmbedSDK({ baseUrl: "https://charts.mongodb.com/charts-embedding-examples-wgffp", // ~REPLACE~ with the Base URL from your Embed Chart dialog. }); const chart = sdk.createChart({ chartId: "735cfa75-15b8-483a-bc2e-7c6659511c7c", // ~REPLACE~ with the Chart ID from your Embed Chart dialog. height: "700px", // Additional options go here }); chart.render(document.getElementById("chart"));
次のコードをウェブアプリに追加して、チャートをレンダリングする場所を実行します。 次の例では、 Atlas App Services で 認証 しています。
注意
既存のアプリ ID を、Atlas App Services UI で確認できるアプリ ID に置き換えます。 既存の Charts base URL とチャート ID を、表示するチャートの値に置き換えます。 Charts ベース URL とチャート ID は、埋め込みオプション モーダル ウィンドウに表示されます。
import ChartsEmbedSDK from "@mongodb-js/charts-embed-dom"; // Needed only if you are using the Atlas App Services authentication provider const client = Stitch.initializeAppClient( 'authentication-sample-eibkj', // ~REPLACE~ with your App ID }); const sdk = new ChartsEmbedSDK({ baseUrl: "https://charts.mongodb.com/charts-embedding-examples-wgffp", // ~REPLACE~ with the Base URL from your Embed Chart dialog. getUserToken: () => getRealmUserToken(client), // getUserToken is a callback to provide the auth token to the SDK. // Use the getRealmUserToken helper when using the Atlas App Services auth provider. // If using Custom JWT or Google providers, provide your own code to retrieve the JWT }); const chart = sdk.createChart({ chartId: "735cfa75-15b8-483a-bc2e-7c6659511c7c", // ~REPLACE~ with the Chart ID from your Embed Chart dialog. height: "700px", // Additional options go here }); chart.render(document.getElementById("chart"));
次のコードをウェブアプリに追加して、ダッシュボードをレンダリングする場所を実行します。
注意
既存のDashboards Base URLと ダッシュボード ID を、表示するダッシュボードの値に置き換えます。 Dashboards Base URLと ダッシュボード ID は埋め込みオプション モーダル ウィンドウに表示されます。
import ChartsEmbedSDK from "@mongodb-js/charts-embed-dom"; const sdk = new ChartsEmbedSDK({ baseUrl: "https://charts.mongodb.com/charts-embedding-examples-wgffp", // ~REPLACE~ with the Base URL from your Embed Dashboard dialog. }); const dashboard = sdk.createDashboard({ dashboardId: "735cfa75-15b8-483a-bc2e-7c6659511c7c", // ~REPLACE~ with the Dashboard ID from your Embed Dashboard dialog. height: "700px", widthMode: "scale", heightMode: "fixed" // Additional options go here }); dashboard.render(document.getElementById("dashboard"));
次のコードをウェブ アプリに追加して、ダッシュボードをレンダリングする場所で実行します。 次の例では、 Atlas App Services で 認証 しています。
注意
既存のアプリ ID を自分のアプリ ID に置き換えます。 アプリ ID は、Atlas App Services UI で確認できます。 既存のDashboards Base URLと ダッシュボード ID を、表示するダッシュボードの値に置き換えます。 Dashboards Base URLと ダッシュボード ID は埋め込みオプション モーダル ウィンドウに表示されます。
import ChartsEmbedSDK from "@mongodb-js/charts-embed-dom"; // Needed only if you are using the Atlas App Services authentication provider const client = Stitch.initializeAppClient( 'authentication-sample-eibkj', // ~REPLACE~ with your App ID }); const sdk = new ChartsEmbedSDK({ baseUrl: "https://charts.mongodb.com/charts-embedding-examples-wgffp", // ~REPLACE~ with the Base URL from your Embed Dashboard dialog. getUserToken: () => getRealmUserToken(client), // getUserToken is a callback to provide the auth token to the SDK. // Use the getRealmUserToken helper when using the Atlas App Services auth provider. // If using Custom JWT or Google providers, provide your own code to retrieve the JWT }); const dashboard = sdk.createDashboard({ dashboardId: "735cfa75-15b8-483a-bc2e-7c6659511c7c", // ~REPLACE~ with the Dashboard ID from your Embed Dashboard dialog. height: "700px", widthMode: "scale", heightMode: "fixed" // Additional options go here }); dashboard.render(document.getElementById("dashboard"));