用法
层次结构
application |
默认值
无接受
用于定义应用的应用和子参数的名称特殊规则
application 必须具有 url 或 file 参数,但不能同时拥有两者
|
定义
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) 哈希。它可以与 file
或 url
参数一起使用。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 开始,直接使用 fetch 或 XHR.open JavaScript 调用(而不是使用 extensionSDK.fetchProxy 或 extensionSDK.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 的扩展程序示例代码库。