Utiliser Watcher avec un proxy
Informations sur la manière d'envoyer des résultats au Hub Développeur axe via un proxy web
Les proxys HTTP permettent à une organisation d’auditer les données transitant par le réseau. Ils sont généralement configurés à l'aide de variables d'environnement. Ce document explique comment configurer le support du proxy dans Watcher (version 4.0.0 ou ultérieure).
Exigences
Pour utiliser le support de proxy, vous avez besoin d'un logiciel de proxy fonctionnant soit localement, soit sur les serveurs de votre organisation. Pour utiliser le proxy, vous avez besoin du point d'accès HTTPS et de son certificat (pour l'autoriser sur votre machine).
Lors de l'utilisation des serveurs hébergés par Deque, le HTTPS est le seul protocole pris en charge. Lors de l'auto-hébergement, vous pouvez utiliser HTTP, et vous aurez aussi besoin du point d'accès HTTP du proxy. Il devrait être le même domaine et port que le HTTPS (443), mais vérifiez pour être certain.
Configuration
La configuration des proxys pour Watcher se fait entièrement via des variables d'environnement. Celles-ci sont divisées en deux groupes.
Les variables d'environnement de proxy « standard » :
HTTPS_PROXY- Le point d'accès utilisé pour le protocole HTTPS à travers lequel communiquerHTTP_PROXY- Le point d'accès utilisé pour le protocole HTTP à travers lequel communiquerNO_PROXY- Une liste de noms d'hôtes séparés par des virgules qui ne devraient pas passer par un proxy
Les variables d'environnement pour axe Watcher et Node.js :
AXE_WATCHER_USE_ENV_PROXY- Cible uniquement Watcher pour modifier le support du proxyAXE_USE_ENV_PROXY- Cible tout ce que axe supporte également cette variable pour utiliser un proxyNODE_USE_ENV_PROXY- La méthode native de Node.js (à partir de la version 24 ou ultérieure uniquement) pour opter toutes les requêtes réseau à l'utilisation d'un proxyNODE_EXTRA_CA_CERTS- La variable native de Node.js pour fournir des certificats CA de confiance pour les connexions HTTPS
Lorsque l'une des variables AXE_* est définie sur 1, l'utilisation du proxy est activée. NODE_USE_ENV_PROXY a été introduite dans la version 24 de Node.js pour activer cela globalement pour le processus, et elle a été rétroportée à Watcher pour le prendre en charge sur toutes les versions.
Pour activer le proxy pour Node.js mais le désactiver pour Watcher, l'une des variables AXE_* peut être définie sur 0.
Seuls 1 et 0 sont reconnus. Toute valeur en dehors de celles-ci désactivera par défaut le support du proxy.
Pour le HTTPS, le certificat de l'autorité de certification fourni par votre proxy devrait être spécifié avec NODE_EXTRA_CA_CERTS, afin qu'il ne rejette pas la connexion comme non fiable. Cette valeur est un chemin vers le fichier de certificat.
Exemples d'utilisation
Il existe deux manières principales de configurer les variables d'environnement :
- Les configurer pour la machine ou le travail CI effectuant le traitement. Cela les rend globalement disponibles pendant toute la durée de vie de la machine ou du travail.
- Les fournir avant une commande dans le terminal afin qu'elles n'existent que pendant la durée de vie de ce processus.
Un exemple de configuration des variables d'environnement de proxy dans un fichier de workflow GitHub Action :
# Setup of the workflow and jobs
- steps:
- name: Run Tests
env:
HTTPS_PROXY: https://localhost:9090
NODE_EXTRA_CA_CERTS: ~/path/to/ca.pem
AXE_WATCHER_USE_ENV_PROXY: 1
run: npm run testVoici un exemple d'utilisation des variables d'environnement de proxy localement pour exécuter une seule commande :
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testProxy conditionnel sur Node.js version 24 ou ultérieure
Dans la version 24 de Node.js (ou ultérieure), NODE_USE_ENV_PROXY est activé par défaut pour toutes les requêtes, vous pouvez donc vouloir désactiver conditionnellement le proxy pour Watcher dans les scénarios de test.
Cela peut être réalisé en utilisant NO_PROXY pour indiquer au système d'autoriser le domaine à contourner le proxy. L'exemple suivant permet d'utiliser le proxy pour toutes les requêtes initiées par Node.js mais ne pas l'utiliser pour celles ciblant axe.deque.com ou example.com :
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testLa raison d'utiliser NO_PROXY est que même si vous essayez de désactiver l'utilisation du proxy par axe Watcher, il hérite du répartiteur de requêtes global, ce qui signifie que si NODE_USE_ENV_PROXY est activé, il prendrait toujours la priorité et utiliserait le proxy.
