사용
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
기본 메뉴의 애플리케이션 섹션에 사용자에게 표시되는 애플리케이션의 이름을 지정합니다. label는 LookML 모델을 현지화하는 경우 현지화할 수 있습니다.
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의 kitchen sink 확장 프로그램 예시 프로젝트 매니페스트 파일의 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 저장소를 참고하세요.