
Componente CLI de purpleteam
npm install -g purpleteam
Clona este repositorio.
Copia el archivo config/config.example.json a config/config.local.json o config/config.cloud.json según el entorno que planees usar.
Usa el archivo config/config.js para documentación y más ejemplos.
loggers.testerProgress.dirname Configura este valor.
purpleteamApi Si planeas usar el entorno local, puedes mantener los valores de propiedad predeterminados. Si planeas usar el entorno cloud, recibirás esta información cuando te registres en una cuenta de purpleteam.
testerFeedbackComms.medium Long Polling (lp) es compatible tanto en entornos local como cloud. Server Sent Events (sse) solo es compatible en el entorno local debido a limitaciones de AWS. Tanto lp como sse son en tiempo real. Ambas implementaciones tienen sus pros y contras.
Usar sse es comunicación unidireccional después de la suscripción inicial desde la CLI al orquestador. Se usa Redis pub/sub entre los testers y el orquestador para publicar comentarios de los testers. Si la CLI se detiene (no está suscrita) en cualquier momento mientras el backend está en una ejecución de prueba, los eventos se perderán.
Usar lp es comunicación de solicitud-respuesta. Se realiza una solicitud y solo se responde cuando hay mensajes de comentarios de los testers disponibles, o se supera el tiempo de espera específico de la aplicación (en lugar del de AWS Api Gateway). Tan pronto como la CLI recibe un conjunto (uno a muchos) de mensajes de comentarios de los testers, realiza otra solicitud al orquestador (si se ejecuta en el entorno local) o a la API (si se ejecuta en el entorno cloud). Se usa Redis pub/sub entre los testers y el orquestador para publicar comentarios de los testers.
Siempre que la solicitud inicial de la CLI para comentarios de los testers se realice inmediatamente después de que las pruebas hayan comenzado, los mensajes de comentarios de los testers se conservarán en la memoria en listas de Redis. Esto significa que si la CLI se detiene momentáneamente durante una ejecución de prueba, cuando se reinicie recibirá los mensajes de comentarios de los testers que llegaron al orquestador cuando la CLI no estaba en ejecución... siempre que el orquestador continúe ejecutándose.
Información adicional: Esto puede cambiar en el futuro, WebSockets también es una opción que podríamos implementar en el futuro, pero implementar WebSockets significaría que tendríamos que cambiar todo nuestro enfoque de autenticación. Nuestra infraestructura en la nube elegida, AWS Api Gateway, no admite streaming ni el flujo de Credenciales de Cliente OAuth con Grupos de Usuarios de Cognito.
purpleteamAuth Si planeas usar el entorno local, puedes mantener los valores de propiedad predeterminados. Si planeas usar el entorno cloud, recibirás esta información cuando te registres en una cuenta de purpleteam.
buildUserConfig.fileUri Configura este valor si no quieres pasarlo manualmente como argumento a la CLI. Este es el archivo de Job que has configurado para especificar los detalles de tu Sistema Bajo Prueba (SUT).
outcomes.dir Configura este valor. Este es un directorio de tu elección donde se guardarán los archivos de resultados del orquestador (si se ejecuta en el entorno local) o de la API (si se ejecuta en el entorno cloud).