Snowflake Native App 매니페스트 참조

이 항목에서는 Snowflake Native App 매니페스트 파일의 구조와 필드에 대해 설명합니다.

manifest_version 필드

매니페스트 파일 형식의 버전을 지정합니다.

이 필드는 필수입니다.

manifest_version: 1

이 버전의 매니페스트 파일은 |native-apps|의 현재 및 레거시 기능을 지원합니다.

예: manifest_version: 1

manifest_version: 2

이 버전의 매니페스트 파일은 자동 권한 부여 등 추가 기능을 지원합니다.

조심

매니페스트 파일의 버전 2를 사용하기 전에 :ref:`label-native_apps_manifest_about`에 설명된 보안 영향을 고려하세요.

예: manifest_version: 2

manifest_version 예제

manifest_version: 2
Copy

version 필드

앱의 버전과 관련된 필드가 포함된 블록을 정의합니다. 버전 및 패치에 대한 자세한 내용은 앱 업데이트하기 섹션을 참조하십시오.

참고

CREATE APPLICATION PACKAGE 또는 ALTER APPLICATION PACKAGE 명령을 사용하여 정의된 버전 및 패치는 매니페스트 파일에 정의된 명령보다 우선합니다.

이 필드는 선택 사항입니다.

name

버전의 이름을 지정합니다.

이 필드는 선택 사항입니다.

예: name: v1

patch

기본 패치 번호를 지정합니다.

이 필드는 선택 사항입니다.

예: patch: 1

label

컨슈머에게 표시되는 버전의 이름을 지정합니다.

이 필드는 선택 사항입니다.

예: label: "Initial Release"

comment

버전에 대한 설명을 지정합니다. 이 설명은 |sf-web-interface|에 표시되거나 공급자가 SHOW VERSIONS IN APPLICATION PACKAGE 명령을 실행할 때만 표시됩니다.

이 필드는 선택 사항입니다.

예: comment: "This is the initial release of the app."

version: 예제

version:
  name: v1
  patch: 1
  label: "Initial Release"
  comment: "This is the initial release of the app."
Copy

artifacts: 필드

앱에서 사용된 리소스를 지정하는 블록을 정의합니다.

이 필드는 필수입니다.

setup_script:

|native-app|이 설치되거나 업그레이드될 때 실행되는 스크립트의 경로와 파일 이름을 지정합니다. 값을 지정하지 않으면 앱은 매니페스트 파일과 동일한 디렉터리에 있는 기본값 :file:`setup.sql`을 사용합니다.

예: setup_script: scripts/setup.sh

readme:

앱과 해당 기능에 대한 개요를 제공하는 마크다운 추가 정보 파일의 경로를 지정합니다.

Streamlit 앱의 경우 default_streamlit 속성에 지정된 값이 없을 경우 설치된 Snowflake Native App 을 볼 때 이 파일의 내용이 컨슈머에게 표시됩니다.

이 파일의 위치는 매니페스트 파일의 위치를 기준으로 지정됩니다.

이 필드는 선택 사항이지만, 앱에 readme 파일을 포함하는 것이 좋습니다.

예: readme: docs/README.md

default_streamlit_app:

Snowflake Native App 에 Streamlit 앱이 포함되는 경우 이 속성에 따라 컨슈머가 사용할 수 있는 기본 Streamlit 앱의 스키마와 이름이 지정됩니다.

앱에 Streamlit 앱이 포함된 경우 이 필드는 필수입니다.

extension_code:

Java, Python, Scala 등 확장 프로그램 코드 언어의 사용을 활성화하거나 비활성화합니다.

예: extension_code: true

container_services:

컨테이너가 포함된 앱에서 사용하는 컨테이너 이미지의 위치를 지정합니다. 자세한 내용은 컨테이너를 사용하여 앱에서 사용하는 컨테이너 이미지 지정하기 섹션을 참조하십시오.

컨테이너가 있는 앱의 경우 이 필드는 필수입니다.

uses_gpu:

컨테이너가 있는 앱에서 GPU를 사용함을 나타냅니다.

컨테이너가 있는 앱의 경우 이 필드는 필수입니다.

예: uses_gpu: true

images:

컨테이너가 포함된 앱에서 사용하는 각 컨테이너 이미지의 경로를 지정합니다.

컨테이너가 있는 앱의 경우 이 필드는 필수입니다.

예:

