Référence des options Node.js

Lors de la construction d’un nouvel objet Connection vous transmettez un objet JavaScript qui spécifie les options de la connexion (par exemple votre identificateur de compte, votre nom d’utilisateur, etc.). Les sections suivantes décrivent les options que vous pouvez définir. Pour définir une option, spécifiez le nom de l’option comme nom de propriété dans l’objet JavaScript.

Options de connexion requises

account

Votre identificateur de compte.

region (Obsolète)

Spécifie l’ID de la région où se trouve votre compte.

Note

Cette option est obsolète et n’est incluse ici que pour des raisons de rétrocompatibilité. Snowflake recommande de passer à l’intégration de la région dans l’identificateur du compte, comme décrit dans Utilisation d’un localisateur de compte comme identificateur, de la manière suivante.

var connection = snowflake.createConnection({
  account: "myaccount.us-east-2",
  username: "myusername",
  password: "mypassword"
});
Copy

En outre, vous devez spécifier les options d’authentification au serveur.

Options d’authentification

application

Spécifie le nom de l’application client qui se connecte à Snowflake.

authenticator

Spécifie l’authentificateur à utiliser pour vérifier les identifiants de connexion utilisateur. Vous pouvez définir cette option sur l’une des valeurs suivantes :

Valeur

Description

SNOWFLAKE

Utilisez l’authentificateur interne Snowflake. Vous devez également définir l’option password.

EXTERNALBROWSER

Utilisez votre navigateur Web pour vous authentifier avec Okta, des ADFS ou tout autre fournisseur d’identification conforme à SAML 2.0 (IdP) qui a été défini pour votre compte.

https://<nom_compte_okta>.okta.com

Utilisez le SSO natif via Okta.

OAUTH

Utilisez OAuth pour l’authentification. Vous devez également définir l’option token sur le jeton OAuth (voir ci-dessous).

SNOWFLAKE_JWT

Utilisez l’authentification par paire de clés. Voir Utiliser l’authentification par paire de clés et la rotation de paires de clés.

USERNAME_PASSWORD_MFA

Utilisez l’authentification multifactorielle (MFA). Voir Utiliser un code d’accès de MFA.

La valeur par défaut est SNOWFLAKE.

Pour plus d’informations sur l’authentification, voir Gestion/Utilisation de l’authentification fédérée et Clients, pilotes et connecteurs.

username

