Criação do arquivo de manifesto para um pacote de aplicativo

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

Sobre o arquivo de manifesto

O arquivo de manifesto contém informações que o pacote do aplicativo requer para criar e gerenciar um Snowflake Native App. Isso inclui o local do script de configuração, definições de versão e informações de configuração do aplicativo.

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 pacote do aplicativo.

  • O arquivo de manifesto deve existir na raiz da estrutura de diretório no estágio nomeado onde outros arquivos do aplicativo são armazenados.

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. Para mais informações sobre versões e patches, consulte Sobre versões e patches.

Opcional

name:

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

Opcional

patch:

Especifica o número de patch padrão. Este número é usado em comandos SQL que gerenciam versões. Números de patch especificados usando SQL têm prioridade. Para mais informações sobre versões e patches, consulte Sobre versões e patches.

Opcional

label:

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

Opcional

comment:

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

Opcional

artifacts:

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

Opcional

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.

Opcional

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.

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. Para obter informações sobre valores compatíveis para esta propriedade, consulte Definição de níveis para registro, métricas e rastreamento.

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.

Para os valores compatíveis da propriedade trace_level, consulte Definição de níveis para registro, métricas e rastreamento.

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 ao consumidor quando o privilégio é exibido no Snowsight usando o Python Permission SDK, ou quando o comando SHOW PRIVILEGES é executado.

Forneça o máximo de informações possível sobre o motivo pelo qual 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.

Opcional

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

description:

Fornece uma descrição da referência solicitada. O texto especificado em description é exibido ao consumidor quando a referência é exibida em Snowsight usando o Python Permission SDK.

É necessário fornecer o máximo de informações possível sobre o motivo pelo qual o Snowflake Native App precisa dessa referência e se o privilégio é obrigatório ou opcional.

Obrigatório se privileges 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. Use esta propriedade para vincular vários objetos de consumidor à mesma referência. Quando essa propriedade é especificada, as mesmas operações são executadas em objetos com uma única referência de valor. A propriedade também pode ser usada com objetos com referências de vários valores. Consulte Solicitação de referências e privilégios de nível de objeto de consumidores para saber mais sobre operações de referência do Snowflake Native App Framework.

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.

retorno_de_chamada_configuração:

Especifica o nome da função de retorno de chamada que fornecerá a configuração desejada para o objeto ser vinculado a esta referência.

Esta propriedade é necessária se object_type for EXTERNAL ACCESS INTEGRATION ou SECRET. Esta propriedade não se aplica a outros tipos de objetos.

required_at_setup:

Indica que as referências devem ser vinculadas quando o aplicativo é instalado. Aceita: TRUE ou FALSE. O padrão é FALSE.

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
  patch: 3
  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

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"
  - READ SESSION:
      description: "To allow Streamlit to access some context functions"

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
  - consumer_external_access:
      label: "Consumer external access integration"
      description: "An external access integration in the consumer account that exists outside the APPLICATION object."
      privileges:
        - USAGE
      object_type: EXTERNAL ACCESS INTEGRATION
      register_callback: config.register_reference
      configuration_callback: config.get_configuration_for_reference
      required_at_setup: true
Copy