snow app validate

Valide le script de configuration d’une Snowflake Native App.

Syntaxe

snow app validate
  --package-entity-id <package_entity_id>
  --app-entity-id <app_entity_id>
  --project <project_definition>
  --env <env_overrides>
  --connection <connection>
  --host <host>
  --port <port>
  --account <account>
  --user <user>
  --password <password>
  --authenticator <authenticator>
  --private-key-file <private_key_file>
  --token-file-path <token_file_path>
  --database <database>
  --schema <schema>
  --role <role>
  --warehouse <warehouse>
  --temporary-connection
  --mfa-passcode <mfa_passcode>
  --enable-diag
  --diag-log-path <diag_log_path>
  --diag-allowlist-path <diag_allowlist_path>
  --oauth-client-id <oauth_client_id>
  --oauth-client-secret <oauth_client_secret>
  --oauth-authorization-url <oauth_authorization_url>
  --oauth-token-request-url <oauth_token_request_url>
  --oauth-redirect-uri <oauth_redirect_uri>
  --oauth-scope <oauth_scope>
  --oauth-disable-pkce
  --oauth-enable-refresh-tokens
  --oauth-enable-single-use-refresh-tokens
  --client-store-temporary-credential
  --format <format>
  --verbose
  --debug
  --silent
  --enhanced-exit-codes
Copy

Arguments

Aucun(e)

Options

--package-entity-id TEXT

L’ID de l’entité du paquet sur laquelle opérer lorsque definition_version est la 2 ou supérieure.

--app-entity-id TEXT

L’ID de l’entité d’application sur laquelle opérer la definition_version est la 2 ou supérieure.

-p, --project TEXT

Chemin où le projet Snowflake est stocké. La valeur par défaut est le répertoire de travail actuel.

--env TEXT

Chaîne au format clé=valeur. Remplace les variables de la section env utilisées pour les modèles. Par défaut : [].

--connection, -c, --environment TEXT

Nom de la connexion, tel que défini dans votre fichier config.toml. Défaut : défaut.

--host TEXT

Adresse de l’hôte pour la connexion. Remplace la valeur spécifiée pour la connexion.

--port INTEGER

Port pour la connexion. Remplace la valeur spécifiée pour la connexion.

--account, --accountname TEXT

Nom attribué à votre compte Snowflake. Remplace la valeur spécifiée pour la connexion.

--user, --username TEXT

Nom d’utilisateur pour se connecter à Snowflake. Remplace la valeur spécifiée pour la connexion.

--password TEXT

Mot de passe Snowflake. Remplace la valeur spécifiée pour la connexion.

--authenticator TEXT

Authentificateur Snowflake. Remplace la valeur spécifiée pour la connexion.

--private-key-file, --private-key-path TEXT

Chemin du fichier de clé privée Snowflake. Remplace la valeur spécifiée pour la connexion.

--token-file-path TEXT

Chemin d’accès au fichier contenant un jeton OAuth à utiliser lors de la connexion à Snowflake.

--database, --dbname TEXT

Base de données à utiliser. Remplace la valeur spécifiée pour la connexion.

--schema, --schemaname TEXT

Schéma de la base de données à utiliser. Remplace la valeur spécifiée pour la connexion.

--role, --rolename TEXT

Rôle à utiliser. Remplace la valeur spécifiée pour la connexion.

--warehouse TEXT

Entrepôt à utiliser. Remplace la valeur spécifiée pour la connexion.

--temporary-connection, -x

Utilise une connexion définie avec les paramètres de la ligne de commande, au lieu d’une connexion définie dans la configuration. Par défaut : false.

--mfa-passcode TEXT

Jeton à utiliser pour l’authentification multifactorielle (MFA)

--enable-diag

Indique s’il faut générer un rapport de diagnostic de la connexion. Par défaut : false.

--diag-log-path TEXT

Chemin d’accès au rapport généré. Il s’agit du répertoire temporaire du système par défaut. Par défaut : <system_temporary_directory>.

--diag-allowlist-path TEXT

Chemin d’accès à un fichier JSON contenant les paramètres de la liste d’autorisations.

--oauth-client-id TEXT

Valeur de l’identifiant du client fourni par le fournisseur d’identité pour l’intégration dans Snowflake.

--oauth-client-secret TEXT

Valeur du secret du client fourni par le fournisseur d’identité pour l’intégration dans Snowflake.

--oauth-authorization-url TEXT

Point de terminaison du fournisseur d’identité fournissant le code d’autorisation au pilote.

--oauth-token-request-url TEXT

Point de terminaison du fournisseur d’identité fournissant les jetons d’accès au pilote.

--oauth-redirect-uri TEXT

URI à utiliser pour la redirection du code d’autorisation.

--oauth-scope TEXT

Champ d’application demandé dans la requête d’autorisation du fournisseur d’identité.

--oauth-disable-pkce

Désactive la clé de preuve pour l’échange de code (PKCE). Par défaut : False.

--oauth-enable-refresh-tokens

Permet une réauthentification silencieuse lorsque le jeton d’accès actuel n’est plus valable. Par défaut : False.

--oauth-enable-single-use-refresh-tokens