Le nom de connexion de votre utilisateur Snowflake ou de votre fournisseur d’identité (par exemple, votre nom de connexion pour Okta). Définissez cette option si vous définissez l’option authenticator sur SNOWFLAKE, SNOWFLAKE_JWT ou le point de terminaison de l’URL Okta de votre compte Okta (par ex. https://<nom_compte_okta>.okta.com). Si vous ne définissez pas l’option authenticator, vous devez définir cette valeur.

password

Mot de passe de l’utilisateur. Définissez cette option si vous définissez l’option authenticator sur SNOWFLAKE ou le point de terminaison de l” URL Okta pour votre compte Okta (par ex. https://<nom_compte_okta>.okta.com) ou si vous avez laissé l’option authenticator non définie.

token

Spécifie le jeton OAuth à utiliser pour l’authentification. Définissez cette option si vous avez défini l’option authenticator sur OAUTH.

privateKey

Spécifie la clé privée (au format PEM) pour l’authentification par paire de clés. Pour plus de détails, voir Utiliser l’authentification par paire de clés et la rotation de paires de clés.

privateKeyPath

Spécifie le chemin local au fichier de clé privée (par exemple, rsa_key.p8). Pour plus de détails, voir Utiliser l’authentification par paire de clés et la rotation de paires de clés.

privateKeyPass

Spécifie le code d’accès pour déchiffrer le fichier de la clé privée, si le fichier est chiffré. Pour plus de détails, voir Utiliser l’authentification par paire de clés et la rotation de paires de clés.

passcode

Spécifie le passcode fourni par Duo lorsque vous utilisez l’authentification multifactorielle (MFA) pour vous connecter. Pour plus de détails, voir Utiliser un code d’accès de MFA.

passcodeInPassword

Spécifie si le passcode MFA est intégré dans le mot de passe de connexion. Si true, le code d’accès MFA est ajouté à la fin de password. Par défaut : false. Pour plus de détails, voir Utiliser un code d’accès de MFA.

Options de connexion supplémentaires

accessUrl

Spécifie un point de terminaison entièrement qualifié pour se connecter à Snowflake. L” accessUrl comprend le schéma complet et l’hôte, ainsi qu’un numéro de port facultatif, similaire à https://myaccount.us-east-1.snowflakecomputing.com.

Note

Lors de l’utilisation de l’option accessUrl, la valeur spécifiée dans l’option account n’est pas utilisée.

browserActionTimeout

Spécifie le délai d’attente, en millisecondes, pour les activités du navigateur liées à l’authentification SSO. La valeur par défaut est de 120 000 (millisecondes).

clientConfigFile

Chemin d’accès au fichier de configuration du client associé à la fonction jounalisation facile.

clientRequestMFAToken

Définit si le pilote utilise le jeton MFA dans le stockage d’identifiants de connexion local pour l’authentification au lieu de demander un nouveau jeton au serveur. Par défaut : false.

clientStoreTemporaryCredential

Définit si le pilote utilise le jeton SSO dans le stockage d’identifiants de connexion local pour l’authentification au lieu de demander un nouveau jeton au serveur. Par défaut : false.

clientSessionKeepAlive

Par défaut, les connexions client expirent généralement environ 3 à 4 heures après l’exécution de la requête la plus récente.

Si l’option clientSessionKeepAlive est définie sur true, la connexion du client au serveur sera maintenue indéfiniment, même si aucune requête n’est exécutée.

Le paramètre par défaut de cette option est false.

Si vous définissez cette option sur true, assurez-vous que votre programme se déconnecte explicitement du serveur à la fin du programme. Ne quittez pas sans vous déconnecter.

clientSessionKeepAliveHeartbeatFrequency

(Cette option ne s’applique que lorsque clientSessionKeepAlive est true)

Définit la fréquence (l’intervalle en secondes) entre les messages de pulsation.

Vous pouvez vaguement penser qu’un message de pulsation de connexion se substitue à une requête et redémarre le compte à rebours du délai d’attente pour la connexion. En d’autres termes, si la connexion expire après au moins 4 heures d’inactivité, la pulsation réinitialise le chronomètre afin que l’expiration ne se produise pas au moins 4 heures après la dernière pulsation (ou requête).

La valeur par défaut est de 3 600 secondes (une heure). La plage de valeurs valide est 900 - 3600. Comme les expirations surviennent généralement après au moins 4 heures, une pulsation toutes les heures est normalement suffisante pour maintenir la connexion en vie. Des intervalles de pulsation inférieurs à 3 600 secondes sont rarement nécessaires ou utiles.

credentialCacheDir

Définit le répertoire dans lequel stocker le cache des identifiants de connexion lorsque la mise en cache des jetons est activée. Par défaut : le répertoire $HOME de l’utilisateur.

database

La base de données par défaut à utiliser pour la session après la connexion.

disableSamlUrlCheck

Indique s’il faut désactiver le contrôle de validation d’une réponse SAML. Par défaut : false.

host

Adresse de l’hôte à laquelle le pilote doit se connecter.

keepAlive

Spécifie si la fonctionnalité de maintien de la session doit être activée sur le socket immédiatement après la réception d’une nouvelle demande de connexion.

Par défaut, le protocole HTTP crée une nouvelle connexion TCP pour chaque requête. L’activation de ce paramètre permet au pilote de réutiliser les connexions pour plusieurs requêtes au lieu de créer de nouvelles connexions pour chaque requête.

La valeur par défaut est true.

noProxy

Spécifie les listes des hôtes auxquels le pilote doit se connecter directement, sans passer par le serveur proxy (par ex. *.amazonaws.com pour contourner l’accès à Amazon S3). Pour plusieurs hôtes, séparez les noms d’hôtes par un symbole de barre verticale (|). Vous pouvez également utiliser un astérisque comme caractère générique. Par exemple :

noProxy: "*.amazonaws.com|*.my_company.com"

proxyHost

Spécifie le nom d’hôte d’un serveur proxy authentifié.

proxyPassword

Indique le mot de passe de l’utilisateur spécifié par proxyUser.

proxyPort

Spécifie le port d’un serveur proxy authentifié.

proxyProtocol

Spécifie le protocole utilisé pour se connecter au serveur proxy authentifié. Utilisez cette propriété pour spécifier le protocole HTTP : http ou https.

proxyUser

Spécifie le nom d’utilisateur utilisé pour se connecter à un serveur proxy authentifié.

role

Le rôle de sécurité par défaut à utiliser pour la session après la connexion.

schema

Le schéma par défaut à utiliser pour la session après la connexion.

timeout

Nombre de millisecondes pour maintenir la connexion en vie sans réponse. Valeur par défaut : 60 000 (1 minute).

warehouse

L’entrepôt virtuel par défaut à utiliser pour la session après la connexion. Utilisé pour effectuer des requêtes, charger des données, etc.

Certaines options de connexion supposent que l’objet de base de données spécifié (base de données, schéma, entrepôt ou rôle) existe déjà dans le système. Si l’objet spécifié n’existe pas, un réglage par défaut n’est pas défini lors de la connexion.

Après la connexion, toutes les options de connexion optionnelles peuvent également être réglées ou remplacées par la commande USE <objet>.

Options de configuration

arrayBindingThreshold

Définit le nombre maximum de liens que le pilote utilise dans une opération d’insertion en masse. La valeur par défaut est de 100 000.

cwd

Le répertoire de travail actuel à utiliser pour les opérations GET et PUt lorsqu’il diffère du répertoire du connecteur.

representNullAsStringNull

Spécifie comment la méthode fetchAsString renvoie des valeurs nulles.

  • true (activé) : renvoie les valeurs nulles sous la forme de la chaîne « NULL ».

  • false (désactivé) : renvoie les valeurs nulles sous forme de null.

Par défaut : true (activé)

resultPrefetch

Nombre de threads à utiliser par les clients pour la préextraction de grands jeux de résultats. Valeurs valides : 1-10.

rowMode

Indique comment renvoyer les résultats qui contiennent des noms de colonnes dupliqués. Les valeurs incluent :

  • array : renvoie le jeu de résultats sous forme de tableau, y compris les noms de colonnes dupliqués.

  • object : renvoie le jeu de résultats sous forme d’objet, en omettant les noms de colonnes dupliqués.

  • object_with_renamed_duplicated_columns : renvoie le jeu de résultats sous forme d’objet, tout en ajoutant des suffixes aux noms dupliqués pour les rendre uniques.

La valeur par défaut est object.

Options xmlParserConfig

À partir de la version 1.7.0 du pilote, vous pouvez utiliser les options de configuration de la bibliothèque fast-xml-parser suivantes pour personnaliser la façon dont le pilote traite les attributs du document XML lors de l’interrogation de colonnes avec du contenu XML.

Vous pouvez télécharger fast-xml-parser.

Par défaut, le pilote Node.js ignore les attributs des éléments XML lorsqu’il renvoie des données XML à partir d’une requête. Par exemple, dans le contenu XML suivant, l’élément <animal> comprend un attribut id :

<exhibit name="Polar Bear Plunge">
  <animal id="000001">
    <scientificName>Ursus maritimus</scientificName>
    <englishName>Polar Bear</englishName>
    <name>Kalluk</name>
  </animal>
  <animal id="000002">
    <scientificName>Ursus maritimus</scientificName>
    <englishName>Polar Bear</englishName>
    <name>Chinook</name>
  </animal>
</exhibit>
Copy

Par défaut, lorsque le pilote Node.js renvoie le jeu de résultats, il ignore l’attribut id et renvoie la sortie suivante. Vous remarquerez que les noms et les valeurs des attributs ne sont pas inclus.

{
  exhibit: {
    animal: [
      {
        "scientificName": "Ursus maritimus",
        "englishName": "Polar Bear",
        "name": "Kalluk",
      },
      {
        "scientificName": "Ursus maritimus",
        "englishName": "Polar Bear",
        "name": "Chinook"
      }
    ]
  }
}

Pour obtenir des informations sur la définition de ces options, reportez-vous à Analyse de données XML.

Pour illustrer la façon dont les options suivantes affectent la façon dont le pilote affecte l’analyse des données XML, la description de chaque option montre comment elle affecte cet exemple.

ignoreAttributes

Indique si les attributs XML doivent être ignorés lors de l’analyse. Si vous souhaitez utiliser les autres options de l’analyseur, vous devez définir ignoreAttributes: false.

Par défaut : true

Lorsqu’il est défini sur false, le pilote renvoie la sortie comme suit. Remarquez que l’attribut id est maintenant inclus dans la sortie (par défaut, le pilote préfixe les noms d’attributs par @_) :

{
    exhibit: {
      animal: [
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Kalluk",
          "@_id": "000001"
        },
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Chinook",
          "@_id": "000002"
        }
      ],
      "@_name": "Polar Bear Plunge"
    }
}
alwaysCreateTextNode

