> ## Documentation Index
> Fetch the complete documentation index at: https://docs.befailproof.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Catalogue des politiques intégrées

> Découvrez chaque politique intégrée de Failproof AI, son déclencheur, l'état recommandé et ses paramètres configurables.

Le package installé fait autorité quant à la disponibilité des politiques. Exécutez `failproofai policies` après chaque mise à jour, car les entrées du catalogue et leur comportement peuvent évoluer avec la version du package.

## Configuration de référence recommandée

La sélection recommandée par l'assistant de configuration active actuellement les assainisseurs de secrets, les protections d'environnement, la protection du service lui-même, les gardes contre les commandes catastrophiques et la sécurité des branches protégées :

```text theme={null}
sanitize-jwt                 sanitize-api-keys
sanitize-connection-strings sanitize-private-key-content
sanitize-bearer-tokens       protect-env-vars
block-env-files              block-secrets-write
block-self-pause             block-failproofai-commands
block-sudo                   block-curl-pipe-sh
block-rm-rf                  block-push-master
block-force-push
```

La sélection recommandée est délibérément plus restreinte que **Tout activer**. Les politiques d'infrastructure et de workflow peuvent interrompre un travail légitime ; elles doivent être activées uniquement pour les dépôts et les machines qui en ont besoin.

## Secrets et environnement

| Politique                      | Déclencheur                                           | Résultat                                                                                    |
| ------------------------------ | ----------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| `sanitize-jwt`                 | `PostToolUse`                                         | Masque les JWT dans la sortie des outils avant que le modèle ne les voie.                   |
| `sanitize-api-keys`            | `PostToolUse`                                         | Masque les clés OpenAI, Anthropic, GitHub, AWS, Stripe et Google courantes.                 |
| `sanitize-connection-strings`  | `PostToolUse`                                         | Masque les chaînes de connexion à des bases de données contenant des identifiants.          |
| `sanitize-private-key-content` | `PostToolUse`                                         | Masque les corps de clés privées PEM.                                                       |
| `sanitize-bearer-tokens`       | `PostToolUse`                                         | Masque les jetons bearer d'autorisation.                                                    |
| `protect-env-vars`             | `PreToolUse` sur les outils shell                     | Bloque les commandes qui exposent les variables d'environnement.                            |
| `block-env-files`              | `PreToolUse`                                          | Bloque les lectures et écritures des fichiers `.env`.                                       |
| `block-read-outside-cwd`       | `PreToolUse` sur les outils read, glob, grep ou shell | Limite les lectures au répertoire de travail de la session.                                 |
| `block-secrets-write`          | `PreToolUse` sur les outils d'écriture                | Bloque les écritures vers les noms de fichiers courants de clés secrètes et d'identifiants. |

## Commandes dangereuses et infrastructure

| Politique                    | Déclencheur                       | Résultat                                                                                      |
| ---------------------------- | --------------------------------- | --------------------------------------------------------------------------------------------- |
| `block-self-pause`           | `PreToolUse`, `PermissionRequest` | Empêche un agent de suspendre sa propre application des règles.                               |
| `block-sudo`                 | `PreToolUse`, `PermissionRequest` | Bloque `sudo` sauf si un modèle d'autorisation correspond.                                    |
| `block-curl-pipe-sh`         | `PreToolUse`                      | Bloque les scripts téléchargés et directement transmis à un shell via un pipe.                |
| `block-rm-rf`                | `PreToolUse`                      | Bloque les patterns de suppression récursive catastrophiques.                                 |
| `block-failproofai-commands` | `PreToolUse`                      | Empêche les agents de modifier ou de désinstaller Failproof AI.                               |
| `block-kubectl`              | `PreToolUse`                      | Contrôle les commandes Kubernetes.                                                            |
| `block-terraform`            | `PreToolUse`                      | Contrôle les commandes Terraform et OpenTofu.                                                 |
| `block-aws-cli`              | `PreToolUse`                      | Contrôle les commandes AWS CLI.                                                               |
| `block-gcloud`               | `PreToolUse`                      | Contrôle les commandes Google Cloud CLI.                                                      |
| `block-az-cli`               | `PreToolUse`                      | Contrôle les commandes Azure CLI.                                                             |
| `block-helm`                 | `PreToolUse`                      | Contrôle les commandes Helm.                                                                  |
| `block-gh-pipeline`          | `PreToolUse`                      | Contrôle les opérations GitHub CLI mutantes : workflow, run, merge, release, cache et secret. |

## Sécurité Git et bases de données

