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
Autres options
Options de connexion requises¶
accountVotre 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" });
En outre, vous devez spécifier les options d’authentification au serveur.
Options d’authentification¶
applicationSpécifie le nom de l’application client qui se connecte à Snowflake.
authenticatorSpé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
SNOWFLAKEUtilisez l’authentificateur interne Snowflake. Vous devez également définir l’option
password.EXTERNALBROWSERUtilisez 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.comOAUTHUtilisez OAuth pour l’authentification. Vous devez également définir l’option
tokensur le jeton OAuth (voir ci-dessous).SNOWFLAKE_JWTUtilisez 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_MFAUtilisez l’authentification multifactorielle (MFA). Voir Utiliser un code d’accès de MFA.
OAUTH_AUTHORIZATION_CODEAuthentifiez-vous manuellement à l’aide d’un code d’autorisation OAuth avec votre navigateur web et un fournisseur d’identité choisi (y compris Snowflake en tant qu’IdP). Pour plus d’informations, voir Utiliser le flux du code d’autorisation OAuth 2.0.
OAUTH_CLIENT_CREDENTIALSAuthentifiez-vous automatiquement à l’aide des identifiants client OAuth avec le fournisseur d’identité que vous avez choisi (Snowflake en tant qu’IdP ne prend pas en charge le flux d’identifiants clients). Pour plus d’informations, voir Utiliser le flux d’identifiants de connexion client OAuth 2.0.
PROGRAMMATIC_ACCESS_TOKENS’authentifier à l’aide d’un jeton d’accès programmatique (PAT). Il lit le jeton depuis les options
tokenoupassword. Pour plus d’informations, voir Utilisation de jetons d’accès programmatique pour l’authentification.WORKLOAD_IDENTITYS’authentifier avec l’authentificateur de fédération d’identité de charge de travail (WIF).
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.
usernameLe 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
authenticatorsurSNOWFLAKE,SNOWFLAKE_JWTou le point de terminaison de l’URL Okta de votre compte Okta (par ex.https://<okta_account_name>.okta.com). Si vous ne définissez pas l’optionauthenticator, vous devez définir cette valeur.passwordMot de passe de l’utilisateur. Définissez cette option si vous définissez l’option
authenticatorsurSNOWFLAKEou le point de terminaison de l” URL Okta pour votre compte Okta (par ex.https://<okta_account_name>.okta.com) ou si vous avez laissé l’optionauthenticatornon définie.Si vous définissez l’option
authenticatorsurPROGRAMMATIC_ACCESS_TOKEN, vous pouvez transmettre le jeton d’accès programmatique dans cette option.
tokenSpécifie le jeton OAuth à utiliser pour l’authentification ou le jeton d’accès programmatique. Définissez cette option si vous avez défini l’option
authenticatorsurOAUTHouPROGRAMMATIC_ACCESS_TOKEN.privateKeySpé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.
privateKeyPathSpé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.privateKeyPassSpé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.
oauthClientIdValeur de l”
ID client:codenowrap: fournie par le fournisseur d’identité pour l’intégration Snowflake (métadonnées d’intégration de sécurité Snowflake).oauthClientSecretValeur du
secret client:codenowrap: fournie par le fournisseur d’identité pour l’intégration Snowflake (métadonnées d’intégration de sécurité Snowflake).oauthAuthorizationUrlPoint de terminaison du fournisseur d’identité fournissant le code d’autorisation au pilote. Lorsque Snowflake est utilisé comme fournisseur d’identité, cette valeur est dérivée des paramètres
serverouaccount.oauthTokenRequestUrlPoint de terminaison du fournisseur d’identité fournissant les jetons d’accès au pilote. Lorsque vous utilisez Snowflake comme fournisseur d’identité, cette valeur est dérivée des paramètres
serverouaccount.oauthScopeChamp d’application demandé dans la requête d’autorisation du fournisseur d’identité. Par défaut, il est dérivé du rôle. Lorsque plusieurs champs d’application sont exigés, la valeur doit être une liste de champs d’application multiples séparés par des espaces.
oauthRedirectUriURI à utiliser pour la redirection du code d’autorisation (métadonnées d’intégration de sécurité Snowflake). Par défaut :
http://127.0.0.1 :{randomAvailablePort}.workloadIdentityProvider- Description:
Plateforme du fournisseur d’identité de la charge de travail. Les valeurs possibles incluent :
AWS,AZURE,GCPetOIDC.
passcodeSpécifie le
passcodefourni 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.passcodeInPasswordSpécifie si le
passcodeMFA est intégré dans le mot de passe de connexion. Sitrue, le code d’accès MFA est ajouté à la fin depassword. Par défaut :false. Pour plus de détails, voir Utiliser un code d’accès de MFA.
Options de connexion supplémentaires¶
accessUrlSpécifie un point de terminaison entièrement qualifié pour se connecter à Snowflake. L”
accessUrlcomprend 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’optionaccountn’est pas utilisée.browserActionTimeoutSpé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).
openExternalBrowserCallbackOuvre une fenêtre du navigateur pour l’authentification SSO. Par défaut, le pilote utilise le paquet npm
open. Par exemple :var connection = snowflake.createConnection({ ..., openExternalBrowserCallback: () => { // your custom code to open browser window instead of our default implementation } });
clientConfigFileChemin d’accès au fichier de configuration du client associé à la fonction jounalisation facile.
clientRequestMFATokenDé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.clientStoreTemporaryCredentialDé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.clientSessionKeepAlivePar 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
clientSessionKeepAliveest définie surtrue, 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
clientSessionKeepAliveest 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.
credentialCacheDirDé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
$HOMEde l’utilisateur.databaseLa base de données par défaut à utiliser pour la session après la connexion.
disableSamlUrlCheckIndique s’il faut désactiver le contrôle de validation d’une réponse SAML. Par défaut :
false.hostAdresse de l’hôte à laquelle le pilote doit se connecter.
keepAliveSpé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.noProxySpécifie les listes des hôtes auxquels le pilote doit se connecter directement, sans passer par le serveur proxy (par ex.
*.amazonaws.compour 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|*.example.com"proxyHostSpécifie le nom d’hôte d’un serveur proxy authentifié.
proxyPasswordIndique le mot de passe de l’utilisateur spécifié par
proxyUser.proxyPortSpécifie le port d’un serveur proxy authentifié.
proxyProtocolSpécifie le protocole utilisé pour se connecter au serveur proxy authentifié. Utilisez cette propriété pour spécifier le protocole HTTP :
httpouhttps.proxyUserSpécifie le nom d’utilisateur utilisé pour se connecter à un serveur proxy authentifié.
queryTagLa QUERY_TAG facultative à utiliser pour la connexion, pour les instructions de balisage.
roleLe rôle de sécurité par défaut à utiliser pour la session après la connexion.
schemaLe schéma par défaut à utiliser pour la session après la connexion.
timeoutNombre de millisecondes pour maintenir la connexion en vie sans réponse. Valeur par défaut : 60 000 (1 minute).
warehouseL’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¶
arrayBindingThresholdDéfinit le nombre maximum de liens que le pilote utilise dans une opération d’insertion en masse. La valeur par défaut est 65280.
cwdLe répertoire de travail actuel à utiliser pour les opérations GET et PUt lorsqu’il diffère du répertoire du connecteur.
representNullAsStringNullSpécifie comment la méthode
fetchAsStringrenvoie 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 denull.
Par défaut :
true(activé)resultPrefetchNombre de threads à utiliser par les clients pour la préextraction de grands jeux de résultats. Valeurs valides : 1-10.
rowModeIndique 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>
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.
ignoreAttributesIndique 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 :
trueLorsqu’il est défini sur
false, le pilote renvoie la sortie comme suit. Remarquez que l’attributidest 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" } }
alwaysCreateTextNodeIndique s’il faut créer une propriété avec le nom de la balise et lui attribuer directement la valeur.
Par défaut :
falseLorsqu’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" ] } }
attributeNamePrefixChaî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" } }
attributesGroupNameRegroupe 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" } ] } }