
CLI component of purpleteam
npm install -g purpleteam
Clonez ce dépôt.
Copiez le fichier config/config.example.json vers config/config.local.json ou config/config.cloud.json selon l'environnement que vous prévoyez d'utiliser.
Utilisez le fichier config/config.js pour la documentation et d'autres exemples.
loggers.testerProgress.dirname Configurez cette valeur.
purpleteamApi Si vous prévoyez d'utiliser l'environnement local, vous pouvez conserver les valeurs de propriété par défaut. Si vous prévoyez d'utiliser l'environnement cloud, ces informations vous seront fournies lorsque vous créerez un compte purpleteam.
testerFeedbackComms.medium Le Long Polling (lp) est pris en charge dans les environnements local et cloud. Les événements envoyés par le serveur (sse) ne sont pris en charge que dans l'environnement local en raison des limitations d'AWS. lp et sse sont tous deux en temps réel. Les deux implémentations ont leurs avantages et inconvénients.
L'utilisation de sse est une communication unidirectionnelle après l'abonnement initial de la CLI à l'orchestrateur. Redis pub/sub est utilisé entre les testeurs et l'orchestrateur pour publier les commentaires des testeurs. Si la CLI est arrêtée (non abonnée) à un moment quelconque pendant que le backend exécute un test, les événements seront perdus.
L'utilisation de lp est une communication requête-réponse. Une requête est effectuée et n'est répondue que lorsque des messages de commentaires de testeurs sont disponibles, ou lorsque le délai d'attente spécifique à l'application (plutôt que celui de l'AWS Api Gateway) est dépassé. Dès que la CLI reçoit un ensemble (un à plusieurs) de messages de commentaires de testeurs, elle effectue une autre requête à l'orchestrateur (si elle fonctionne dans l'environnement local) ou à l'API (si elle fonctionne dans l'environnement cloud). Redis pub/sub est utilisé entre les testeurs et l'orchestrateur pour publier les commentaires des testeurs.
Tant que la première requête de la CLI pour les commentaires des testeurs est effectuée immédiatement après le début des tests, les messages de commentaires des testeurs seront persistés en mémoire dans les listes Redis. Cela signifie que si la CLI est arrêtée momentanément pendant une exécution de test, lorsqu'elle redémarrera, elle recevra les messages de commentaires des testeurs qui sont arrivés à l'orchestrateur pendant que la CLI ne fonctionnait pas... à condition que l'orchestrateur continue de fonctionner.
Informations complémentaires : Cela pourrait changer à l'avenir, WebSockets est également une option que nous pourrions implémenter, mais implémenter WebSockets signifierait que nous devrions modifier toute notre approche d'authentification. Notre infrastructure cloud choisie, AWS Api Gateway, ne prend pas en charge le streaming et ne prend pas en charge le flux OAuth Client Credentials avec Cognito User Pools.
purpleteamAuth Si vous prévoyez d'utiliser l'environnement local, vous pouvez conserver les valeurs de propriété par défaut. Si vous prévoyez d'utiliser l'environnement cloud, ces informations vous seront fournies lorsque vous créerez un compte purpleteam.
buildUserConfig.fileUri Configurez cette valeur si vous ne souhaitez pas la passer manuellement comme argument à la CLI. Il s'agit du fichier Job que vous avez configuré pour spécifier les détails de votre système sous test (SUT).
outcomes.dir Configurez cette valeur. Il s'agit d'un répertoire de votre choix dans lequel les fichiers de résultats de l'orchestrateur (si exécuté dans l'environnement local) ou de l'API (si exécuté dans l'environnement cloud) seront persistés.