Indique s’il faut choisir une sémantique de jeton d’actualisation à usage unique. Par défaut : False.

--client-store-temporary-credential

Enregistrez les identifiants de connexion temporaires.

--format [TABLE|JSON]

Spécifie le format de sortie. Par défaut : TABLE.

--verbose, -v

Affiche les entrées de journal pour les niveaux de journalisation info et supérieurs. Par défaut : false.

--debug

Affiche les entrées de journal pour les niveaux de journalisation debug et supérieurs ; les journaux de débogage contiennent des informations supplémentaires. Par défaut : false.

--silent

Désactive la sortie intermédiaire vers la console. Par défaut : false.

--enhanced-exit-codes

Différenciez les codes d’erreur de sortie en fonction du type d’erreur. Par défaut : false.

--help

Affiche le texte d’aide de cette commande.

Notes sur l’utilisation

Pour éviter d’affecter les fichiers dans la zone de préparation source de l’application, cette commande utilise scratch_stage de l’entité paquet d'application permettant de créer une zone de préparation vierge, de télécharger des fichiers de projet vers cette zone de préparation, d’exécuter la validation et de supprimer la zone de préparation.

La validation renvoie les erreurs et les avertissements séparément. Les erreurs entraînent la sortie de la commande avec un code de sortie de 1, mais pas les avertissements.

Exemples

  • L’exemple suivant montre la sortie d’une validation réussie :

    snow app validate
    
    Copy
    Validating Snowflake Native App setup script.
      Checking if stage st_version_pkg_<user>.app_src.stage_snowflake_cli_scratch exists, or creating a new one if none exists.
      Performing a diff between the Snowflake stage and your local deploy_root ('<APP_PATH>/apps/st-version/output/deploy') directory.
      There are no new files that exist only on the stage.
    There are no existing files that have been modified, or their status is unknown.
    There are no existing files that are identical to the ones on the stage.
    New files only on your local:
    README.md
    manifest.yml
    setup_script.sql
    streamlit/environment.yml
    streamlit/ui.py
      Uploading diff-ed files from your local <APP_PATH>/apps/st-version/output/deploy directory to the Snowflake stage.
      Dropping stage st_version_pkg_<user>.app_src.stage_snowflake_cli_scratch.
    Snowflake Native App validation succeeded.
    
  • L’exemple suivant montre la sortie d’une validation réussie, en utilisant le format de sortie JSON :

    snow app validate --format json
    
    Copy
    {
        "errors": [],
        "warnings": [],
        "status": "SUCCESS"
    }
    
  • L’exemple suivant montre la sortie lorsque la validation rencontre des erreurs et des avertissements, en utilisant le format de sortie JSON :

    snow app validate --format json
    
    Copy
    {
        "errors": [
            {
                "message": "Error in file '@STAGE_SNOWFLAKE_CLI_SCRATCH/empty.sql': Empty SQL statement.",
                "cause": "Empty SQL statement.",
                "errorCode": "000900",
                "fileName": "@STAGE_SNOWFLAKE_CLI_SCRATCH/empty.sql",
                "line": -1,
                "column": -1
            },
            {
                "message": "Error in file '@STAGE_SNOWFLAKE_CLI_SCRATCH/second.sql': Unsupported feature 'CREATE VERSIONED SCHEMA without OR ALTER'.",
                "cause": "Unsupported feature 'CREATE VERSIONED SCHEMA without OR ALTER'.",
                "errorCode": "000002",
                "fileName": "@STAGE_SNOWFLAKE_CLI_SCRATCH/second.sql",
                "line": -1,
                "column": -1
            },
            {
                "message": "Error in file '@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql': File '/does-not-exist.sql' cannot be found in the same stage as the setup script is located.",
                "cause": "File '/does-not-exist.sql' cannot be found in the same stage as the setup script is located.",
                "errorCode": "093159",
                "fileName": "@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql",
                "line": -1,
                "column": -1
            }
        ],
        "warnings": [
            {
                "message": "Warning in file '@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql' on line 11 at position 35: APPLICATION ROLE should be created with IF NOT EXISTS.",
                "cause": "APPLICATION ROLE should be created with IF NOT EXISTS.",
                "errorCode": "093352",
                "fileName": "@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql",
                "line": 11,
                "column": 35
            },
            {
                "message": "Warning in file '@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql' on line 15 at position 13: CREATE Table statement in the setup script should have \"IF NOT EXISTS\", \"OR REPLACE\", or \"OR ALTER\".",
                "cause": "CREATE Table statement in the setup script should have \"IF NOT EXISTS\", \"OR REPLACE\", or \"OR ALTER\".",
                "errorCode": "093351",
                "fileName": "@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql",
                "line": 15,
                "column": 13
            },
            {
                "message": "Warning in file '@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql' on line 15 at position 13: Table identifier 'MY_TABLE' should include its parent schema name.",
                "cause": "Table identifier 'MY_TABLE' should include its parent schema name.",
                "errorCode": "093353",
                "fileName": "@STAGE_SNOWFLAKE_CLI_SCRATCH/setup_script.sql",
                "line": 15,
                "column": 13
            }
        ],
        "status": "FAIL"
    }