Referenz zum Snowflake Native App-Manifest

In diesem Thema werden die Struktur und die Felder einer Snowflake Native App-Manifest-Datei beschrieben.

Feld manifest_version

Gibt die Version des Manifest-Dateiformats an.

Dieses Feld ist erforderlich.

manifest_version: 1

Diese Version der Manifest-Datei unterstützt die aktuelle und ältere Funktionalität von Snowflake Native Apps.

Beispiel: manifest_version: 1

manifest_version: 2

Diese Version der Manifest-Datei bietet Unterstützung für zusätzliche Features, einschließlich der automatischen Zuweisung von Berechtigungen.

Vorsicht

Bevor Sie Version 2 der Manifest-Datei verwenden, sollten Sie die in Allgemeine Informationen zur Manifest-Datei beschriebenen Auswirkungen auf die Sicherheit berücksichtigen.

Beispiel: manifest_version: 2

manifest_version-Beispiel

manifest_version: 2
Copy

Feld version

Definiert einen Block mit Feldern, die sich auf die Version einer App beziehen. Weitere Informationen zu Versionen und Patches finden Sie unter App aktualisieren.

Bemerkung

Versionen und Patches, die mit dem Befehl CREATE APPLICATION PACKAGE oder ALTER APPLICATION PACKAGE definiert wurden, haben Vorrang vor den in der Manifest-Datei definierten Versionen und Patches.

Dieses Feld ist optional.

name

Gibt den Namen der Version an.

Dieses Feld ist optional.

Beispiel: name: v1

patch

Gibt die Standard-Patch-Nummer an.

Dieses Feld ist optional.

Beispiel: patch: 1

label

Gibt einen Namen für die Version an, die den Verbrauchern angezeigt wird.

Dieses Feld ist optional.

Beispiel: label: "Initial Release"

comment

Gibt einen Kommentar zu der Version an. Dieser Kommentar ist in Snowsight sichtbar, oder wenn der Anbietende den Befehl SHOW VERSIONS IN APPLICATION PACKAGE ausführt.

Dieses Feld ist optional.

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

version:-Beispiel

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

Feld artifacts:

Definiert einen Block, der die von der App verwendeten Ressourcen angibt.

Dieses Feld ist erforderlich.

setup_script:

Gibt den Pfad und den Dateinamen des Setup-Skripts an, das bei der Installation oder Aktualisierung der Snowflake Native App ausgeführt wird. Wenn Sie keinen Wert angeben, verwendet die App den Standardwert setup.sql im gleichen Verzeichnis wie die Manifest-Datei.

Beispiel: setup_script: scripts/setup.sh

readme:

Gibt einen Pfad zu einer Markdown-Readme-Datei an, die einen Überblick über die App und ihre Funktionen bietet.

Wenn im Falle einer Streamlit-App kein Wert für die Eigenschaft default_streamlit angegeben ist, wird der Inhalt dieser Datei den Verbrauchern angezeigt, wenn diese die installierte Snowflake Native App anzeigen.

Der Speicherort dieser Datei wird relativ zum Speicherort der Manifest-Datei angegeben.

Dieses Feld ist optional, aber Snowflake empfiehlt, dass Sie Ihrer App eine Readme-Datei beifügen.

Beispiel: readme: docs/README.md

default_streamlit_app:

Wenn Snowflake Native App eine Streamlit-App enthält, gibt diese Eigenschaft das Schema und den Namen der standardmäßigen Streamlit-App an, die für Verbraucher verfügbar ist.

Dieses Feld ist erforderlich, wenn die App eine Streamlit-App enthält.

extension_code:

Aktiviert oder deaktiviert die Verwendung von Erweiterungscodesprachen, einschließlich Java, Python und Scala.

Beispiel: extension_code: true

container_services:

Gibt den Speicherort der Container-Images an, die von einer App mit Containern verwendet werden. Weitere Informationen dazu finden Sie unter Container-Images angeben, die von einer App mit Containern verwendet werden.

Dieses Feld ist für eine App mit Containern erforderlich.

uses_gpu:

Zeigt an, dass die App mit Containern eine GPU verwendet.

Dieses Feld ist für eine App mit Containern erforderlich.

Beispiel: uses_gpu: true

images:

