failproofai 0.0.6-beta.1 → 0.0.6-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/standalone/.failproofai/policies/review-policies.mjs +4 -3
- package/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +2 -2
- package/.next/standalone/.next/server/app/_not-found.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +15 -15
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +10 -10
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +8 -8
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0g72weg._.js +1 -1
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_0z7w.hh._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__092s1ta._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0~kmh8w._.js → [root-of-the-server]__096k.db._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__09icjsf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0g.lg8b._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0h..k-e._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__0rh.18_._.js → [root-of-the-server]__0kyh86x._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0okos0k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0w6l33k._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__11pa2ra._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__12t-wym._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/_10lm7or._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_0xerkr6._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_0q-m0y-._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +2 -2
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +9 -9
- package/.next/standalone/.next/static/chunks/{0gbf4cphy8ksq.js → 0-dm_9a6nsc2l.js} +1 -1
- package/.next/standalone/.next/static/chunks/{12~yi9oj8av8p.js → 01pmw1-asbek~.js} +2 -2
- package/.next/standalone/.next/static/chunks/{0v.yd0kg_ld3r.js → 051m32nx~n5yr.js} +1 -1
- package/.next/standalone/.next/static/chunks/{09_k80d~cq2wg.js → 0a-yctdwn368y.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0bvhsa6zva2o..js → 0ksdlt_1hucdm.js} +1 -1
- package/.next/standalone/.next/static/chunks/{01b~z8f1ws0rk.js → 0l-mu4okl-cj1.js} +1 -1
- package/.next/standalone/.next/static/chunks/{08t08igdql9yt.js → 0mazj-p-~2kc6.js} +1 -1
- package/.next/standalone/.next/static/chunks/0qakntsrpc~1j.js +6 -0
- package/.next/standalone/.next/static/chunks/{03rz6ykw-a2xi.js → 156zca6aewyr-.js} +1 -1
- package/.next/standalone/CHANGELOG.md +18 -0
- package/.next/standalone/bin/failproofai.mjs +91 -4
- package/.next/standalone/dist/cli.mjs +1156 -55
- package/.next/standalone/docs/ar/built-in-policies.mdx +140 -103
- package/.next/standalone/docs/ar/custom-policies.mdx +72 -72
- package/.next/standalone/docs/ar/examples.mdx +86 -33
- package/.next/standalone/docs/ar/getting-started.mdx +82 -29
- package/.next/standalone/docs/built-in-policies.mdx +3 -3
- package/.next/standalone/docs/de/built-in-policies.mdx +97 -60
- package/.next/standalone/docs/de/custom-policies.mdx +56 -56
- package/.next/standalone/docs/de/examples.mdx +72 -18
- package/.next/standalone/docs/de/getting-started.mdx +72 -20
- package/.next/standalone/docs/es/built-in-policies.mdx +91 -54
- package/.next/standalone/docs/es/custom-policies.mdx +55 -55
- package/.next/standalone/docs/es/examples.mdx +73 -19
- package/.next/standalone/docs/es/getting-started.mdx +72 -20
- package/.next/standalone/docs/fr/built-in-policies.mdx +99 -62
- package/.next/standalone/docs/fr/custom-policies.mdx +51 -51
- package/.next/standalone/docs/fr/examples.mdx +78 -24
- package/.next/standalone/docs/fr/getting-started.mdx +65 -13
- package/.next/standalone/docs/he/built-in-policies.mdx +139 -99
- package/.next/standalone/docs/he/custom-policies.mdx +75 -75
- package/.next/standalone/docs/he/examples.mdx +87 -33
- package/.next/standalone/docs/he/getting-started.mdx +84 -33
- package/.next/standalone/docs/hi/built-in-policies.mdx +203 -166
- package/.next/standalone/docs/hi/custom-policies.mdx +71 -70
- package/.next/standalone/docs/hi/examples.mdx +90 -36
- package/.next/standalone/docs/hi/getting-started.mdx +80 -27
- package/.next/standalone/docs/i18n/README.ar.md +69 -69
- package/.next/standalone/docs/i18n/README.de.md +46 -46
- package/.next/standalone/docs/i18n/README.es.md +42 -42
- package/.next/standalone/docs/i18n/README.fr.md +39 -39
- package/.next/standalone/docs/i18n/README.he.md +83 -83
- package/.next/standalone/docs/i18n/README.hi.md +69 -69
- package/.next/standalone/docs/i18n/README.it.md +72 -72
- package/.next/standalone/docs/i18n/README.ja.md +71 -71
- package/.next/standalone/docs/i18n/README.ko.md +52 -52
- package/.next/standalone/docs/i18n/README.pt-br.md +44 -44
- package/.next/standalone/docs/i18n/README.ru.md +66 -66
- package/.next/standalone/docs/i18n/README.tr.md +82 -83
- package/.next/standalone/docs/i18n/README.vi.md +70 -71
- package/.next/standalone/docs/i18n/README.zh.md +51 -51
- package/.next/standalone/docs/it/built-in-policies.mdx +115 -78
- package/.next/standalone/docs/it/custom-policies.mdx +69 -69
- package/.next/standalone/docs/it/examples.mdx +93 -39
- package/.next/standalone/docs/it/getting-started.mdx +73 -21
- package/.next/standalone/docs/ja/built-in-policies.mdx +155 -118
- package/.next/standalone/docs/ja/custom-policies.mdx +71 -71
- package/.next/standalone/docs/ja/examples.mdx +76 -22
- package/.next/standalone/docs/ja/getting-started.mdx +65 -13
- package/.next/standalone/docs/ko/built-in-policies.mdx +103 -66
- package/.next/standalone/docs/ko/custom-policies.mdx +67 -67
- package/.next/standalone/docs/ko/examples.mdx +87 -33
- package/.next/standalone/docs/ko/getting-started.mdx +61 -9
- package/.next/standalone/docs/pt-br/built-in-policies.mdx +72 -35
- package/.next/standalone/docs/pt-br/custom-policies.mdx +56 -56
- package/.next/standalone/docs/pt-br/examples.mdx +78 -24
- package/.next/standalone/docs/pt-br/getting-started.mdx +64 -12
- package/.next/standalone/docs/ru/built-in-policies.mdx +135 -98
- package/.next/standalone/docs/ru/custom-policies.mdx +82 -81
- package/.next/standalone/docs/ru/examples.mdx +77 -22
- package/.next/standalone/docs/ru/getting-started.mdx +74 -22
- package/.next/standalone/docs/tr/built-in-policies.mdx +126 -89
- package/.next/standalone/docs/tr/custom-policies.mdx +59 -60
- package/.next/standalone/docs/tr/examples.mdx +97 -42
- package/.next/standalone/docs/tr/getting-started.mdx +75 -23
- package/.next/standalone/docs/vi/built-in-policies.mdx +116 -81
- package/.next/standalone/docs/vi/custom-policies.mdx +68 -68
- package/.next/standalone/docs/vi/examples.mdx +93 -38
- package/.next/standalone/docs/vi/getting-started.mdx +74 -22
- package/.next/standalone/docs/zh/built-in-policies.mdx +117 -82
- package/.next/standalone/docs/zh/custom-policies.mdx +49 -49
- package/.next/standalone/docs/zh/examples.mdx +90 -36
- package/.next/standalone/docs/zh/getting-started.mdx +73 -21
- package/.next/standalone/package.json +1 -1
- package/.next/standalone/server.js +1 -1
- package/.next/standalone/src/auth/login.ts +104 -0
- package/.next/standalone/src/auth/logout.ts +50 -0
- package/.next/standalone/src/auth/token-store.ts +64 -0
- package/.next/standalone/src/hooks/builtin-policies.ts +27 -21
- package/.next/standalone/src/hooks/handler.ts +35 -15
- package/.next/standalone/src/relay/daemon.ts +362 -0
- package/.next/standalone/src/relay/pid.ts +76 -0
- package/.next/standalone/src/relay/queue.ts +225 -0
- package/bin/failproofai.mjs +91 -4
- package/dist/cli.mjs +1156 -55
- package/package.json +1 -1
- package/src/auth/login.ts +104 -0
- package/src/auth/logout.ts +50 -0
- package/src/auth/token-store.ts +64 -0
- package/src/hooks/builtin-policies.ts +27 -21
- package/src/hooks/handler.ts +35 -15
- package/src/relay/daemon.ts +362 -0
- package/src/relay/pid.ts +76 -0
- package/src/relay/queue.ts +225 -0
- package/.next/standalone/.next/static/chunks/0wlyoif4_kj_t.js +0 -6
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{CkmOT-ZvDN-sVULinGVKT → r-wX0MuAfCjbhJm3phQc8}/_ssgManifest.js +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Politiques intégrées
|
|
3
|
-
description: "Les 30 politiques intégrées qui
|
|
3
|
+
description: "Les 30 politiques intégrées qui interceptent les modes d'échec courants des agents"
|
|
4
4
|
icon: shield
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
failproofai est livré avec 30 politiques intégrées qui
|
|
7
|
+
failproofai est livré avec 30 politiques intégrées qui interceptent les modes d'échec courants des agents. Chaque politique se déclenche sur un type d'événement de hook spécifique et un nom d'outil. Neuf politiques acceptent des paramètres permettant d'affiner leur comportement sans écrire de code. Quatre politiques de workflow imposent un pipeline commit → push → PR → CI avant que Claude s'arrête.
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -15,23 +15,24 @@ Les politiques sont regroupées par catégories :
|
|
|
15
15
|
| Catégorie | Politiques | Type de hook |
|
|
16
16
|
|----------|----------|-----------|
|
|
17
17
|
| [Commandes dangereuses](#dangerous-commands) | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
|
|
18
|
-
| [Secrets (
|
|
18
|
+
| [Secrets (sanitizers)](#secrets-sanitizers) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
|
|
19
19
|
| [Environnement](#environment) | block-env-files, protect-env-vars | PreToolUse |
|
|
20
20
|
| [Accès aux fichiers](#file-access) | block-read-outside-cwd, block-secrets-write | PreToolUse |
|
|
21
21
|
| [Git](#git) | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
|
|
22
22
|
| [Base de données](#database) | warn-destructive-sql, warn-schema-alteration | PreToolUse |
|
|
23
23
|
| [Avertissements](#warnings) | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
|
|
24
|
+
| [Gestionnaires de paquets](#package-managers) | prefer-package-manager | PreToolUse |
|
|
24
25
|
| [Workflow](#workflow) | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-ci-green-before-stop | Stop |
|
|
25
26
|
|
|
26
27
|
- **`block-`** — empêche l'agent de continuer.
|
|
27
|
-
- **`warn-`** — fournit à l'agent
|
|
28
|
-
- **`sanitize-`** — supprime les données sensibles de la sortie d'outil avant que l'agent ne les
|
|
28
|
+
- **`warn-`** — fournit à l'agent du contexte supplémentaire pour lui permettre de se corriger.
|
|
29
|
+
- **`sanitize-`** — supprime les données sensibles de la sortie d'un outil avant que l'agent ne les lise.
|
|
29
30
|
- **`require-`** — bloque l'événement Stop jusqu'à ce que les conditions soient remplies.
|
|
30
31
|
|
|
31
32
|
---
|
|
32
33
|
|
|
33
34
|
<Tip>
|
|
34
|
-
Toutes les politiques
|
|
35
|
+
Toutes les politiques supportent un champ optionnel `hint` dans `policyParams`. Ce hint est ajouté au message deny ou instruct que Claude reçoit, fournissant des indications concrètes sans modifier le code de la politique. Compatible avec les politiques intégrées, personnalisées et de convention. Voir [Configuration → hint](/fr/configuration#hint-cross-cutting) pour plus de détails.
|
|
35
36
|
</Tip>
|
|
36
37
|
|
|
37
38
|
---
|
|
@@ -43,13 +44,13 @@ Empêche les agents d'exécuter des opérations difficiles à annuler ou suscept
|
|
|
43
44
|
### `block-sudo`
|
|
44
45
|
|
|
45
46
|
**Événement :** PreToolUse (Bash)
|
|
46
|
-
**
|
|
47
|
+
**Comportement par défaut :** Refuse toute commande `sudo`.
|
|
47
48
|
|
|
48
|
-
Bloque les invocations
|
|
49
|
+
Bloque les invocations contenant le mot-clé `sudo`. La correspondance de motifs est effectuée sur les tokens de commande analysés, et non sur la chaîne brute, afin d'éviter les contournements par injection d'opérateurs shell.
|
|
49
50
|
|
|
50
51
|
**Paramètres :**
|
|
51
52
|
|
|
52
|
-
|
|
|
53
|
+
| Paramètre | Type | Défaut | Description |
|
|
53
54
|
|-------|------|---------|-------------|
|
|
54
55
|
| `allowPatterns` | `string[]` | `[]` | Préfixes de commandes exacts autorisés. Chaque entrée est comparée aux tokens argv analysés. |
|
|
55
56
|
|
|
@@ -68,7 +69,7 @@ Bloque les invocations qui contiennent le mot-clé `sudo`. La correspondance de
|
|
|
68
69
|
Avec cette configuration, `sudo systemctl status nginx` est autorisé, mais `sudo rm /etc/hosts` est refusé.
|
|
69
70
|
|
|
70
71
|
<Note>
|
|
71
|
-
Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande brute. Cela empêche les contournements via des opérateurs shell ajoutés en
|
|
72
|
+
Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande brute. Cela empêche les contournements via des opérateurs shell ajoutés en suffixe (par exemple, `sudo systemctl status x; rm -rf /` ne correspond pas à `sudo systemctl status *`).
|
|
72
73
|
</Note>
|
|
73
74
|
|
|
74
75
|
---
|
|
@@ -76,11 +77,11 @@ Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande
|
|
|
76
77
|
### `block-rm-rf`
|
|
77
78
|
|
|
78
79
|
**Événement :** PreToolUse (Bash)
|
|
79
|
-
**
|
|
80
|
+
**Comportement par défaut :** Refuse `rm -rf`, `rm -fr` et les formes similaires de suppression récursive.
|
|
80
81
|
|
|
81
82
|
**Paramètres :**
|
|
82
83
|
|
|
83
|
-
|
|
|
84
|
+
| Paramètre | Type | Défaut | Description |
|
|
84
85
|
|-------|------|---------|-------------|
|
|
85
86
|
| `allowPaths` | `string[]` | `[]` | Chemins dont la suppression récursive est autorisée (ex. `/tmp`). |
|
|
86
87
|
|
|
@@ -101,7 +102,7 @@ Les motifs sont comparés aux tokens analysés, et non à la chaîne de commande
|
|
|
101
102
|
### `block-curl-pipe-sh`
|
|
102
103
|
|
|
103
104
|
**Événement :** PreToolUse (Bash)
|
|
104
|
-
**
|
|
105
|
+
**Comportement par défaut :** Refuse `curl <url> | bash`, `curl <url> | sh`, `wget <url> | bash` et les motifs similaires.
|
|
105
106
|
|
|
106
107
|
Aucun paramètre.
|
|
107
108
|
|
|
@@ -110,20 +111,20 @@ Aucun paramètre.
|
|
|
110
111
|
### `block-failproofai-commands`
|
|
111
112
|
|
|
112
113
|
**Événement :** PreToolUse (Bash)
|
|
113
|
-
**
|
|
114
|
+
**Comportement par défaut :** Refuse les commandes qui désinstalleraient ou désactiveraient failproofai lui-même (ex. `npm uninstall failproofai`, `failproofai policies --uninstall`).
|
|
114
115
|
|
|
115
116
|
Aucun paramètre.
|
|
116
117
|
|
|
117
118
|
---
|
|
118
119
|
|
|
119
|
-
## Secrets (
|
|
120
|
+
## Secrets (sanitizers)
|
|
120
121
|
|
|
121
|
-
Empêche les agents de faire fuiter des identifiants dans leur contexte ou
|
|
122
|
+
Empêche les agents de faire fuiter des identifiants dans leur contexte ou leur sortie. Les politiques de sanitisation se déclenchent sur les événements **PostToolUse**. Lorsque Claude exécute une commande Bash, lit un fichier ou appelle un outil quelconque, ces politiques inspectent la sortie avant qu'elle ne soit renvoyée à Claude. Si un motif de secret est détecté, la politique retourne une décision deny qui empêche la sortie d'être transmise en retour.
|
|
122
123
|
|
|
123
124
|
### `sanitize-jwt`
|
|
124
125
|
|
|
125
126
|
**Événement :** PostToolUse (tous les outils)
|
|
126
|
-
**
|
|
127
|
+
**Comportement par défaut :** Masque les tokens JWT (trois segments base64url séparés par `.`).
|
|
127
128
|
|
|
128
129
|
Aucun paramètre.
|
|
129
130
|
|
|
@@ -132,11 +133,11 @@ Aucun paramètre.
|
|
|
132
133
|
### `sanitize-api-keys`
|
|
133
134
|
|
|
134
135
|
**Événement :** PostToolUse (tous les outils)
|
|
135
|
-
**
|
|
136
|
+
**Comportement par défaut :** Masque les formats de clés API courants : Anthropic (`sk-ant-`), OpenAI (`sk-`), GitHub PATs (`ghp_`), clés d'accès AWS (`AKIA`), clés Stripe (`sk_live_`, `sk_test_`), et clés Google API (`AIza`).
|
|
136
137
|
|
|
137
138
|
**Paramètres :**
|
|
138
139
|
|
|
139
|
-
|
|
|
140
|
+
| Paramètre | Type | Défaut | Description |
|
|
140
141
|
|-------|------|---------|-------------|
|
|
141
142
|
| `additionalPatterns` | `{ regex: string; label: string }[]` | `[]` | Motifs regex supplémentaires à traiter comme des secrets. |
|
|
142
143
|
|
|
@@ -160,7 +161,7 @@ Aucun paramètre.
|
|
|
160
161
|
### `sanitize-connection-strings`
|
|
161
162
|
|
|
162
163
|
**Événement :** PostToolUse (tous les outils)
|
|
163
|
-
**
|
|
164
|
+
**Comportement par défaut :** Masque les chaînes de connexion de base de données contenant des identifiants intégrés (ex. `postgresql://user:password@host/db`).
|
|
164
165
|
|
|
165
166
|
Aucun paramètre.
|
|
166
167
|
|
|
@@ -169,7 +170,7 @@ Aucun paramètre.
|
|
|
169
170
|
### `sanitize-private-key-content`
|
|
170
171
|
|
|
171
172
|
**Événement :** PostToolUse (tous les outils)
|
|
172
|
-
**
|
|
173
|
+
**Comportement par défaut :** Masque les blocs PEM (`-----BEGIN PRIVATE KEY-----`, `-----BEGIN RSA PRIVATE KEY-----`, etc.).
|
|
173
174
|
|
|
174
175
|
Aucun paramètre.
|
|
175
176
|
|
|
@@ -178,7 +179,7 @@ Aucun paramètre.
|
|
|
178
179
|
### `sanitize-bearer-tokens`
|
|
179
180
|
|
|
180
181
|
**Événement :** PostToolUse (tous les outils)
|
|
181
|
-
**
|
|
182
|
+
**Comportement par défaut :** Masque les en-têtes `Authorization: Bearer <token>` dont le token contient 20 caractères ou plus.
|
|
182
183
|
|
|
183
184
|
Aucun paramètre.
|
|
184
185
|
|
|
@@ -191,7 +192,7 @@ Protège la configuration d'environnement sensible contre la lecture ou l'exposi
|
|
|
191
192
|
### `block-env-files`
|
|
192
193
|
|
|
193
194
|
**Événement :** PreToolUse (Bash, Read)
|
|
194
|
-
**
|
|
195
|
+
**Comportement par défaut :** Refuse la lecture des fichiers `.env` via `cat .env`, les appels à l'outil `Read` avec `.env` comme chemin de fichier, etc.
|
|
195
196
|
|
|
196
197
|
Ne bloque pas `.envrc` ni les autres fichiers liés à l'environnement — uniquement les fichiers nommés exactement `.env`.
|
|
197
198
|
|
|
@@ -202,7 +203,7 @@ Aucun paramètre.
|
|
|
202
203
|
### `protect-env-vars`
|
|
203
204
|
|
|
204
205
|
**Événement :** PreToolUse (Bash)
|
|
205
|
-
**
|
|
206
|
+
**Comportement par défaut :** Refuse les commandes qui affichent les variables d'environnement : `printenv`, `env`, `echo $VAR`.
|
|
206
207
|
|
|
207
208
|
Aucun paramètre.
|
|
208
209
|
|
|
@@ -215,11 +216,11 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
|
|
|
215
216
|
### `block-read-outside-cwd`
|
|
216
217
|
|
|
217
218
|
**Événement :** PreToolUse (Read, Bash)
|
|
218
|
-
**
|
|
219
|
+
**Comportement par défaut :** Refuse la lecture de fichiers situés en dehors du répertoire de travail courant (la racine du projet).
|
|
219
220
|
|
|
220
221
|
**Paramètres :**
|
|
221
222
|
|
|
222
|
-
|
|
|
223
|
+
| Paramètre | Type | Défaut | Description |
|
|
223
224
|
|-------|------|---------|-------------|
|
|
224
225
|
| `allowPaths` | `string[]` | `[]` | Préfixes de chemins absolus autorisés même s'ils sont en dehors du répertoire courant. |
|
|
225
226
|
|
|
@@ -240,11 +241,11 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
|
|
|
240
241
|
### `block-secrets-write`
|
|
241
242
|
|
|
242
243
|
**Événement :** PreToolUse (Write, Edit)
|
|
243
|
-
**
|
|
244
|
+
**Comportement par défaut :** Refuse l'écriture dans les fichiers couramment utilisés pour les clés privées et les certificats : `id_rsa`, `id_ed25519`, `*.key`, `*.pem`, `*.p12`, `*.pfx`.
|
|
244
245
|
|
|
245
246
|
**Paramètres :**
|
|
246
247
|
|
|
247
|
-
|
|
|
248
|
+
| Paramètre | Type | Défaut | Description |
|
|
248
249
|
|-------|------|---------|-------------|
|
|
249
250
|
| `additionalPatterns` | `string[]` | `[]` | Motifs de noms de fichiers supplémentaires (style glob) à bloquer. |
|
|
250
251
|
|
|
@@ -264,18 +265,18 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
|
|
|
264
265
|
|
|
265
266
|
## Git
|
|
266
267
|
|
|
267
|
-
|
|
268
|
+
Prévient les pushs accidentels, les force-push et les erreurs de branche difficiles à annuler.
|
|
268
269
|
|
|
269
270
|
### `block-push-master`
|
|
270
271
|
|
|
271
272
|
**Événement :** PreToolUse (Bash)
|
|
272
|
-
**
|
|
273
|
+
**Comportement par défaut :** Refuse `git push origin main` et `git push origin master`.
|
|
273
274
|
|
|
274
275
|
**Paramètres :**
|
|
275
276
|
|
|
276
|
-
|
|
|
277
|
+
| Paramètre | Type | Défaut | Description |
|
|
277
278
|
|-------|------|---------|-------------|
|
|
278
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches
|
|
279
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches sur lesquelles le push direct est interdit. |
|
|
279
280
|
|
|
280
281
|
**Exemple :**
|
|
281
282
|
|
|
@@ -290,7 +291,7 @@ Maintient les agents dans les limites du projet et à l'écart des fichiers sens
|
|
|
290
291
|
```
|
|
291
292
|
|
|
292
293
|
<Tip>
|
|
293
|
-
Pour autoriser le push
|
|
294
|
+
Pour autoriser le push sur toutes les branches (ce qui désactive effectivement cette politique sans la retirer de `enabledPolicies`), définissez `protectedBranches: []`.
|
|
294
295
|
</Tip>
|
|
295
296
|
|
|
296
297
|
---
|
|
@@ -298,22 +299,22 @@ Pour autoriser le push vers toutes les branches (ce qui désactive effectivement
|
|
|
298
299
|
### `block-work-on-main`
|
|
299
300
|
|
|
300
301
|
**Événement :** PreToolUse (Bash)
|
|
301
|
-
**
|
|
302
|
+
**Comportement par défaut :** Refuse le checkout direct des branches `main` ou `master`.
|
|
302
303
|
|
|
303
304
|
**Paramètres :**
|
|
304
305
|
|
|
305
|
-
|
|
|
306
|
+
| Paramètre | Type | Défaut | Description |
|
|
306
307
|
|-------|------|---------|-------------|
|
|
307
|
-
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches
|
|
308
|
+
| `protectedBranches` | `string[]` | `["main", "master"]` | Noms de branches dont le checkout direct est interdit. |
|
|
308
309
|
|
|
309
310
|
---
|
|
310
311
|
|
|
311
312
|
### `block-force-push`
|
|
312
313
|
|
|
313
314
|
**Événement :** PreToolUse (Bash)
|
|
314
|
-
**
|
|
315
|
+
**Comportement par défaut :** Refuse `git push --force` et `git push -f`.
|
|
315
316
|
|
|
316
|
-
Aucun paramètre spécifique à
|
|
317
|
+
Aucun paramètre spécifique à cette politique. Utilisez le [`hint`](/fr/configuration#hint-cross-cutting) transversal pour suggérer des alternatives :
|
|
317
318
|
|
|
318
319
|
```json
|
|
319
320
|
{
|
|
@@ -330,7 +331,7 @@ Aucun paramètre spécifique à la politique. Utilisez le champ transversal [`hi
|
|
|
330
331
|
### `warn-git-amend`
|
|
331
332
|
|
|
332
333
|
**Événement :** PreToolUse (Bash)
|
|
333
|
-
**
|
|
334
|
+
**Comportement par défaut :** Demande à Claude de procéder avec précaution lors de l'exécution de `git commit --amend`. Ne bloque pas la commande.
|
|
334
335
|
|
|
335
336
|
Aucun paramètre.
|
|
336
337
|
|
|
@@ -339,7 +340,7 @@ Aucun paramètre.
|
|
|
339
340
|
### `warn-git-stash-drop`
|
|
340
341
|
|
|
341
342
|
**Événement :** PreToolUse (Bash)
|
|
342
|
-
**
|
|
343
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter `git stash drop`. Ne bloque pas la commande.
|
|
343
344
|
|
|
344
345
|
Aucun paramètre.
|
|
345
346
|
|
|
@@ -348,7 +349,7 @@ Aucun paramètre.
|
|
|
348
349
|
### `warn-all-files-staged`
|
|
349
350
|
|
|
350
351
|
**Événement :** PreToolUse (Bash)
|
|
351
|
-
**
|
|
352
|
+
**Comportement par défaut :** Demande à Claude de vérifier ce qu'il indexe lorsqu'il exécute `git add -A` ou `git add .`. Ne bloque pas la commande.
|
|
352
353
|
|
|
353
354
|
Aucun paramètre.
|
|
354
355
|
|
|
@@ -356,12 +357,12 @@ Aucun paramètre.
|
|
|
356
357
|
|
|
357
358
|
## Base de données
|
|
358
359
|
|
|
359
|
-
|
|
360
|
+
Intercepte les opérations SQL destructives avant leur exécution sur la base de données.
|
|
360
361
|
|
|
361
362
|
### `warn-destructive-sql`
|
|
362
363
|
|
|
363
364
|
**Événement :** PreToolUse (Bash)
|
|
364
|
-
**
|
|
365
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter du SQL contenant `DROP TABLE`, `DROP DATABASE` ou `DELETE` sans clause `WHERE`.
|
|
365
366
|
|
|
366
367
|
Aucun paramètre.
|
|
367
368
|
|
|
@@ -370,7 +371,7 @@ Aucun paramètre.
|
|
|
370
371
|
### `warn-schema-alteration`
|
|
371
372
|
|
|
372
373
|
**Événement :** PreToolUse (Bash)
|
|
373
|
-
**
|
|
374
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter des instructions `ALTER TABLE`.
|
|
374
375
|
|
|
375
376
|
Aucun paramètre.
|
|
376
377
|
|
|
@@ -378,16 +379,16 @@ Aucun paramètre.
|
|
|
378
379
|
|
|
379
380
|
## Avertissements
|
|
380
381
|
|
|
381
|
-
Fournit aux agents
|
|
382
|
+
Fournit aux agents du contexte supplémentaire avant des opérations potentiellement risquées mais non destructives.
|
|
382
383
|
|
|
383
384
|
### `warn-large-file-write`
|
|
384
385
|
|
|
385
386
|
**Événement :** PreToolUse (Write)
|
|
386
|
-
**
|
|
387
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'écrire des fichiers de plus de 1 024 Ko.
|
|
387
388
|
|
|
388
389
|
**Paramètres :**
|
|
389
390
|
|
|
390
|
-
|
|
|
391
|
+
| Paramètre | Type | Défaut | Description |
|
|
391
392
|
|-------|------|---------|-------------|
|
|
392
393
|
| `thresholdKb` | `number` | `1024` | Seuil de taille de fichier en kilo-octets au-delà duquel un avertissement est émis. |
|
|
393
394
|
|
|
@@ -404,7 +405,7 @@ Fournit aux agents un contexte supplémentaire avant des opérations potentielle
|
|
|
404
405
|
```
|
|
405
406
|
|
|
406
407
|
<Note>
|
|
407
|
-
Le gestionnaire de hook impose une limite de 1 Mo sur les payloads stdin. Pour tester cette politique avec un contenu de petite taille, définissez `thresholdKb` à une valeur bien inférieure à 1024.
|
|
408
|
+
Le gestionnaire de hook impose une limite de 1 Mo sur les payloads en stdin. Pour tester cette politique avec un contenu de petite taille, définissez `thresholdKb` à une valeur bien inférieure à 1024.
|
|
408
409
|
</Note>
|
|
409
410
|
|
|
410
411
|
---
|
|
@@ -412,7 +413,7 @@ Le gestionnaire de hook impose une limite de 1 Mo sur les payloads stdin. Pour t
|
|
|
412
413
|
### `warn-package-publish`
|
|
413
414
|
|
|
414
415
|
**Événement :** PreToolUse (Bash)
|
|
415
|
-
**
|
|
416
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter `npm publish`.
|
|
416
417
|
|
|
417
418
|
Aucun paramètre.
|
|
418
419
|
|
|
@@ -421,7 +422,7 @@ Aucun paramètre.
|
|
|
421
422
|
### `warn-background-process`
|
|
422
423
|
|
|
423
424
|
**Événement :** PreToolUse (Bash)
|
|
424
|
-
**
|
|
425
|
+
**Comportement par défaut :** Demande à Claude d'être prudent lors du lancement de processus en arrière-plan via `nohup`, `&`, `disown` ou `screen`.
|
|
425
426
|
|
|
426
427
|
Aucun paramètre.
|
|
427
428
|
|
|
@@ -430,20 +431,56 @@ Aucun paramètre.
|
|
|
430
431
|
### `warn-global-package-install`
|
|
431
432
|
|
|
432
433
|
**Événement :** PreToolUse (Bash)
|
|
433
|
-
**
|
|
434
|
+
**Comportement par défaut :** Demande à Claude de confirmer avant d'exécuter `npm install -g`, `yarn global add` ou `pip install` sans environnement virtuel.
|
|
434
435
|
|
|
435
436
|
Aucun paramètre.
|
|
436
437
|
|
|
437
438
|
---
|
|
438
439
|
|
|
440
|
+
## Gestionnaires de paquets
|
|
441
|
+
|
|
442
|
+
Impose les gestionnaires de paquets que l'agent est autorisé à utiliser.
|
|
443
|
+
|
|
444
|
+
### `prefer-package-manager`
|
|
445
|
+
|
|
446
|
+
**Événement :** PreToolUse (Bash)
|
|
447
|
+
**Comportement par défaut :** Désactivé. Lorsqu'activé, bloque toute commande de gestionnaire de paquets ne figurant pas dans la liste `allowed` et demande à Claude de réécrire la commande avec un gestionnaire autorisé.
|
|
448
|
+
|
|
449
|
+
Détecte : pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
|
|
450
|
+
|
|
451
|
+
| Paramètre | Type | Défaut | Description |
|
|
452
|
+
|-----------|------|---------|-------------|
|
|
453
|
+
| `allowed` | string[] | `[]` | Noms des gestionnaires de paquets autorisés. Tout gestionnaire détecté absent de cette liste est bloqué. Lorsque la liste est vide, la politique est inactive. |
|
|
454
|
+
| `blocked` | string[] | `[]` | Noms de gestionnaires supplémentaires à bloquer en plus de la liste intégrée (ex. `['pdm', 'pipx']`). |
|
|
455
|
+
|
|
456
|
+
La liste de blocage intégrée couvre : pip, pip3, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo. Utilisez `blocked` pour ajouter des gestionnaires absents de cette liste.
|
|
457
|
+
|
|
458
|
+
**Exemple de configuration :**
|
|
459
|
+
|
|
460
|
+
```json
|
|
461
|
+
{
|
|
462
|
+
"enabledPolicies": ["prefer-package-manager"],
|
|
463
|
+
"policyParams": {
|
|
464
|
+
"prefer-package-manager": {
|
|
465
|
+
"allowed": ["uv", "bun"],
|
|
466
|
+
"blocked": ["pdm", "pipx"]
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
```
|
|
471
|
+
|
|
472
|
+
Avec cette configuration, `pip install flask` et `pdm install flask` sont tous deux refusés avec un message indiquant à Claude d'utiliser `uv` ou `bun` à la place. Les commandes comme `uv pip install flask` sont autorisées car `uv` figure dans la liste des autorisations et est vérifié en premier.
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
439
476
|
## Comportement de l'IA
|
|
440
477
|
|
|
441
|
-
Détecte
|
|
478
|
+
Détecte quand les agents se retrouvent bloqués ou se comportent de manière inattendue.
|
|
442
479
|
|
|
443
480
|
### `warn-repeated-tool-calls`
|
|
444
481
|
|
|
445
482
|
**Événement :** PreToolUse (tous les outils)
|
|
446
|
-
**
|
|
483
|
+
**Comportement par défaut :** Demande à Claude de reconsidérer son action lorsque le même outil est appelé 3 fois ou plus avec des paramètres identiques — signe courant que l'agent est bloqué dans une boucle.
|
|
447
484
|
|
|
448
485
|
Aucun paramètre.
|
|
449
486
|
|
|
@@ -451,14 +488,14 @@ Aucun paramètre.
|
|
|
451
488
|
|
|
452
489
|
## Workflow
|
|
453
490
|
|
|
454
|
-
Impose
|
|
491
|
+
Impose une discipline de fin de session. Ces politiques se déclenchent sur l'événement **Stop** et empêchent Claude de s'arrêter tant que chaque condition n'est pas remplie. Elles suivent une chaîne de dépendances naturelle : commit → push → PR → CI. Si une politique refuse, les politiques suivantes dans la chaîne sont ignorées (court-circuit sur deny).
|
|
455
492
|
|
|
456
493
|
Toutes les politiques de workflow sont **fail-open** : si l'outil requis n'est pas disponible (ex. `gh` non installé, pas de remote git), la politique autorise avec un message informatif expliquant pourquoi la vérification a été ignorée.
|
|
457
494
|
|
|
458
495
|
### `require-commit-before-stop`
|
|
459
496
|
|
|
460
497
|
**Événement :** Stop
|
|
461
|
-
**
|
|
498
|
+
**Comportement par défaut :** Refuse l'arrêt lorsqu'il existe des modifications non commitées (fichiers modifiés, indexés ou non suivis). Retourne un message informatif lorsque le répertoire de travail est propre.
|
|
462
499
|
|
|
463
500
|
Aucun paramètre.
|
|
464
501
|
|
|
@@ -467,11 +504,11 @@ Aucun paramètre.
|
|
|
467
504
|
### `require-push-before-stop`
|
|
468
505
|
|
|
469
506
|
**Événement :** Stop
|
|
470
|
-
**
|
|
507
|
+
**Comportement par défaut :** Refuse l'arrêt lorsqu'il existe des commits non pushés ou lorsque la branche courante n'a pas de branche de suivi distante. Suggère `git push -u` pour créer une branche de suivi si nécessaire. Fail-open si aucun remote n'est configuré.
|
|
471
508
|
|
|
472
509
|
**Paramètres :**
|
|
473
510
|
|
|
474
|
-
|
|
|
511
|
+
| Paramètre | Type | Défaut | Description |
|
|
475
512
|
|-------|------|---------|-------------|
|
|
476
513
|
| `remote` | `string` | `"origin"` | Nom du remote vers lequel pousser. |
|
|
477
514
|
|
|
@@ -492,7 +529,7 @@ Aucun paramètre.
|
|
|
492
529
|
### `require-pr-before-stop`
|
|
493
530
|
|
|
494
531
|
**Événement :** Stop
|
|
495
|
-
**
|
|
532
|
+
**Comportement par défaut :** Refuse l'arrêt lorsqu'aucune pull request n'existe pour la branche courante, ou lorsque la PR existante est fermée ou fusionnée. Demande à Claude de créer une PR avec `gh pr create`.
|
|
496
533
|
|
|
497
534
|
Aucun paramètre.
|
|
498
535
|
|
|
@@ -507,14 +544,14 @@ pull requests. Si `gh` n'est pas installé ou pas authentifié, la politique est
|
|
|
507
544
|
### `require-ci-green-before-stop`
|
|
508
545
|
|
|
509
546
|
**Événement :** Stop
|
|
510
|
-
**
|
|
547
|
+
**Comportement par défaut :** Refuse l'arrêt lorsque les vérifications CI échouent ou sont toujours en cours sur la branche courante. Vérifie à la fois les exécutions de workflow GitHub Actions et les vérifications de bots tiers (ex. CodeRabbit, SonarCloud, Codecov). Traite les conclusions `skipped` et `cancelled` comme des succès. Retourne un message informatif lorsque toutes les vérifications passent.
|
|
511
548
|
|
|
512
549
|
Aucun paramètre.
|
|
513
550
|
|
|
514
551
|
<Note>
|
|
515
552
|
Cette politique nécessite que [GitHub CLI](https://cli.github.com/) (`gh`) soit installé et authentifié.
|
|
516
553
|
Exécutez `gh auth login` avec un personal access token disposant du scope `repo` pour l'accès en lecture aux
|
|
517
|
-
exécutions de
|
|
554
|
+
exécutions de workflow Actions et à l'API Checks. Si `gh` n'est pas installé ou pas authentifié, la politique est fail-open et signale la raison à Claude.
|
|
518
555
|
</Note>
|
|
519
556
|
|
|
520
557
|
---
|
|
@@ -523,7 +560,7 @@ exécutions de workflows Actions et à l'API Checks. Si `gh` n'est pas installé
|
|
|
523
560
|
|
|
524
561
|
## Désactiver des politiques individuellement
|
|
525
562
|
|
|
526
|
-
Retirez une politique spécifique de `enabledPolicies` dans votre configuration, ou désactivez-la
|
|
563
|
+
Retirez une politique spécifique de `enabledPolicies` dans votre configuration, ou désactivez-la dans l'onglet Politiques du tableau de bord.
|
|
527
564
|
|
|
528
565
|
```json
|
|
529
566
|
{
|
|
@@ -534,4 +571,4 @@ Retirez une politique spécifique de `enabledPolicies` dans votre configuration,
|
|
|
534
571
|
}
|
|
535
572
|
```
|
|
536
573
|
|
|
537
|
-
Les politiques
|
|
574
|
+
Les politiques non listées dans `enabledPolicies` ne s'exécutent pas, même si des entrées `policyParams` existent pour elles.
|