Indique s’il faut créer une propriété avec le nom de la balise et lui attribuer directement la valeur.

Par défaut : false

Lorsqu’il est défini sur true, le pilote renvoie la sortie comme suit :

{
  exhibit: {
    animal: [
      {
        "scientificName": {
          "#text": "Ursus maritimus"
        },
        "englishName": {
          "#text": "Polar Bear"
        },
        "name": {
          "#text": "Kalluk"
        },
        "@_id": "000001"
      },
      {
        "scientificName": {
          "#text": "Ursus maritimus"
        },
        "englishName": {
          "#text": "Polar Bear"
        },
        "name": {
          "#text": "Chinook"
        },
        "@_id": "000002"
      }
      "@_name": "Polar Bear Plunge"
    ]
  }
}
attributeNamePrefix

Chaîne à ajouter aux noms d’attributs.

Valeur par défaut : « @_ »

Lorsqu’il est défini sur "" pour spécifier l’absence de préfixe pour les noms d’attributs, le pilote renvoie la sortie comme suit :

{
    exhibit: {
      animal: [
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Kalluk",
          "id": "000001"
        },
        {
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Chinook",
          "id": "000002"
        }
      ],
      "name": "Polar Bear Plunge"
    }
}
attributesGroupName

Regroupe tous les attributs d’une balise sous un nom de propriété spécifié.

Valeur par défaut : non définie

Lorsqu’il est défini sur @@ pour regrouper tous les attributs d’une balise dans un élément nommé @@, , le pilote renvoie la sortie suivante :

{
    exhibit: {
      "@@": {
        "@_name": "Polar Bear Plunge"
      }
      animal: [
        {
          "@@": {
            "@_id": "000001"
          },
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Kalluk"
        },
        {
          "@@": {
            "@_id": "000002"
          },
          "scientificName": "Ursus maritimus",
          "englishName": "Polar Bear",
          "name": "Chinook"
        }
      ]
    }
}