Erstellen der Manifest-Datei

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 Datei manifest.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 als OFF 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
Copy