--- 12.1.10
403 Ko. MD5 : 0f26321fac20dd6b30bd85873fada1ab — 569 assertions (325 dashboard + 244 agent).
Ce qui est solide
La séparation bouncer/machine est la bonne architecture, indépendamment de tout doute sur les détails d'endpoints — c'est le modèle de sécurité de CrowdSec lui-même, pas une supposition de ma part. Ta clé de bouncer reste en lecture seule, un nouveau couple CROWDSEC_MACHINE_ID/CROWDSEC_MACHINE_PASSWORD gère les écritures, obtenu une fois via cscli machines add nginx-dashboard --auto sur l'hôte CrowdSec — puis utilisable à distance en HTTPS exactement comme ta clé actuelle.
L'authentification JWT (connexion, mise en cache du jeton, renouvellement automatique y compris sur un 401 en cours de route) est testée à fond avec un transport simulé — 25 tests, dont la reconnexion après expiration et le refus propre d'identifiants invalides.
Le débannissement (DELETE /v1/decisions/{id} ou par adresse) est un endpoint LAPI ancien et stable — confiance élevée.
Ce qui reste une hypothèse documentée
Deux points que je n'ai pas pu vérifier faute de navigateur fonctionnel dans cet environnement, et que je te le dis directement plutôt que de le cacher :
La création d'un ban manuel passe par POST /v1/alerts avec une structure synthétique — les décisions n'ont pas de point d'entrée de création propre dans la LAPI, elles sont toujours rattachées à une Alerte, exactement comme cscli decisions add le fait en interne. Le schéma que j'ai construit est ma meilleure lecture de l'architecture, pas une copie vérifiée de la doc.
Les listes blanches centralisées sont la fonctionnalité la plus récente des deux liens que tu as partagés, et celle où mon incertitude est la plus grande sur les chemins exacts (/v1/allowlists, /v1/allowlists/{name}/items).
Dans les deux cas, aucune erreur n'est jamais avalée : si le format ne correspond pas à ta version de CrowdSec, tu verras directement le message de validation renvoyé par le LAPI — dans l'interface (bandeau ambre sous chaque échec) et dans les logs. C'est un écart visible et corrigeable en quelques lignes, pas une impasse.
Pour la suite
Au premier essai réel après avoir généré l'identifiant machine : commence par « Bannir une adresse » sur une IP de test, regarde le message d'erreur exact si ça échoue, et transmets-le-moi — ça me permettra d'ajuster le schéma précisément plutôt que de deviner une seconde fois.