Gibt den Pfad zu jedem der Container-Images an, die von einer App mit Containern verwendet werden.

Dieses Feld ist für eine App mit Containern erforderlich.

Beispiel:

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

artifacts-Beispiel

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

Feld configuration

Gibt einen Block an, der Konfigurationseigenschaften für eine App enthält.

Dieses Feld ist optional.

log_level:

Gibt den Protokolliergrad an, der für die App Snowflake Native App verwendet werden soll.

Wenn Sie keinen Wert für diese Eigenschaft festlegen, werden die standardmäßigen Protokolldaten nicht erfasst.

Informationen über unterstützte Werte finden Sie unter Einstellung der Grade für Protokollierung, Metriken und Ablaufverfolgung.

trace_level:

Gibt die Ablaufverfolgungsereignis-Ebene an, die für die App verwendet werden soll. Wenn ein Anbietender die Ablaufverfolgung aktiviert, erfasst die App automatisch die Start- und Endzeiten für alle Abfragen und Aufrufe gespeicherter Prozeduren.

Vorsicht

Das Veröffentlichen einer App mit der Eigenschaft trace_level, die auf einen anderen Wert als OFF eingestellt ist, könnte jedem Benutzer im Konto des Verbrauchenden, der die Ereignistabelle einsehen kann, Aufrufe zu verborgenen gespeicherten Prozeduren offenlegen.

Wenn Sie keinen Wert für diese Eigenschaft festlegen, werden die Ablaufverfolgungsereignisse nicht erfasst.

Weitere Informationen zu den unterstützten Werten der trace_level-Eigenschaft finden Sie unter Einstellung der Grade für Protokollierung, Metriken und Ablaufverfolgung.

metric_level:

Gibt die für die App zu verwendende metrische Ebene an. Wenn ein Anbieter Metriken aktiviert, sendet die App automatisch instrumentierte Ressourcenmetrik-Datenpunkte an die Ereignistabelle.

Weitere Informationen dazu finden Sie unter Protokoll- und Ablaufverfolgungsstufen für eine App festlegen.

Weitere Informationen zu den unterstützten Werten der metric_level-Eigenschaft finden Sie unter Einstellung der Grade für Protokollierung, Metriken und Ablaufverfolgung.

grant_callback:

Gibt das Schema und den Namen der Callback-Funktion für eine App mit Containern an. Bei der Callback-Funktion handelt es sich um eine gespeicherte Prozedur, die Computepools und Dienste erstellen und andere von der Anwendung benötigte Einrichtungsaufgaben ausführen kann.

Dieses Feld ist für eine App mit Containern erforderlich.

Weitere Informationen dazu finden Sie unter Dienst mithilfe der Eigenschaft grant_callback erstellen.

Beispiel: grant_callback: my_schema.my_grant_callback

configuration-Beispiel

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

Feld privileges:

Definiert einen Block mit den Berechtigungen, die die App in einem Konto des Verbrauchenden anfordert.

Dieses Feld ist erforderlich, wenn die App Berechtigungen im Konto des Verbrauchenden anfordert.

<privilege_name>:

Gibt den Namen einer Berechtigung an, die die App in einem Konto des Verbrauchenden anfordert.

Dieses Feld ist erforderlich, wenn die privileges-Eigenschaft angegeben ist.

description:

Liefert eine Beschreibung der angeforderten Berechtigung. Der in description angegebene Text wird dem Verbraucher angezeigt, wenn die Berechtigung in Snowsight mit dem Befehl Python Permission SDK angezeigt wird, oder wenn der SHOW PRIVILEGES-Befehl ausgeführt wird.

Beziehen Sie als Anbietender so viele Informationen wie möglich ein, warum die Snowflake Native App diese Berechtigung benötigt und ob die Berechtigung erforderlich oder optional ist.

Dieses Feld ist erforderlich, wenn das Feld privileges angegeben ist.

privileges:-Beispiel

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

Feld references:

Definiert einen Block mit den Referenzen, die die App in einem Konto des Verbrauchenden anfordert. Der Verbraucher muss diese Referenzen an Objekte in seinem Konto binden.

Dieses Feld ist erforderlich, wenn die App Referenzen im Konto des Verbrauchenden anfordert.

- <reference_name>:

