zn-gate (local)

Configuration

Variables d'environnement, options de ligne de commande et règles personnalisées pour zn-gate.

Voir le .md

zn-gate fonctionne sans aucune configuration. Tout ce qui suit est facultatif.

Variables d'environnement

Variable Valeur par défaut Effet
ZN_CLOUD off 1 permet à l'analyse des prompts (analyze_prompt, zn-gate analyze, analyze() en Python) de demander aussi un second avis au modèle cloud. Nécessite ZN_API_KEY.
ZN_API_KEY non définie Clé API issue du tableau de bord. Sans effet si ZN_CLOUD=1 n'est pas défini.
ZN_LOCAL_ONLY non définie true force le mode local uniquement, même avec ZN_CLOUD=1.
ZN_STAGE v30 Point de terminaison cloud : v30 (API de production actuelle) ou prod (point de terminaison historique).
ZN_API_URL non définie Remplace l'URL du point de terminaison cloud. Prend le pas sur ZN_STAGE.
ZN_VERBOSE non définie Toute valeur active la journalisation de débogage vers stderr.

npx -y zn-gate status affiche le moteur actif et ce que votre configuration envoie. Voir Ce qui quitte votre machine.

Activer le cloud pour un seul serveur MCP

Ajoutez les variables à l'entrée de ce serveur dans la configuration de votre agent, par exemple dans ~/.cursor/mcp.json :

{
  "mcpServers": {
    "zn-gate": {
      "command": "npx",
      "args": ["-y", "zn-gate", "mcp"],
      "env": { "ZN_CLOUD": "1", "ZN_API_KEY": "zn_live_your_key" }
    }
  }
}

Options de ligne de commande

Option Effet
--local-only Ne jamais utiliser le cloud, même si ZN_CLOUD=1 est défini
--key <api_key> Clé API pour le cloud facultatif (identique à ZN_API_KEY ; nécessite toujours ZN_CLOUD=1)
--stage v30 ou --stage prod, --url <url> Sélection du point de terminaison cloud
--shadow Avec init ou shield : journaliser les détections sans bloquer ni modifier le trafic
--all, --include .rst,.xml, --exclude fixtures Contrôlent les fichiers lus par scan
--verbose Journalisation de débogage vers stderr

Exécutez npx -y zn-gate --help pour voir toutes les options.

Règles personnalisées

Dans le paquet Node.js, ajoutez les motifs interdits et les chemins interdits de votre projet dans .znrules ou zn.config.json, dans le répertoire depuis lequel zn-gate est exécuté :

# .znrules
path:.env.production
path:/etc/secrets
CONFIDENTIAL_INTERNAL_PROJECT_[A-Z0-9]+

Les lignes commençant par path: bloquent toute entrée contenant ce chemin. Les autres lignes sont des expressions régulières insensibles à la casse qui bloquent toute entrée qu'elles reconnaissent. Les lignes commençant par # sont des commentaires. Forme JSON :

{ "bannedPatterns": ["CONFIDENTIAL_INTERNAL_PROJECT_[A-Z0-9]+"], "forbiddenPaths": [".env.production", "/etc/secrets"] }

Les blocages dus aux règles personnalisées signalent custom:banned_pattern ou custom:forbidden_path. Le paquet Python ne lit pas ces fichiers.

Fichiers écrits par zn-gate

Fichier Rôle
~/.zn/evidence.jsonl Journal d'audit local des décisions de shield (détails)
<config>.bak.<timestamp> Sauvegarde de chaque configuration d'agent modifiée par init ; init --revert restaure la dernière