Manifest-Datei für ein Anwendungspaket erstellen¶
Unter diesem Thema wird beschrieben, wie Sie die Manifest-Datei für ein Anwendungspaket erstellen.
Allgemeine Informationen zur Manifest-Datei¶
Das Snowflake Native App Framework verlangt, dass jedes Anwendungspaket eine Manifest-Datei enthält. Diese Datei definiert Eigenschaften, die für das Anwendungspaket erforderlich sind, einschließlich Speicherort des Setup-Skripts und Versionsdefinitionen.
Für die Manifest-Datei gelten folgende Anforderungen:
Der Name der Manifest-Datei muss
manifest.yml
sein.Die Manifest-Datei muss in einen benannten Stagingbereich hochgeladen werden, damit sie beim Erstellen eines Anwendungspakets oder einer Snowflake Native App zugänglich ist.
Die Manifest-Datei muss im Stammverzeichnis der Verzeichnisstruktur des benannten Stagingbereichs vorhanden sein.
Referenz der Manifest-Datei¶
Die folgenden Eigenschaften sind zulässig und können in der Datei manifest.yml
enthalten sein:
- manifest_version:
Gibt die Version der Manifest-Datei an.
Erforderlich
- version:
Definiert einen Block mit Parametern, die sich auf eine Version beziehen.
Optional
- name:
Gibt den logischen Namen der Version an. Dieser Name wird in SQL-Befehlen verwendet, mit denen Versionen verwaltet werden.
- label:
Gibt einen Namen für die Version an, die den Verbrauchern angezeigt wird.
- comment:
Gibt einen Kommentar zu der Version an. Dieser Kommentar ist nur sichtbar, wenn der Anbieter den Befehl SHOW VERSIONS ausführt.
- artifacts:
Definiert einen Block, der sich auf Ressourcen bezieht, die von dieser Version des Pakets bereitgestellt werden.
Erforderlich
- readme:
Gibt einen Pfad zu einer Readme-Datei an, die einen Überblick zu der Snowflake Native App im Markdown-Format bereitstellt. 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 Datei
manifest.yml
angegeben.Erforderlich
- setup_script:
Gibt den Pfad und den Dateinamen des SQL-Skripts an, das bei der Installation der Snowflake Native App ausgeführt wird. Wenn Sie keinen Wert angeben, lautet der Standardwert
setup.sql
im gleichen Verzeichnis wie die Dateimanifest.yml
.Optional
- default_streamlit:
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.
Erforderlich, wenn die Snowflake Native App eine Streamlit-App enthält. Andernfalls optional.
- extension_code:
Gibt an, ob die Snowflake Native App UDFs und gespeicherte Prozeduren ausführen kann. Der Standardwert dieser Eigenschaft ist
false
.Optional
- configuration:
Gibt einen Block an, der Konfigurationseigenschaften für die Snowflake Native App enthält.
Optional
- log_level:
Gibt den Protokolliergrad an, der für die installierte Snowflake Native App verwendet werden soll. Weitere Informationen zu den unterstützten Werten für diese Eigenschaft finden Sie unter Einstellen des Protokolliergrads.
Optional
Standard: Aus
- trace_level:
Gibt die Ablaufverfolgungsereignis-Ebene an, die für die installierte Snowflake Native App verwendet werden soll. Wenn ein Anbieter die Ablaufverfolgung aktiviert, erfasst eine Snowflake Native App automatisch die Start- und Endzeiten für alle Abfragen und Aufrufe gespeicherter Prozeduren.
Bemerkung
Das Veröffentlichen einer Snowflake Native App mit der Eigenschaft
trace_level
, die auf einen anderen Wert alsOFF
eingestellt ist, könnte jedem Benutzer im Verbraucherkonto, der die Ereignistabelle einsehen kann, Aufrufe zu verborgenen gespeicherten Prozeduren offenlegen.Weitere Informationen zu den unterstützten Werte der Eigenschaft
trace_level
finden Sie unter Einstellen des Protokolliergrads (Ablaufverfolgungsebene).Optional
Standard: Aus
- privileges:
Definiert einen Block mit den Berechtigungen, die der Verbraucher bei der Installation der Snowflake Native App zuweisen muss.
Optional
Standard: Leere Liste
- <Name der Berechtigung>:
Gibt den Namen der Berechtigung an.
- description:
Liefert eine Beschreibung der angeforderten Berechtigung. Der in
description
angegebene Text wird dem Verbraucher angezeigt, wenn die Berechtigung in Snowsight unter Verwendung der Python Permission SDK angezeigt wird.Sie sollten so viele Informationen wie möglich darüber bereitstellen, warum die Snowflake Native App diese Berechtigung benötigt und ob die Berechtigung für die Anwendung erforderlich oder optional ist.
Erforderlich, wenn
privileges
angegeben ist.
- references:
Definiert einen Block, der die vom Anbieter definierten Referenzen enthält. Der Verbraucher muss diese Referenzen an Objekte in seinem Konto binden.
- - <Name der Referenz>:
Gibt den Namen der Referenz an.
- label:
Liefert eine Beschreibung der Referenz, die der Verbraucher bei der Installation der Snowflake Native App einsehen kann.
Erforderlich, wenn
references
angegeben ist.- privileges:
Gibt die Berechtigungen an, die für die Referenz erforderlich sind.
Erforderlich, wenn
references
angegeben ist.- object_type:
Gibt den Typ des Objekts an, das der Referenz zugeordnet ist, z. B. ein Schema und eine Tabelle oder eine API-Integration.
Erforderlich, wenn
references
angegeben ist.- multi_valued:
Gibt an, dass der Referenz mehr als ein Objekt zugeordnet ist.
Optional.
Standard: „false“
- register_callback:
Gibt den Namen der Callback-Funktion an, die zum Aufrufen der Referenz verwendet wird.
Erforderlich, wenn
references
angegeben ist.
Beispiel einer Manifest-Datei¶
Das folgende Beispiel zeigt eine typische Manifest-Datei, in der Werte für alle unterstützten Eigenschaften angegeben sind:
manifest_version: 1 # required
version:
name: hello_snowflake
label: "v1.0"
comment: "The first version of a Snowflake Native App"
artifacts:
readme: readme.md
setup_script: scripts/setup.sql
default_streamlit: streamlit/ux_schema.homepage_streamlit
extension_code: true
configuration:
log_level: debug
trace_level: always
privileges:
- EXECUTE TASK:
description: "Run ingestion tasks for replicating Redshift data"
- EXECUTE MANAGED TASK:
description: "To run serverless ingestion tasks for replicating Redshift data"
- CREATE WAREHOUSE:
description: "To create warehouses for executing tasks"
- MANAGE WAREHOUSES:
description: "To manage warehouses for optimizing the efficiency of your accounts"
- CREATE DATABASE:
description: "To create sink databases for replicating Redshift data"
- IMPORTED PRIVILEGES ON SNOWFLAKE DB:
description: "To access account_usage views"
references:
- consumer_table:
label: "Consumer table"
description: "A table in the consumer account that exists outside the APPLICATION object."
privileges:
- SELECT
- INSERT
- UPDATE
object_type: Table
multi_valued: true
register_callback: config.register_reference