Une seule API
La console et toutwafctl n'utilisent que l'API REST du plan de contrôle : ce que vous faites dans l'interface existe aussi en appel d'API.
Tout ce que fait la console est aussi disponible par une API REST et par l'outil en ligne de commande toutwafctl, avec des jetons à portée limitée : de quoi scripter, intégrer à un SOAR ou piloter depuis la CI.
Où le trouver dans la console : Console : Administration > Utilisateurs et accès (jetons d'API) ; API : /api/v1 ; outil : toutwafctl.
La console et toutwafctl n'utilisent que l'API REST du plan de contrôle : ce que vous faites dans l'interface existe aussi en appel d'API.
Un jeton porte une liste de permissions (ressource:action), peut être limité à certains sites et expirer. Il ne dépasse jamais les droits de son créateur.
Chaque erreur a un code TW-xxxx, un message dans la langue demandée et, dans la documentation, une cause et un remède.
toutwafctl a une sortie JSON, des codes de retour utilisables en CI et des messages en dix langues.
Il parle à l'API avec un jeton ; la référence complète est dans la documentation.
login (avec le code TOTP si l'authentification à deux facteurs est active) échange la session contre un jeton longue durée, ou enregistre un jeton existant.
apps (liste, création, mode détection/blocage) ; policy (export, validation, diff, application, publication, retour arrière).
test exécute des tests de règles avec une sortie JUnit ; simulate rejoue du trafic enregistré contre une politique.
ban et unban pour une adresse ; nodes pour les nœuds et leurs jetons d'enrôlement ; token pour créer, lister et révoquer des jetons d'API.
backup (création, liste, téléchargement, destinations) et restore, y compris hors ligne, service arrêté.
doctor lit l'installation locale même quand la console ne répond pas, ou interroge la console avec un jeton ; le code de retour est 1 si un contrôle échoue.
Chemin de base /api/v1.
Un jeton de CI n'a pas besoin de tout.
Nous préférons le dire clairement.
Un scénario appelle l'API pour bannir une adresse un temps donné, avec une raison tracée dans l'audit.
Un script crée un site, le met en détection puis le publie avec toutwafctl.
Les tests de règles tournent à chaque changement, avec un compte rendu JUnit.
La base est gratuite ; les options avancées demandent une offre payante. Une option sous licence reste visible dans la console, verrouillée, jamais cachée.
Revenir à la valeur par défaut d'une option avancée est toujours possible. Ce qui se passe à la fin d'une licence payante est décrit dans la FAQ des tarifs : 48 h de grâce, 48 h de lecture seule, puis protection WAF désactivée jusqu'au renouvellement.
Installez-le sur votre propre serveur, ou écrivez-nous pour parler de licences.