images:
- /spcs_app/napp/img_repo/eap_frontend
- /spcs_app/napp/img_repo/eap_backend
- /spcs_app/napp/img_repo/eap_router
Copy

artifacts 예제

artifacts:
  setup_script: scripts/setup.sql
  readme: docs/README.md
  default_streamlit_app: apps/main.py
  extension_code: true
  container_services:
      uses_gpu: true
      images:
        - /spcs_app/napp/img_repo/eap_frontend
        - /spcs_app/napp/img_repo/eap_backend
Copy

configuration 필드

앱에 대한 구성 속성을 포함하는 블록을 지정합니다.

이 필드는 선택 사항입니다.

log_level:

Snowflake Native App 앱에 사용할 로깅 수준을 지정합니다.

이 속성의 값을 설정하지 않으면 기본 로그 데이터가 캡처되지 않습니다.

지원되는 값에 대한 자세한 내용은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하세요.

trace_level:

앱에 사용할 추적 이벤트 수준을 지정합니다. 공급자가 추적을 활성화하면 앱은 모든 쿼리와 저장 프로시저 호출의 시작 시간과 종료 시간을 자동으로 캡처합니다.

조심

trace_level 속성이 OFF 이외의 값으로 설정된 앱을 게시하면 이벤트 테이블을 볼 수 있는 컨슈머 계정의 모든 사용자에게 숨겨진 저장 프로시저에 대한 호출이 노출될 수 있습니다.

이 속성의 값을 설정하지 않으면 추적 이벤트가 캡처되지 않습니다.

trace_level 속성에 지원되는 값은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하십시오.

metric_level:

앱에 사용할 메트릭 수준을 지정합니다. 공급자가 메트릭을 활성화하면 앱은 자동 계측된 리소스 메트릭 데이터 요소를 이벤트 테이블에 자동으로 전송합니다.

자세한 내용은 앱의 로그 및 추적 수준 설정 섹션을 참조하십시오.

metric_level 속성에 지원되는 값은 로깅, 메트릭 및 추적을 위한 수준 설정하기 섹션을 참조하십시오.

grant_callback:

컨테이너가 있는 앱에 대한 콜백 함수의 스키마와 이름을 지정합니다. 콜백 함수는 애플리케이션에 필요한 컴퓨팅 풀, 서비스를 생성하고 다른 설정 작업을 수행할 수 있는 저장 프로시저입니다.

컨테이너가 있는 앱의 경우 이 필드는 필수입니다.

자세한 내용은 grant_callback 속성을 사용하여 서비스 만들기 섹션을 참조하십시오.

예: grant_callback: my_schema.my_grant_callback

configuration 예제

configuration:
  log_level: INFO
  trace_level: OFF
  metric_level: BASIC
  grant_callback: my_schema.my_grant_callback
Copy

privileges: 필드

앱이 컨슈머 계정에서 요청하는 권한이 포함된 블록을 정의합니다.

앱이 컨슈머 계정에서 권한을 요청하는 경우 이 필드는 필수입니다.

<privilege_name>:

앱이 컨슈머 계정에서 요청하는 권한의 이름을 지정합니다.

privileges 속성이 지정된 경우 이 필드는 필수입니다.

description:

요청 중인 권한에 대한 설명을 제공합니다. Python Permission SDK 를 사용하여 권한이 Snowsight 에 표시되거나 SHOW PRIVILEGES 명령이 실행될 때 description 에 지정된 텍스트가 컨슈머에게 표시됩니다.

공급자는 |native-app|에 이 권한이 필요한 이유 및 해당 권한이 필수인지 선택 사항인지 여부에 대한 정보를 최대한 많이 포함해야 합니다.

privileges 필드가 지정된 경우 이 필드는 필수입니다.

privileges: 예제

privileges:
- CREATE TABLE:
  description: 'Required to create tables in the consumer account.'
- CREATE COMPUTE POOL:
  description: 'Required to allow the app to create a compute pool in the consumer account.'
- BIND SERVICE ENDPOINT:
  description: 'Required to allow endpoints to be externally accessible.'
Copy

references: 필드

앱이 컨슈머 계정에서 요청하는 참조를 포함하는 블록을 정의합니다. 컨슈머는 이러한 참조를 해당 계정 내의 오브젝트에 바인딩해야 합니다.

앱이 컨슈머 계정에서 참조를 요청하는 경우 이 필드는 필수입니다.

- <reference_name>:

