애플리케이션

사용

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

기본 메뉴의 애플리케이션 섹션에 사용자에게 표시되는 애플리케이션의 이름을 지정합니다. labelLookML 모델을 현지화하는 경우 현지화할 수 있습니다.

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 저장소를 참고하세요.