Panoramica
Le politiche sono raggruppate in categorie:| Categoria | Politiche | Tipo di hook |
|---|---|---|
| Comandi pericolosi | block-sudo, block-rm-rf, block-curl-pipe-sh, block-failproofai-commands | PreToolUse |
| Comandi infra | block-kubectl, block-terraform, block-aws-cli, block-gcloud, block-az-cli, block-helm, block-gh-pipeline | PreToolUse |
| Secrets (sanitizer) | sanitize-jwt, sanitize-api-keys, sanitize-connection-strings, sanitize-private-key-content, sanitize-bearer-tokens | PostToolUse |
| Ambiente | block-env-files, protect-env-vars | PreToolUse |
| Accesso ai file | block-read-outside-cwd, block-secrets-write | PreToolUse |
| Git | block-push-master, block-work-on-main, block-force-push, warn-git-amend, warn-git-stash-drop, warn-all-files-staged | PreToolUse |
| Database | warn-destructive-sql, warn-schema-alteration | PreToolUse |
| Avvisi | warn-large-file-write, warn-package-publish, warn-background-process, warn-global-package-install | PreToolUse |
| Gestori di pacchetti | prefer-package-manager | PreToolUse |
| Workflow | require-commit-before-stop, require-push-before-stop, require-pr-before-stop, require-no-conflicts-before-stop, require-ci-green-before-stop | Stop |
block-— ferma l’agent dal procedere.warn-— fornisce all’agent contesto aggiuntivo per l’auto-correzione.sanitize-— rimuove dati sensibili dall’output dello strumento prima che l’agent li veda.
Spazi dei nomi
Ogni politica risiede in uno slot<namespace>/<name>. Le politiche built-in appartengono allo spazio dei nomi failproofai/ — ad esempio, failproofai/sanitize-jwt. Lo spazio dei nomi previene collisioni quando carichi anche politiche personalizzate o di terze parti con nomi brevi simili.
Nella tua configurazione puoi fare riferimento a una politica built-in utilizzando sia il suo nome breve che il suo nome qualificato; entrambi i moduli si risolvono nella stessa politica:
/, failproofai lo tratta come appartenente allo spazio dei nomi predefinito failproofai. I nomi che già contengono un / (ad es. myorg/foo, custom/my-hook) vengono mantenuti così come sono.
require-— blocca l’evento Stop finché le condizioni non sono soddisfatte.
Comandi pericolosi
Previeni che gli agent eseguano operazioni difficili da annullare o che potrebbero danneggiare il sistema host.block-sudo
Evento: PreToolUse (Bash)Predefinito: Nega qualsiasi comando
sudo.
Blocca le invocazioni che includono la parola chiave sudo. La ricerca di modelli viene eseguita sui token di comando analizzati, non sulla stringa grezza, per prevenire bypass tramite iniezione di operatori shell.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Prefissi di comando esatti consentiti. Ogni voce viene confrontata con i token argv analizzati. |
sudo systemctl status nginx è consentito, ma sudo rm /etc/hosts è negato.
I modelli vengono confrontati con token analizzati, non con la stringa di comando grezza. Questo previene bypass tramite operatori shell aggiunti (ad es.
sudo systemctl status x; rm -rf / non corrisponde a sudo systemctl status *).block-rm-rf
Evento: PreToolUse (Bash)Predefinito: Nega
rm -rf, rm -fr e forme di eliminazione ricorsiva simili.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPaths | string[] | [] | Percorsi sicuri per l’eliminazione ricorsiva (ad es. /tmp). |
block-curl-pipe-sh
Evento: PreToolUse (Bash)Predefinito: Nega
curl <url> | bash, curl <url> | sh, wget <url> | bash e modelli simili.
Nessun parametro.
block-failproofai-commands
Evento: PreToolUse (Bash)Predefinito: Nega i comandi che disinstallerebbero o disabiliterebbero failproofai stesso (ad es.
npm uninstall failproofai, failproofai policies --uninstall).
Nessun parametro.
Comandi infra
Interrompi gli agent di codifica dall’esecuzione di CLI infrastrutturali o dall’attivazione di pipeline CI/CD. Tutte le politiche in questa categoria sono opt-in (defaultEnabled: false) — gli agent che legittimamente necessitano di chiamare kubectl, terraform, ecc. non saranno disturbati a meno che tu non abiliti la politica. Quando abilitata, ogni invocazione della CLI corrispondente è negata a meno che il comando non corrisponda a una voce in allowPatterns.
La grammatica del modello è la stessa di block-sudo: i token vengono confrontati con argv analizzato, * è un wildcard per un token e qualsiasi comando contenente un operatore shell autonomo (&&, ||, |, ;) o un token con metacaratteri shell incorporati viene rifiutato prima della ricerca di allowlist per prevenire bypass di iniezione.
block-kubectl
Evento: PreToolUse (Bash)Predefinito: Nega qualsiasi invocazione
kubectl.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Prefissi di comando kubectl consentiti. |
kubectl get pods è consentito ma kubectl apply -f deploy.yaml è negato.
block-terraform
Evento: PreToolUse (Bash)Predefinito: Nega qualsiasi invocazione
terraform o tofu (OpenTofu).
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Prefissi di comando terraform/tofu consentiti. |
block-aws-cli
Evento: PreToolUse (Bash)Predefinito: Nega qualsiasi invocazione della CLI
aws.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Prefissi di comando CLI aws consentiti. |
block-gcloud
Evento: PreToolUse (Bash)Predefinito: Nega qualsiasi invocazione della CLI
gcloud (Google Cloud).
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Prefissi di comando gcloud consentiti. |
block-az-cli
Evento: PreToolUse (Bash)Predefinito: Nega qualsiasi invocazione della CLI
az (Azure).
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Prefissi di comando CLI az consentiti. |
block-helm
Evento: PreToolUse (Bash)Predefinito: Nega qualsiasi invocazione
helm.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Prefissi di comando helm consentiti. |
block-gh-pipeline
Evento: PreToolUse (Bash)Predefinito: Nega i seguenti sottocoman
gh che mutano lo stato o attivano pipeline:
gh workflow run,gh workflow enable,gh workflow disablegh run rerun,gh run cancelgh pr mergegh release create,gh release deletegh cache deletegh secret set,gh secret delete
gh di sola lettura come gh pr view, gh pr list, gh run list, gh release view e gh api repos/.../... non vengono corrisposti da questa politica — sono regolarmente necessari per i controlli di workflow (incluso il require-ci-green-before-stop di failproofai).
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPatterns | string[] | [] | Invocazioni scritte specifiche da consentire nonostante sarebbero altrimenti negate. |
Secrets (sanitizer)
Interrompi gli agent dal leaking di credenziali nel loro contesto o output. Le politiche sanitizer si attivano su eventi PostToolUse. Quando Claude esegue un comando Bash, legge un file o chiama qualsiasi strumento, queste politiche ispezionano l’output prima che venga restituito a Claude. Se viene rilevato un modello di secret, la politica restituisce una decisione deny che impedisce all’output di essere passato indietro.sanitize-jwt
Evento: PostToolUse (tutti gli strumenti)Predefinito: Nasconde i token JWT (tre segmenti base64url separati da
.).
Nessun parametro.
sanitize-api-keys
Evento: PostToolUse (tutti gli strumenti)Predefinito: Nasconde i formati comuni di chiavi API: Anthropic (
sk-ant-), OpenAI (sk-), GitHub PATs (ghp_), chiavi di accesso AWS (AKIA), chiavi Stripe (sk_live_, sk_test_) e chiavi API Google (AIza).
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
additionalPatterns | { regex: string; label: string }[] | [] | Modelli regex aggiuntivi da trattare come secret. |
sanitize-connection-strings
Evento: PostToolUse (tutti gli strumenti)Predefinito: Nasconde le stringhe di connessione al database che contengono credenziali incorporate (ad es.
postgresql://user:password@host/db).
Nessun parametro.
sanitize-private-key-content
Evento: PostToolUse (tutti gli strumenti)Predefinito: Nasconde i blocchi PEM (
-----BEGIN PRIVATE KEY-----, -----BEGIN RSA PRIVATE KEY-----, ecc.).
Nessun parametro.
sanitize-bearer-tokens
Evento: PostToolUse (tutti gli strumenti)Predefinito: Nasconde le intestazioni
Authorization: Bearer <token> dove il token è di 20 o più caratteri.
Nessun parametro.
Ambiente
Proteggi la configurazione dell’ambiente sensibile dalla lettura o dall’esposizione da parte degli agent.block-env-files
Evento: PreToolUse (Bash, Read)Predefinito: Nega la lettura di file
.env tramite cat .env, chiamate dello strumento Read con .env come percorso del file, ecc.
Non blocca .envrc o altri file adiacenti all’ambiente — solo i file denominati esattamente .env.
Nessun parametro.
protect-env-vars
Evento: PreToolUse (Bash)Predefinito: Nega i comandi che stampano variabili di ambiente:
printenv, env, echo $VAR.
Nessun parametro.
Accesso ai file
Mantieni gli agent che lavorano all’interno dei confini del progetto e lontani da file sensibili.block-read-outside-cwd
Evento: PreToolUse (Read, Bash)Predefinito: Nega la lettura di file al di fuori della radice del progetto. Il confine è
CLAUDE_PROJECT_DIR (impostato una volta per sessione da Claude Code), con un fallback alla directory di lavoro corrente della sessione quando quella variabile non è impostata. L’utilizzo della radice del progetto piuttosto che il cwd live significa che il confine rimane stabile anche dopo che Claude si sposta in una sottodirectory.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowPaths | string[] | [] | Prefissi di percorso assoluto consentiti anche se al di fuori della radice del progetto. |
block-secrets-write
Evento: PreToolUse (Write, Edit)Predefinito: Nega le scritture su file comunemente utilizzati per chiavi private e certificati:
id_rsa, id_ed25519, *.key, *.pem, *.p12, *.pfx.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
additionalPatterns | string[] | [] | Modelli di nome file aggiuntivi (stile glob) da bloccare. |
Git
Previeni i push accidentali, force-push e errori di branch difficili da annullare.block-push-master
Evento: PreToolUse (Bash)Predefinito: Nega
git push origin main e git push origin master.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | Nomi di branch che non possono essere push direttamente. |
block-work-on-main
Evento: PreToolUse (Bash)Predefinito: Nega
git commit, git merge, git rebase e git cherry-pick mentre l’albero di lavoro è su main o master. La creazione e il cambio di branch (git checkout, git checkout -b, git switch, git switch -c) non sono interessati.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
protectedBranches | string[] | ["main", "master"] | Nomi di branch su cui commit/merge/rebase/cherry-pick è negato. |
block-force-push
Evento: PreToolUse (Bash)Predefinito: Nega
git push --force e git push -f.
Nessun parametro specifico della politica. Usa il hint trasversale per suggerire alternative:
warn-git-amend
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a procedere con cautela quando esegue
git commit --amend. Non blocca il comando.
Nessun parametro.
warn-git-stash-drop
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a confermare prima di eseguire
git stash drop. Non blocca il comando.
Nessun parametro.
warn-all-files-staged
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a revisionare quello che sta mettendo in stage quando esegue
git add -A o git add .. Non blocca il comando.
Nessun parametro.
Database
Cattura le operazioni SQL distruttive prima che vengano eseguite sul tuo database.warn-destructive-sql
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a confermare prima di eseguire SQL contenente
DROP TABLE, DROP DATABASE o DELETE senza una clausola WHERE.
Nessun parametro.
warn-schema-alteration
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a confermare prima di eseguire istruzioni
ALTER TABLE.
Nessun parametro.
Avvisi
Fornisci agli agent contesto aggiuntivo prima di operazioni potenzialmente rischiose ma non distruttive.warn-large-file-write
Evento: PreToolUse (Write)Predefinito: Istruisce Claude a confermare prima di scrivere file più grandi di 1024 KB. Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
thresholdKb | number | 1024 | Soglia di dimensione del file in kilobyte al di sopra della quale viene emesso un avviso. |
Il gestore hook applica un limite stdin di 1 MB sui payload. Per testare questa politica con contenuto piccolo, imposta
thresholdKb su un valore ben al di sotto di 1024.warn-package-publish
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a confermare prima di eseguire
npm publish.
Nessun parametro.
warn-background-process
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a stare attento quando avvia processi in background tramite
nohup, &, disown o screen.
Nessun parametro.
warn-global-package-install
Evento: PreToolUse (Bash)Predefinito: Istruisce Claude a confermare prima di eseguire
npm install -g, yarn global add o pip install senza un ambiente virtuale.
Nessun parametro.
Gestori di pacchetti
Applica quali gestori di pacchetti l’agent è autorizzato a utilizzare.prefer-package-manager
Evento: PreToolUse (Bash)Predefinito: Disabilitato. Quando abilitato, blocca qualsiasi comando del gestore di pacchetti non nell’elenco
allowed e dice a Claude di riscrivere il comando utilizzando un gestore consentito.
Rileva: pip, pip3, python -m pip, npm, npx, yarn, pnpm, pnpx, bun, bunx, uv, poetry, pipenv, conda, cargo.
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowed | string[] | [] | Nomi dei gestori di pacchetti consentiti. Qualsiasi gestore rilevato non in questo elenco viene bloccato. Quando vuoto, la politica è un no-op. |
blocked | string[] | [] | Nomi di gestori aggiuntivi da bloccare al di là dell’elenco integrato (ad es. ['pdm', 'pipx']). |
blocked per aggiungere gestori non in questo elenco.
Configurazione di esempio:
pip install flask che pdm install flask sono negati con un messaggio che dice a Claude di usare uv o bun invece. Comandi come uv pip install flask sono consentiti perché uv è nell’allowlist e viene verificato per primo.
Comportamento dell’IA
Rileva quando gli agent rimangono bloccati o si comportano inaspettatamente.warn-repeated-tool-calls
Evento: PreToolUse (tutti gli strumenti)Predefinito: Istruisce Claude a riconsiderare quando lo stesso strumento viene chiamato 3+ volte con parametri identici — un segno comune che l’agent è bloccato in un loop. Nessun parametro.
Workflow
Applica un workflow disciplinato di fine sessione. Queste politiche si attivano sull’evento Stop e negano all’agent di fermarsi finché ogni condizione non è soddisfatta. Seguono una catena di dipendenze naturale: commit → push → PR → CI. Se una politica nega, le politiche successive nella catena vengono saltate (deny short-circuits). Tutte le politiche di workflow sono fail-open: se lo strumento richiesto non è disponibile (ad es.gh non installato, nessun remote git), la politica consente con un messaggio informativo che spiega perché il controllo è stato saltato.
Semantica Stop per CLI
L’applicazione Stop sembra leggermente diversa tra i sette CLI supportati perché ognuno espone un contratto hook di fine agent diverso. Il risultato è lo stesso — l’agent non se la cava fermandosi mentre un gate di workflow sta fallendo — ma la meccanica differisce. La tabella seguente riassume; solo Pi ha una stranezza visibile all’utente che vale la pena capire prima di abilitare una politicarequire-*-before-stop.
| CLI | Quando il gate si attiva | Cosa vedi |
|---|---|---|
| Claude Code | Stesso loop dell’agent, immediatamente | Claude continua a lavorare — risolve il problema, quindi tenta di finire di nuovo. Nessuna interruzione visibile per te. |
| Codex | Stesso loop dell’agent, immediatamente | Uguale a Claude. |
| GitHub Copilot CLI | Stesso loop dell’agent, immediatamente | Uguale a Claude (usa il canale di riprovazione {decision:"block", reason} di Copilot — verificato empiricamente su Copilot CLI 1.0.41). |
| Cursor Agent | Stesso loop dell’agent, immediatamente | Uguale a Claude (usa il canale {followup_message} di Cursor — limitato a loop_limit, default 5 riprovazioni). |
| Gemini CLI | Stesso loop dell’agent, immediatamente | Uguale a Claude (usa il canale {decision:"block", reason} di Gemini su AfterAgent). |
| OpenCode | Stesso loop dell’agent, immediatamente | Uguale a Claude (usa la chiamata SDK client.session.prompt(...) di OpenCode instradata attraverso hookSpecificOutput.additionalContext). |
| Pi (pi-coding-agent) | Turno utente successivo | Pi si ferma visibilmente quando il gate si attiva — il suo loop dell’agent esce e sei restituito al prompt. Il gate si attiva quindi la prossima volta che invii un prompt: failproofai antepone una direttiva MANDATORY ACTION REQUIRED al prompt di sistema di quel turno, istruendo l’LLM a completare il passo di workflow (commit, push, ecc.) prima di fare quello che hai chiesto. |
Limitazione di Pi. L’evento
AgentEndEvent di Pi (l’equivalente upstream dell’hook Stop di Claude) non ha un tipo Result — nel momento in cui si attiva, il loop dell’agent di Pi è già uscito. Pi non può essere forzato a riprovare lo stesso loop come Claude / Copilot / Cursor / Gemini / OpenCode possono. failproofai sposta il gate all’evento before_agent_start di Pi (che si attiva dopo il prossimo prompt utente) in modo che il controllo del workflow si applichi ancora, solo al turno successivo anziché a quello corrente.Cosa significa in pratica:- Dopo che Pi si ferma, il motivo di negazione viene catturato in memoria con chiave id sessione Pi. Il prossimo prompt che invii nello stesso processo Pi lo scarica: l’LLM vede la direttiva
MANDATORY ACTION REQUIREDin cima al suo prompt di sistema, esegue il commit (o push / apre il PR / attende CI), e solo allora continua con la tua richiesta. Il motivo di negazione catturato è una tantum — una volta scaricato, il gate è libero. - Il gate è limitato dalla durata del processo Pi. Se fai
Ctrl+CPi o esci tra i turni, la voce in memoria viene eliminata insieme al processo e il gate viene saltato. Claude, Copilot, Cursor, Gemini e OpenCode hanno lo stesso limite (uccidi l’agent e il gate viene saltato) — Pi lo rende solo più visibile perché l’agent esce visibilmente prima che il gate si attivi. - Un deny in sospeso viene anche cancellato su
session_shutdownper qualsiasi motivo (new/resume/fork/quit), quindi un gate stantio da una sessione precedente non può trapelare in una sessione nuova avviata nello stesso processo Pi.
Stop in uno qualsiasi degli altri sei CLI supportati. Stiamo tracciando Pi upstream per un futuro tipo Result su AgentEndEvent che ci permetterebbe di chiudere questa lacuna.require-commit-before-stop
Evento: StopPredefinito: Nega l’arresto quando ci sono modifiche non committate (file modificati, staged o non tracciati). Restituisce un messaggio informativo quando la directory di lavoro è pulita. Nessun parametro.
require-push-before-stop
Evento: StopPredefinito: Nega l’arresto quando ci sono commit non push o quando il branch corrente non ha un branch remoto di tracciamento. Suggerisce
git push -u per creare un branch di tracciamento se necessario. Fallisce open se nessun remote è configurato.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
remote | string | "origin" | Nome remoto su cui fare il push. |
require-pr-before-stop
Evento: StopPredefinito: Nega l’arresto quando nessuna pull request esiste per il branch corrente, o quando il PR esistente è chiuso senza essere fuso. Istruisce Claude a creare un PR con
gh pr create. Quando il PR è fuso, la politica consente (il lavoro è stato spedito) e il messaggio suggerisce di uscire dal branch (git checkout main && git pull).
Nessun parametro.
Questa politica richiede che GitHub CLI (
gh) sia installato e autenticato.
Esegui gh auth login con un token di accesso personale che ha scope repo per l’accesso in lettura alle
pull request. Se gh non è installato o non autenticato, la politica fallisce open e segnala il motivo a Claude.require-no-conflicts-before-stop
Evento: StopPredefinito: Nega l’arresto quando il branch corrente non può fondersi pulitamente nel branch base. La politica prima conferma che esiste un PR
OPEN su GitHub per il branch — senza uno, non c’è un target di fusione da applicare, quindi l’intera politica short-circuits per consentire. Una volta confermato un PR OPEN, due sonde indipendenti vengono eseguite:
- Locale —
git merge-tree --write-tree --name-only origin/<baseBranch> HEAD. Su conflitto, il messaggio deny nomina i file in conflitto in modo che Claude sappia esattamente cosa risolvere. - GitHub — riutilizza il risultato di
gh pr view --json mergeable,stategià recuperato nel precontrollo. Cattura conflitti che unorigin/<baseBranch>locale stantio perderebbe (ad es. qualcuno ha sbarcato un PR conflittuale sumainda quando è stato fatto l’ultimo fetch). Un risultatoCONFLICTINGnega. Un risultatoUNKNOWNnega anche e istruisce Claude ad aspettare ~10 secondi e ri-controllare prima di tentare di fermarsi di nuovo — questo previene falsi negativi mentre GitHub ricalcola.
gh non è installato, nessun PR esiste per il branch, lo stato del PR non è OPEN (ad es. MERGED, CLOSED), o gh pr view restituisce output non parsabile. Fallisce anche open quando origin/<baseBranch> manca localmente o quando nessun commit è in anticipo di base — quei fall-through del Layer 1 consultano comunque la mergeability PR in cache prima di consentire.
Parametri:
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
baseBranch | string | "main" | Branch base da controllare per conflitti. |
GitHub CLI (
gh) è richiesto per questa politica. La politica usa gh pr view per confermare
che esiste un PR OPEN prima di eseguire qualsiasi sonda di conflitto — senza gh, la politica
short-circuits per consentire. Esegui gh auth login con un token di accesso personale che ha
scope repo per l’accesso in lettura alle pull request.require-ci-green-before-stop
Evento: StopPredefinito: Nega l’arresto quando i controlli CI stanno fallendo o ancora in esecuzione sul branch corrente. Controlla sia le esecuzioni del workflow GitHub Actions che i controlli bot di terze parti (ad es. CodeRabbit, SonarCloud, Codecov). Tratta
skipped, cancelled e neutral come non-fallenti (quest’ultimo copre ad es. avvisi di Socket Security su PR di contributori esterni, dove l’app intenzionalmente segnala neutral invece di success/failure). Restituisce un messaggio informativo quando tutti i controlli passano.
Nessun parametro.
Questa politica richiede che GitHub CLI (
gh) sia installato e autenticato.
Esegui gh auth login con un token di accesso personale che ha scope repo per l’accesso in lettura alle
esecuzioni del workflow Actions e all’API Checks. Se gh non è installato o non autenticato, la politica fallisce open e segnala il motivo a Claude.Disabilitare singole politiche
Rimuovi una politica specifica daenabledPolicies nella tua configurazione, o disabilitala nel tab Policies del dashboard.
enabledPolicies non vengono eseguite, anche se esistono voci policyParams per loro.
