应用

用法

层次结构
application
默认值


接受
用于定义应用的应用和子参数的名称

特殊规则
application 必须具有 urlfile 参数,但不能同时拥有两者

定义

application 参数定义了 Looker 扩展程序框架的应用。将扩展程序添加到项目后,具有相应权限的 Looker 用户可以看到 Looker 浏览菜单中列出的扩展程序。用户从浏览菜单中选择相应的扩展程序后,应用便会在 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) 哈希。它可以与 fileurl 参数一起使用。sri_hash不应包含 sha384- 前缀。

如果 url 指定了开发服务器,则忽略 sri_hash

entitlements

entitlements 参数指定扩展程序可以访问的资源。此扩展程序无法访问这些资源,除非相应扩展程序已列在 entitlements 中。

扩展程序应用必须指定权利;如果没有它们,应用就不会运行。

entitlements 参数包含以下子参数。如果未添加子参数,则默认情况下,不允许扩展程序访问该授权。

参数 说明 示例
local_storage 指定是否允许扩展程序访问本地存储空间。 local_storage: yes
navigation 指定是否允许扩展程序导航到 Looker 中的其他页面。 navigation: yes
new_window 指定是否允许扩展程序打开新的浏览器窗口或标签页。 new_window: yes
new_window_external_urls 扩展程序可能会为其打开新窗口的网址或网址的一部分(以英文逗号分隔)。此订阅需要 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 ADDED 21.6 指定是否允许此扩展程序下载文件。 use_downloads: yes
use_iframes ADDED 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 的网址列表(以英文逗号分隔)。如示例所示,您可以添加通配符,如 *

从 Looker 21.6 开始,直接使用 fetchXHR.open JavaScript 调用(而不是使用 extensionSDK.fetchProxyextensionSDK.serverProxy API 调用)的扩展程序必须包含列表中的网址。
external_api_urls: ["http://example.com:3000", "https://*.googleapis.com"]
oauth2_urls 扩展程序使用的 OAuth 2.0 身份验证和代码交换网址列表(以英文逗号分隔)。 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"]

示例

以下是来自项目清单文件的 application 参数,用于 Looker 的厨房接收器扩展示例

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 的扩展程序示例代码库