アプリケーション

用途

application: application_name {
  label: "Application Label" 
  url: "application_url" 
  file: "application_file_path" 
  sri_hash: "SRI_hash_value" 
  mount_points: {
    dashboard_vis: yes | no
    dashboard_tile: yes | no
    standalone: yes | no
  }
  entitlements: {
    local_storage: yes | no
    navigation: yes | no
    new_window: yes | no
    new_window_external_urls: ["url1", "url2", ...]
    use_form_submit: yes | no
    use_embeds: yes | no
    use_downloads: yes | no
    use_iframes: yes | no
    use_clipboard: yes | no
    core_api_methods: ["api_method1", "api_method2", ...]
    external_api_urls: ["api_url1", "api_url2", ...]
    oauth2_urls: ["oauth2_url1", "oauth2_url2", ...]
    global_user_attributes: ["user_attribute1", "user_attribute2", ...]
    scoped_user_attributes: ["user_attribute1", "user_attribute2", ...]
  }
}
階層
application
デフォルト値
なし

許可
アプリケーションの名前と、それを定義するサブパラメータ

特別なルール
application には url パラメータまたは file パラメータのいずれかを含める必要がありますが、両方を含めることはできません。

定義

application パラメータは、Looker の拡張機能フレームワーク用のアプリケーションを定義します。プロジェクトに拡張機能が追加されると、適切な権限を持つ Looker ユーザーは、mount_points パラメータで定義された場所に拡張機能を表示できます。mount_points パラメータが指定されていない場合、拡張機能は Looker メニューの [アプリケーション] セクションに表示されます。

application パラメータには次のサブパラメータがあります。

アプリケーションには、url パラメータまたは file パラメータのいずれかが必要です。両方は指定できません。

label

メインメニューの [アプリケーション] セクションにユーザーに表示されるアプリケーションの名前を指定します。LookML モデルをローカライズしている場合は、label をローカライズできます。

url

url パラメータは開発目的でのみ使用され、デベロッパーのマシンで実行されている開発サーバーを指す必要があります。次に例を示します。

url: "http://localhost:8080/bundle.js"

開発後、ファイルを Looker IDE にドラッグし、file パラメータを使用してファイルを指定します。

file

アプリケーションを定義する JavaScript ファイル(.js 拡張子付き)へのパスを指定します。このパスは、プロジェクト ルートからの相対パスです。たとえば、次の file パラメータは、LookML プロジェクトの apps ディレクトリにある bundle.js ファイルを指します。

file: "apps/bundle.js"

sri_hash

JavaScript の検証に使用するサブリソース整合性(SRI)ハッシュを指定します。file パラメータまたは url パラメータのいずれかと併用できます。sri_hash 値に sha384- 接頭辞を含めないでください。

url で開発サーバーが指定されている場合、sri_hash は無視されます。

mount_points

mount_points パラメータは、拡張機能が Looker UI のどこに表示され、ユーザーが利用できるようになるか、拡張機能が独自のデータを提供するかどうかを決定します。ダッシュボード タイルで実行することを目的とした拡張機能では、mount_points を指定する必要があります。mount_points が指定されていない場合、拡張機能は Looker メニューの [アプリケーション] セクションに表示されます。複数の mount_points を指定できます。

パラメータ 説明
dashboard_vis 有効にすると、拡張機能は Explore の可視化リストに表示され、選択してダッシュボード タイルとして保存できます。ダッシュボードが実行されると、ダッシュボードはタイルに関連付けられているクエリを実行し、拡張機能でデータを使用できるようにします。これは、カスタムの可視化の仕組みに似ています。カスタムの可視化と、dashboard_vis が有効になっているダッシュボード タイルで実行される拡張機能の主な違いは、拡張機能が Looker API を呼び出す可能性があることです。 dashboard_vis: yes
dashboard_tile 有効にすると、ユーザーがダッシュボードを編集しているときに、[追加] ボタンをクリックした後、拡張機能パネルに拡張機能が表示され、拡張機能オプションが選択されます。このタイプの拡張機能は、独自のデータを取得します。 dashboard_tile: yes
standalone 拡張機能を Looker メニューの [アプリケーション] セクションに表示するかどうかを指定します。mount_points パラメータが指定されていない場合、拡張機能のデフォルト設定は standalone: yes です。 standalone: yes

