Watcher mit einem Proxy verwenden
Informationen darüber, wie man Ergebnisse über einen Web-Proxy an das axe Developer Hub sendet
HTTP-Proxies ermöglichen es einer Organisation, die Daten zu überprüfen, die das Netzwerk durchlaufen. Sie werden normalerweise über Umgebungsvariablen eingerichtet. Dieses Dokument beschreibt, wie man die Proxyunterstützung in Watcher (Version 4.0.0 oder höher) einrichtet.
Anforderungen
Um die Proxyunterstützung zu nutzen, benötigen Sie Proxysoftware, die entweder lokal oder auf den Servern Ihrer Organisation läuft. Um den Proxy zu nutzen, benötigen Sie den HTTPS-Endpunkt und dessen Zertifikat (um ihn auf Ihrem Computer autorisieren zu können).
Bei der Verwendung der von Deque gehosteten Server wird nur das HTTPS-Protokoll unterstützt. Beim Selber-Hosting können Sie HTTP verwenden, und Sie benötigen auch den HTTP-Endpunkt des Proxys. Es sollten sollte die gleiche Domain und der gleiche Port wie HTTPS (443) sein, aber überprüfen Sie es, um sicherzugehen.
Konfiguration
Die Konfiguration von Proxys für Watcher erfolgt vollständig über Umgebungsvariablen. Diese werden in zwei Gruppen unterteilt.
Die „standardmäßigen“ Proxy-Umgebungsvariablen:
HTTPS_PROXY- Der Endpunkt, der für das HTTPS-Protokoll verwendet wirdHTTP_PROXY- Der Endpunkt, der für das HTTP-Protokoll verwendet wirdNO_PROXY- Eine kommagetrennte Liste von Hostnamen, die nicht über einen Proxy geleitet werden sollen
Die axe Watcher und Node.js Umgebungsvariablen:
AXE_WATCHER_USE_ENV_PROXY- Nur Watcher anvisieren, um die Proxyunterstützung zu ändernAXE_USE_ENV_PROXY- Alles von axe anvisieren, das diese Variable ebenfalls unterstützt, um einen Proxy zu nutzenNODE_USE_ENV_PROXY- Node.js's native Art (ab Version 24 oder höher), alle Netzwerk-Anfragen zur Verwendung eines Proxys zu verpflichtenNODE_EXTRA_CA_CERTS- Node.js's native Variable, um vertrauenswürdige CA-Zertifikate für HTTPS-Verbindungen bereitzustellen
Wenn eine der AXE_* Variablen auf 1 gesetzt ist, ist die Proxyverwendung aktiviert. NODE_USE_ENV_PROXY wurde in Node.js Version 24 eingeführt, um dies global für den Prozess zu aktivieren, und es wurde auf Watcher zurückportiert, um es in allen Versionen zu unterstützen.
Um den Proxy für Node.js zu aktivieren, ihn aber für Watcher zu deaktivieren, kann eine der AXE_* Variablen auf 0 gesetzt werden.
Nur 1 und 0 werden erkannt. Jeder Wert außerhalb dieser führt dazu, dass die Proxyunterstützung deaktiviert wird.
Für HTTPS sollte das von Ihrem Proxy bereitgestellte Zertifikat der Zertifizierungsstelle mit NODE_EXTRA_CA_CERTS angegeben werden, damit die Verbindung nicht als nicht vertrauenswürdig abgelehnt wird. Dieser Wert ist der Pfad zur Zertifikatsdatei.
Verwendungsbeispiele
Es gibt zwei Hauptmethoden zur Einrichtung von Umgebungsvariablen:
- Richten Sie sie für den Computer oder den CI-Job ein, der die Verarbeitung durchführt. Dadurch werden sie global während der gesamten Lebensdauer des Computers oder Jobs verfügbar.
- Stellen Sie sie vor einem Befehl im Terminal bereit, sodass sie nur für die Lebensdauer dieses Prozesses existieren.
Ein Beispiel für das Einrichten von Proxy-Umgebungsvariablen in einer GitHub Action Workflow-Datei:
# 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 testHier ist ein Beispiel für die lokale Verwendung von Proxy-Umgebungsvariablen für einen einzelnen Befehl:
AXE_WATCHER_USE_ENV_PROXY=1 HTTPS_PROXY=https://localhost:9090 NODE_EXTRA_CA_CERTS=~/path/to/ca.pem npm run testBedingtes Proxying in Node.js Version 24 oder höher
In Node.js Version 24 (oder höher) ist NODE_USE_ENV_PROXY standardmäßig für alle Anfragen aktiviert, sodass Sie den Proxy möglicherweise in Testszenarien bedingt für Watcher deaktivieren möchten.
Dies kann erreicht werden, indem Sie NO_PROXY verwenden, um das System anzuweisen, der Domain zu erlauben, das Proxying zu umgehen. Das folgende Beispiel erlaubt die Verwendung des Proxys für alle Anfragen, die Node.js initiiert, aber nicht für solche, die auf axe.deque.com oder example.com abzielen:
NODE_USE_ENV_PROXY=1 HTTPS_PROXY=https://our.intranet/proxy NO_PROXY=axe.deque.com,example.com npm run testDer Grund für die Verwendung von NO_PROXY ist, dass sogar wenn Sie versuchen, die Proxynutzung von axe Watcher zu deaktivieren, er den globalen Anfrage-Dispatcher erbt. Das bedeutet, wenn NODE_USE_ENV_PROXY aktiviert ist, dass er trotzdem Vorrang hat und den Proxy verwendet.
