Criação do arquivo de manifesto

Este tópico descreve como criar o arquivo de manifesto para um pacote de aplicativo.

Sobre o arquivo de manifesto

O Snowflake Native App Framework exige que cada pacote de aplicativo contenha um arquivo de manifesto. Este arquivo define as propriedades exigidas pelo pacote de aplicativo, incluindo o local do script de configuração e as definições de versão.

O arquivo de manifesto tem os seguintes requisitos:

  • O nome do arquivo de manifesto deve ser manifest.yml.

  • O arquivo de manifesto deve ser carregado em um estágio nomeado para que fique acessível ao criar um pacote de aplicativo ou Snowflake Native App.

  • O arquivo de manifesto deve existir na raiz da estrutura de diretórios no estágio nomeado.

Referência do arquivo de manifesto

A seguir estão as propriedades válidas que o arquivo manifest.yml pode conter:

manifest_version:

Especifica a versão do arquivo de manifesto.

Obrigatório

version:

Define um bloco contendo parâmetros relacionados a uma versão.

Opcional

name:

Especifica o nome lógico da versão. Este nome é usado em comandos SQL que gerenciam versões.

label:

Especifica um nome para a versão exibida aos consumidores.

comment:

Especifica um comentário para a versão. Este comentário só fica visível quando o provedor executa o comando SHOW VERSIONS.

artifacts:

Define um bloco relacionado aos recursos que são distribuídos a partir desta versão do pacote.

Obrigatório

readme:

Especifica um caminho para um arquivo leia-me que fornece uma visão geral do Snowflake Native App no formato markdown. No caso de um aplicativo Streamlit, se nenhum valor for especificado para a propriedade default_streamlit, o conteúdo desse arquivo será exibido aos consumidores ao visualizar o Snowflake Native App instalado.

A localização deste arquivo é especificada em relação à localização do arquivo manifest.yml.

Obrigatório

setup_script:

Especifica o caminho e o nome do arquivo do script SQL que é executado quando o Snowflake Native App é instalado. Se você não especificar um valor, o valor padrão será setup.sql no mesmo diretório do arquivo manifest.yml.

Opcional

default_streamlit:

Se Snowflake Native App incluir um aplicativo Streamlit, essa propriedade especificará o esquema e o nome do aplicativo Streamlit padrão disponível para os consumidores.

Obrigatório se Snowflake Native App incluir um aplicativo Streamlit. Opcional, caso contrário.

extension_code:

Especifica se Snowflake Native App pode executar UDFs e procedimentos armazenados. O valor padrão dessa propriedade é false.

Opcional

configuration:

Especifica um bloco contendo as propriedades de configuração para Snowflake Native App.

Opcional

log_level:

Especifica o nível de registro em log a ser usado para o Snowflake Native App instalado. Consulte Configuração do nível de registro para obter informações sobre os valores suportados para esta propriedade.

Opcional

Padrão: desativado

trace_level:

Especifica o nível de evento de rastreamento a ser usado para o Snowflake Native App instalado. Quando um provedor ativa o rastreamento, um Snowflake Native App captura automaticamente as horas de início e término de todas as consultas e chamadas de procedimento armazenado.

Nota

Publicar um Snowflake Native App com a propriedade trace_level definida com um valor diferente de OFF pode expor chamadas para procedimentos armazenados ocultos a qualquer usuário na conta do consumidor que possa visualizar a tabela de eventos.

Consulte Configuração do nível de rastreamento para obter os valores suportados da propriedade trace_level.

Opcional

Padrão: desativado

privileges:

Define um bloco contendo os privilégios que o consumidor deve conceder quando o Snowflake Native App for instalado.

Opcional

Padrão: uma lista vazia

<privilege name>:

Especifica o nome do privilégio.

description:

Fornece uma descrição do privilégio que está sendo solicitado. O texto especificado em description é exibido para o consumidor quando o privilégio é exibido em Snowsight usando Python Permission SDK.

Você deve fornecer o máximo de informações possível sobre por que o Snowflake Native App precisa desse privilégio e se o privilégio é obrigatório ou opcional.

Obrigatório se privileges for especificado.

references:

Define um bloco contendo as referências definidas pelo provedor. O consumidor deve vincular essas referências aos objetos em sua conta.

- <reference name>:

Especifica o nome da referência.

label:

Fornece uma descrição da referência que o consumidor pode visualizar quando o Snowflake Native App é instalado.

Obrigatório se references for especificado.

privileges:

Especifica os privilégios exigidos pela referência.

Obrigatório se references for especificado.

object_type:

Especifica o tipo de objeto associado à referência, por exemplo, um esquema e tabela ou uma integração de API.

Obrigatório se references for especificado.

multi_valued:

Especifica que mais de um objeto está associado à referência.

Opcional.

Padrão: falso

register_callback:

Especifica o nome da função de retorno de chamada usada para chamar a referência.

Obrigatório se references for especificado.

Exemplo do arquivo de manifesto

O exemplo a seguir mostra um arquivo de manifesto típico com valores especificados para todas as propriedades com suporte:

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