entitlements

entitlements パラメータは、拡張機能がアクセスできるリソースを指定します。拡張機能は、entitlements にリストされていないリソースにアクセスできません。

拡張機能アプリケーションは利用資格を指定する必要があります。利用資格がないと、アプリケーションは実行されません。

entitlements パラメータには次のサブパラメータが含まれます。サブパラメータが含まれていない場合、デフォルトでは拡張機能はその利用資格にアクセスできません。

パラメータ 説明
local_storage 拡張機能がローカル ストレージにアクセスできるかどうかを指定します。 local_storage: yes
navigation 拡張機能が Looker の別のページに移動することを許可するかどうかを指定します。 navigation: yes
new_window 拡張機能が新しいブラウザ ウィンドウまたはタブを開くことを許可するかどうかを指定します。 new_window: yes
new_window_external_urls 拡張機能が新しいウィンドウを開くことができる URL または部分 URL のカンマ区切りリスト。この利用資格には new_window 利用資格が必要です。サブドメインやパスには、* などのワイルドカード文字を含めることができます。 new_window_external_urls: ["https://www.gmail.com"]
use_form_submit 拡張機能がフォームを送信できるかどうかを指定します。HTML フォームを使用する Looker コンポーネントは、正常に動作するために use_form_submit: yes を必要とします。 use_form_submit: yes
use_embeds 拡張機能で Looker Embed SDK の使用が許可されているかどうかを指定します。 use_embeds: yes
use_downloads 21.6 で追加 拡張機能によるファイルのダウンロードを許可するかどうかを指定します。 use_downloads: yes
use_iframes 21.6 で追加 拡張機能で iframe を作成できるかどうかを指定します。 use_iframes: yes
use_clipboard 追加: 21.8 拡張機能がシステムのクリップボードに書き込むことを許可するかどうかを指定します。セキュリティ上の理由から、拡張機能がシステムのクリップボードから読み取ることは許可されていません。 use_clipboard: yes
core_api_methods 拡張機能が使用する Looker API メソッドのカンマ区切りリスト。 core_api_methods: ["run_inline_query", "lookml_model_explore", "all_lookml_models"]
external_api_urls 拡張機能が使用する外部 API の URL のカンマ区切りのリスト。例に示すように、* などのワイルドカード文字を含めることができます。

Looker 21.6 以降では、extensionSDK.fetchProxy または extensionSDK.serverProxy API 呼び出しを使用するのではなく、fetch または XHR.open JavaScript 呼び出しを直接使用する拡張機能は、リストに URL を含める必要があります。
external_api_urls: ["http://example.com:3000", "https://*.googleapis.com"]
oauth2_urls 拡張機能が使用する OAuth 2.0 認証とコード交換の URL のカンマ区切りリスト。 oauth2_urls: ["https://accounts.google.com/o/oauth2/v2/auth"]
global_user_attributes 拡張機能が使用するシステム全体のユーザー属性のカンマ区切りリスト。 global_user_attributes: ["company", "department"]
scoped_user_attributes 拡張機能が使用する拡張機能固有のユーザー属性のカンマ区切りリスト。 scoped_user_attributes: ["first_name", "last_name"]

以下は、Looker のキッチンシンク拡張機能の例のプロジェクト マニフェスト ファイルの application パラメータです。

application: kitchensink {
  label: "Kitchen sink"
  url: "http://localhost:8080/bundle.js"
  entitlements: {
    local_storage: yes
    navigation: yes
    new_window: yes
    use_form_submit: yes
    use_embeds: yes
    core_api_methods: ["all_connections","search_folders", "run_inline_query", "me", "all_looks", "run_look"]
    external_api_urls: ["http://127.0.0.1:3000", "http://localhost:3000", "https://∗.googleapis.com", "https://∗.github.com", "https://REPLACE_ME.auth0.com"]
    oauth2_urls: ["https://accounts.google.com/o/oauth2/v2/auth", "https://github.com/login/oauth/authorize", "https://dev-5eqts7im.auth0.com/authorize", "https://dev-5eqts7im.auth0.com/login/oauth/token", "https://github.com/login/oauth/access_token"]
    scoped_user_attributes: ["user_value"]
    global_user_attributes: ["locale"]
  }
}

その他の例については、Looker の extension-examples リポジトリをご覧ください。