앱이 컨슈머 계정에서 요청하는 참조의 이름을 지정합니다.

references 속성이 지정된 경우 이 필드는 필수입니다.

label:

컨슈머에게 표시되는 참조의 레이블을 지정합니다.

references 속성이 지정된 경우 이 필드는 필수입니다.

예: label: "Orders table"

description:

요청 중인 참조에 대한 설명을 제공합니다. ``description``에 지정된 텍스트는 |native-app-perms|를 사용하여 참조가 |sf-web-interface|에 표시되거나 SHOW REFERENCES 명령이 실행될 때 컨슈머에게 표시됩니다.

references 속성이 지정된 경우 이 필드는 필수입니다.

privileges:

앱이 컨슈머 계정에서 참조가 바인딩된 오브젝트에 대해 필요한 권한 목록을 지정합니다.

references 속성이 지정된 경우 이 필드는 필수입니다.

예:

privileges:
  - SELECT
  - INSERT
Copy

object_type

참조와 연결된 오브젝트의 유형(예: 스키마와 테이블 또는 API 통합)을 지정합니다.

references 필드가 지정된 경우 이 필드는 필수입니다.

예: object_type: TABLE

자세한 내용은 참조가 포함할 수 있는 오브젝트 유형 및 권한 섹션을 참조하십시오.

multi_valued:

둘 이상의 오브젝트를 참조와 연결할 수 있습니다. 이 속성을 사용하면 여러 컨슈머 오브젝트를 동일한 참조에 바인딩할 수 있습니다. 이 속성이 지정되면 단일 값 참조가 있는 오브젝트에서 동일한 작업이 수행됩니다. 이 속성은 다중값 참조가 있는 오브젝트에도 사용할 수 있습니다.

이 필드는 선택 사항입니다. 기본값은 false 입니다.

자세한 내용은 컨슈머로부터 참조 및 오브젝트 수준 권한 요청하기 섹션을 참조하십시오.

예: multi_valued: true

register_callback

컨슈머가 참조를 계정의 오브젝트에 바인딩할 때 실행되는 콜백 함수의 스키마와 이름을 지정합니다.

references 속성이 지정된 경우 이 필드는 필수입니다.

예: register_callback: my_schema.my_register_callback

configuration_callback

이 참조에 바인딩할 오브젝트에 대해 원하는 구성을 제공하는 콜백 함수의 이름을 지정합니다.

이 속성은 object_typeEXTERNAL ACCESS INTEGRATION 또는 SECRET 인 경우 필수입니다. 이 속성은 다른 유형의 오브젝트에는 적용할 수 없습니다.

required_at_setup

앱을 설치할 때 참조가 바인딩되어야 함을 나타냅니다.

예: required_at_setup: true

references 예제

references:
- ORDERS_TABLE:
    label: "Orders table"
    description: "Orders table in TPC-H samples"
    privileges:
      - SELECT
    object_type: VIEW
    multi_valued: false
    register_callback: v1.register_single_callback

- EXTERNAL_ENDPOINT_EAI:
    label: "Allows egress to an external API"
    description: "EAI for Egress from NA+SPCS"
    privileges: [USAGE]
    object_type: EXTERNAL_ACCESS_INTEGRATION
    register_callback: v1.register_single_callback
    configuration_callback: v1.get_configuration
    required_at_setup: true
Copy

restricted_callers_rights: 필드

제한된 호출자의 권한과 관련된 구성 속성을 지정합니다.

앱이 저장 프로시저 또는 제한된 호출자 권한으로 실행되는 Snowpark Container Services 서비스를 생성하는 경우 이 필드는 필수입니다.

자세한 내용은 앱에서 소유자 권한 및 제한된 호출자 권한 사용하기 섹션을 참조하십시오.

enabled:

앱이 호출자의 권한이 제한된 실행 파일을 만들 수 있는지 여부를 지정합니다.

앱이 저장 프로시저를 생성하거나 제한된 호출자 권한으로 실행되는 Snowpark Container Services 서비스를 생성하는 경우 공급자는 이 속성을 ``true``로 설정해야 합니다.

description:

앱이 호출자의 권한이 제한된 실행 파일을 만들어야 하는 이유에 대한 설명을 제공합니다.

restricted_callers_rights: 예제

restricted_callers_rights:
  enabled: true
  description: "Required to create stored procedures that run with restricted caller's rights."
Copy