Gibt den Namen einer Referenz an, die die App in einem Konto des Verbrauchenden anfordert.

Dieses Feld ist erforderlich, wenn die references-Eigenschaft angegeben ist.

label:

Gibt eine Bezeichnung für die Referenz an, die den Verbrauchenden angezeigt wird.

Dieses Feld ist erforderlich, wenn die references-Eigenschaft angegeben ist.

Beispiel: label: "Orders table"

description:

Liefert eine Beschreibung der angeforderten Referenz. Der in description angegebene Text wird dem Verbrauchenden angezeigt, wenn die Referenz in Snowsight mit dem Befehl Python Permission SDK angezeigt wird, oder wenn der SHOW REFERENCES-Befehl ausgeführt wird.

Dieses Feld ist erforderlich, wenn die references-Eigenschaft angegeben ist.

privileges:

Gibt eine Liste von Berechtigungen an, die die App für das Objekt benötigt, an das die Referenz im Konto des Verbrauchenden gebunden ist.

Dieses Feld ist erforderlich, wenn die references-Eigenschaft angegeben ist.

Beispiel:

privileges:
  - SELECT
  - INSERT
Copy

object_type

Gibt den Typ des Objekts an, das der Referenz zugeordnet ist, z. B. ein Schema und eine Tabelle oder eine API-Integration.

Dieses Feld ist erforderlich, wenn das Feld references angegeben ist.

Beispiel: object_type: TABLE

Weitere Informationen dazu finden Sie unter Objekttypen und Berechtigungen, die eine Referenz enthalten kann.

multi_valued:

Es ist zulässig, dass der Referenz mehr als ein Objekt zugeordnet wird. Verwenden Sie diese Eigenschaft, um mehrere Verbraucherobjekte an dieselbe Referenz zu binden. Wenn diese Eigenschaft angegeben ist, werden die gleichen Operationen an Objekten mit einer einzigen Wertreferenz durchgeführt. Die Eigenschaft kann auch für Objekte mit mehrwertigen Referenzen verwendet werden.

Dieses Feld ist optional. Der Standardwert ist false.

Weitere Informationen dazu finden Sie unter Referenzen und Berechtigungen auf Objektebene von Verbrauchern anfordern.

Beispiel: multi_valued: true

register_callback

Gibt das Schema und den Namen der Callback-Funktion an, die ausgeführt wird, wenn der Verbrauchende die Referenz an ein Objekt im entsprechenden Konto bindet.

Dieses Feld ist erforderlich, wenn die references-Eigenschaft angegeben ist.

Beispiel: register_callback: my_schema.my_register_callback

configuration_callback

Gibt den Namen der Callback-Funktion an, die die gewünschte Konfiguration für das Objekt bereitstellt, das an diese Referenz gebunden werden soll.

Diese Eigenschaft ist erforderlich, wenn object_type den Wert EXTERNAL ACCESS INTEGRATION oder SECRET hat. Diese Eigenschaft ist nicht auf andere Typen von Objekten anwendbar.

required_at_setup

Zeigt an, dass Referenzen gebunden werden müssen, wenn die App installiert wird.

Beispiel: required_at_setup: true

references-Beispiel

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

Feld restricted_callers_rights:

Gibt Konfigurationseigenschaften in Bezug auf eingeschränkte Rechte des Aufrufenden an.

Dieses Feld ist erforderlich, wenn die App gespeicherte Prozeduren oder Snowpark Container Services-Dienste erstellt, die mit eingeschränkten Rechten des Aufrufenden ausgeführt werden.

Weitere Informationen dazu finden Sie unter Verwenden von Eigentümerrechten und beschränkten Aufruferrechten in einer Anwendung.

enabled:

Gibt an, ob die App ausführbare Dateien mit eingeschränkten Rechten des Aufrufenden erstellen darf.

Anbieter müssen diese Eigenschaft auf true festlegen, wenn die App gespeicherte Prozeduren oder Snowpark Container Services-Dienste erstellt, die mit eingeschränkten Rechten des Aufrufenden ausgeführt werden.

description:

Bietet eine Beschreibung, warum die App ausführbare Dateien mit eingeschränkten Rechten des Aufrufenden erstellen muss.

restricted_callers_rights:-Beispiel

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