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
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."
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
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
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
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.'
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
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
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."