| Politique                | Déclencheur  | Résultat                                                                                                   |
| ------------------------ | ------------ | ---------------------------------------------------------------------------------------------------------- |
| `block-push-master`      | `PreToolUse` | Bloque les push directs vers les branches protégées configurées.                                           |
| `block-force-push`       | `PreToolUse` | Bloque les force-push ; `--force-with-lease` reste autorisé par l'implémentation actuelle.                 |
| `block-work-on-main`     | `PreToolUse` | Bloque les commits et merges sur les branches protégées.                                                   |
| `warn-git-amend`         | `PreToolUse` | Avertit avant de réécrire un commit avec `--amend`.                                                        |
| `warn-git-stash-drop`    | `PreToolUse` | Avertit avant de supprimer ou vider définitivement des stashes.                                            |
| `warn-all-files-staged`  | `PreToolUse` | Avertit en cas d'ajout global via `git add -A`, `git add .` ou `git add --all`.                            |
| `warn-destructive-sql`   | `PreToolUse` | Avertit en cas de `DROP`, `TRUNCATE` ou `DELETE` sans `WHERE` via des clients de base de données reconnus. |
| `warn-schema-alteration` | `PreToolUse` | Avertit lors d'opérations reconnues `ALTER TABLE` sur des colonnes ou des renommages.                      |

## Packages, comportement système et boucles d'agent

| Politique                     | Déclencheur                            | Résultat                                                                             |
| ----------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------ |
| `warn-package-publish`        | `PreToolUse`                           | Avertit avant de publier sur des registres de packages.                              |
| `warn-global-package-install` | `PreToolUse`                           | Avertit avant l'installation globale d'un package.                                   |
| `prefer-package-manager`      | `PreToolUse`                           | Indique à l'agent d'utiliser un gestionnaire de packages autorisé.                   |
| `warn-large-file-write`       | `PreToolUse` sur les outils d'écriture | Avertit au-delà du seuil de taille de fichier configuré.                             |
| `warn-background-process`     | `PreToolUse`                           | Avertit en cas de patterns de processus en arrière-plan détachés ou de longue durée. |
| `warn-repeated-tool-calls`    | `PreToolUse`                           | Avertit après trois appels d'outil identiques ou plus.                               |

## Workflow de fin de tâche

Ces politiques nécessitent un harnais émettant un événement `Stop` compatible.

| Politique                          | Résultat                                                                       |
| ---------------------------------- | ------------------------------------------------------------------------------ |
| `require-commit-before-stop`       | Refuse la complétion tant que des modifications suivies ne sont pas commitées. |
| `require-push-before-stop`         | Refuse la complétion tant que des commits restent uniquement en local.         |
| `require-pr-before-stop`           | Exige une pull request pour la branche courante.                               |
| `require-no-conflicts-before-stop` | Exige un merge propre par rapport à la branche de base configurée.             |
| `require-ci-green-before-stop`     | Exige que les vérifications CI du HEAD actuel se terminent avec succès.        |

## Référence des paramètres

Configurez les paramètres dans l'objet `policyParams` du scope sélectionné. Les types sont validés par chaque politique.

| Politique                          | Paramètre              | Type et valeur par défaut                                      |
| ---------------------------------- | ---------------------- | -------------------------------------------------------------- |
| `sanitize-api-keys`                | `additionalPatterns`   | `pattern[]`, `[]` ; les entrées contiennent `regex` et `label` |
| `block-read-outside-cwd`           | `allowPaths`           | `string[]`, `[]`                                               |
| `block-sudo`                       | `allowPatterns`        | `string[]`, `[]`                                               |
| `block-rm-rf`                      | `allowPaths`           | `string[]`, `[]`                                               |
| Bloqueurs d'infrastructure         | `allowPatterns`        | `string[]`, `[]`                                               |
| `block-secrets-write`              | `additionalPatterns`   | `string[]`, `[]`                                               |
| `block-push-master`                | `protectedBranches`    | `string[]`, `["main", "master"]`                               |
| `block-work-on-main`               | `protectedBranches`    | `string[]`, `["main", "master"]`                               |
| `prefer-package-manager`           | `allowed`, `blocked`   | `string[]`, `[]`                                               |
| `warn-large-file-write`            | `thresholdKb`          | `number`, `1024`                                               |
| `require-push-before-stop`         | `remote`, `baseBranch` | `string`, `"origin"` ; `string`, `"main"`                      |
| `require-pr-before-stop`           | `baseBranch`           | `string`, `"main"`                                             |
| `require-no-conflicts-before-stop` | `baseBranch`           | `string`, `"main"`                                             |

```json theme={null}
{
  "enabledPolicies": ["block-sudo", "block-push-master"],
  "policyParams": {
    "block-sudo": {
      "allowPatterns": ["sudo systemctl status"]
    },
    "block-push-master": {
      "protectedBranches": ["main", "release"]
    }
  }
}
```

<Warning>
  Un modèle d'autorisation élargit ce qu'un agent peut faire. Testez la tokenisation exacte et les variantes de commandes sur le harnais cible avant de le déployer sur une flotte de machines.
</Warning>
