Checkpoints du recrutement
1️⃣ Présentation
Dans le cadre du Recrutement, le recruteur doit pouvoir suivre l'avancée du candidat sur les étapes à réaliser. Pour cela un système de checkpoints a été mis en place. Ces différents points sont validés au fur et à mesure que le candidat complète le scénario sur son compte et sont affichés dans le dashboard admin sous cette forme :

Ces points se retrouvent ensuite dans le PDF de bilan généré à la fin de la session.
2️⃣ Validation des checkpoints
Un moteur de règles très simple a été mise en place grâce au package json-rules-engine permettant de valider les différents checkpoints lors du Recrutement. La mise à jour de la validation de ces checkpoints se fait toutes les 5 secondes dans le backend.
Chaque scénario possèdent des règles de cette forme rules.json qui permettent au moteur de valider ou non un checkpoint via les événements reçus de la file SQS qui sont la source des faits du moteur de règles. Les règles se contentent de décrire où chercher dans team.eventStaffing
en décrivant le path JSON des paramètres à vérifier (type d'instance, vpc etc.) dans l'event.
Dans le cadre du Recrutement un seul event de chaque type (ec2.RunInstances, ec2.TerminateInstances etc.) est stocké par joueur donc on ne peut pas vérifier simplement si le joueur a créer plusieurs ressources d'un type par exemple.
3️⃣ Format des bullets
{
"ec2": {
"completed": false,
"goal": "Créer un ec2 t2.micro"
},
"launchTemplate": {
"completed": false,
"goal": "Créer un Launch Template t2.micro"
},
"alb": {
"completed": false,
"goal": "Créer un Application Load Balancer"
},
"asg": {
"completed": false,
"goal": "Créer un Autoscaling Group à minima 3 EC2s"
}
}