Ana içeriğe atla

title: Yapılandırma description: “Yapılandırma dosyası biçimi, üç kapsamlı sistem ve birleştirme kuralları” icon: gear

failproofai, hangi politikaların aktif olduğunu, nasıl davrandıklarını ve özel politikaların nereden yüklendiğini kontrol etmek için JSON yapılandırma dosyalarını kullanır. Yapılandırma, takımınızla paylaşmak için kolay olacak şekilde tasarlanmıştır - bunu deponuza gönderin ve her geliştirici aynı agent güvenlik ağını alır.

Yapılandırma kapsamları

Üç yapılandırma kapsamı vardır ve öncelik sırasına göre değerlendirilirler:
KapsamDosya yoluAmaç
project.failproofai/policies-config.jsonDepo başına ayarlar, sürüm kontrolüne gönderilir
local.failproofai/policies-config.local.jsonKişisel depo başına geçersiz kılmalar, gitignore’da
global~/.failproofai/policies-config.jsonTüm projeler genelindeki kullanıcı düzeyindeki varsayılanlar
failproofai bir hook olayı aldığında, geçerli çalışma dizini için var olan üç dosyanın tümünü yükler ve birleştirir.

Birleştirme kuralları

enabledPolicies - üç kapsamın tümünün birleşimi. Herhangi bir düzeyde etkinleştirilen bir politika etkindir.
project:  ["block-sudo"]
local:    ["block-rm-rf"]
global:   ["block-sudo", "sanitize-api-keys"]

resolved: ["block-sudo", "block-rm-rf", "sanitize-api-keys"]  ← tekilleştirilmiş birleşim
policyParams - belirli bir politika için parametreleri tanımlayan ilk kapsam tamamen kazanır. Bir politikanın parametreleri içinde derin birleştirme yoktur.
project:  block-sudo → { allowPatterns: ["sudo apt-get update"] }
global:   block-sudo → { allowPatterns: ["sudo systemctl status"] }

resolved: { allowPatterns: ["sudo apt-get update"] }   ← project kazanır, global yoksayılır
project:  (block-sudo girdisi yok)
local:    (block-sudo girdisi yok)
global:   block-sudo → { allowPatterns: ["sudo systemctl status"] }

resolved: { allowPatterns: ["sudo systemctl status"] }  ← global'e düşer
customPoliciesPath - onu tanımlayan ilk kapsam kazanır. llm - onu tanımlayan ilk kapsam kazanır.

Yapılandırma dosyası biçimi

{
  "enabledPolicies": [
    "block-sudo",
    "block-rm-rf",
    "block-push-master",
    "sanitize-api-keys",
    "sanitize-jwt",
    "block-env-files",
    "block-read-outside-cwd"
  ],
  "policyParams": {
    "block-sudo": {
      "allowPatterns": ["sudo systemctl status", "sudo journalctl"]
    },
    "block-push-master": {
      "protectedBranches": ["main", "release", "prod"]
    },
    "block-rm-rf": {
      "allowPaths": ["/tmp"]
    },
    "block-read-outside-cwd": {
      "allowPaths": ["/shared/data", "/opt/company"]
    },
    "sanitize-api-keys": {
      "additionalPatterns": [
        { "regex": "myco_[A-Za-z0-9]{32}", "label": "MyCo API key" }
      ]
    },
    "warn-large-file-write": {
      "thresholdKb": 512
    }
  },
  "customPoliciesPath": "/home/alice/myproject/my-policies.js"
}

Alan başvurusu

enabledPolicies

Tür: string[] Etkinleştirilecek politika adlarının listesi. Adlar, failproofai policies tarafından gösterilen politika tanımlayıcılarıyla tam olarak eşleşmelidir. Tam liste için Yerleşik Politikalar bölümüne bakın. enabledPolicies içinde olmayan politikalar, policyParams içinde girdileri olsa bile etkin değildir.

policyParams

Tür: Record<string, Record<string, unknown>> Politika başına parametre geçersiz kılmaları. Dış anahtar politika adıdır; iç anahtarlar politikaya özgüdür. Her politika, mevcut parametrelerini Yerleşik Politikalar içinde belgelemir. Bir politikanın parametreleri varsa ancak bunları belirtmezseniz, politikanın yerleşik varsayılanları kullanılır. policyParams yapılandırırmayan kullanıcılar önceki sürümlerle aynı davranışı alırlar. Bir politikanın params bloğu içindeki bilinmeyen anahtarlar, hook tetiklendiğinde sessizce yoksayılır ancak failproofai policies çalıştırdığınızda uyarılar olarak işaretlenir.

hint (çapraz kesme)

Tür: string (isteğe bağlı) Bir politika deny veya instruct döndürdüğünde nedene eklenen bir ileti. Bunu, politikanın kendisini değiştirmeden Claude’a işlem yapılabilir rehberlik sağlamak için kullanın. Herhangi bir politika türüyle çalışır — yerleşik, özel (custom/), proje kuralı (.failproofai-project/) veya kullanıcı kuralı (.failproofai-user/).
{
  "policyParams": {
    "block-force-push": {
      "hint": "Bunun yerine yeni bir dal oluşturmayı deneyin."
    },
    "block-sudo": {
      "allowPatterns": ["sudo apt-get"],
      "hint": "sudo olmadan apt-get'i doğrudan kullanın."
    },
    "custom/my-policy": {
      "hint": "Önce kullanıcıdan onay alın."
    }
  }
}
block-force-push reddettiğinde, Claude şunu görür: “Zorla push yapmak engelleniyor. Bunun yerine yeni bir dal oluşturmayı deneyin.” String olmayan değerler ve boş diziler sessizce yoksayılır. hint ayarlanmazsa, davranış değişmez (geriye dönük uyumlu).

customPoliciesPath

Tür: string (mutlak yol) Özel hook politikalarını içeren JavaScript dosyasının yolu. Bu, failproofai policies --install --custom <path> tarafından otomatik olarak ayarlanır (yol depolanmadan önce mutlak olarak çözülür). Dosya her hook olayında yeniden yüklenir - önbelleğe alma yoktur. Yazma ayrıntıları için Özel Politikalar bölümüne bakın.

Kural tabanlı politikalar

Açık customPoliciesPath öğesine ek olarak, failproofai .failproofai/policies/ dizinlerinden policy dosyalarını otomatik olarak keşfeder ve yükler:
DüzeyDizinKapsam
Proje.failproofai/policies/Sürüm kontrolü aracılığıyla takımla paylaşılır
Kullanıcı~/.failproofai/policies/Kişisel, tüm projelere uygulanır
Dosya eşleştirmesi: Yalnızca *policies.{js,mjs,ts} ile eşleşen dosyalar yüklenir (ör. security-policies.mjs, workflow-policies.js). Dizindeki diğer dosyalar yoksayılır. Yapılandırma gerekli değil: Kural politikaları policies-config.json içinde girdiler gerektirmez. Dosyaları dizine bırakın ve sonraki hook olayında seçilecektir. Birleşim yükleme: Hem proje hem de kullanıcı kural dizinleri taranır. Her iki düzeydeki tüm eşleşen dosyalar yüklenir (customPoliciesPath ilk kapsam kazanır’ı kullandığından farklı olarak). Daha fazla ayrıntı ve örnek için Özel Politikalar bölümüne bakın.

llm

Tür: object (isteğe bağlı) AI çağrıları yapan politikalar için LLM istemci yapılandırması. Çoğu kurulum için gerekli değil.
{
  "llm": {
    "model": "claude-sonnet-4-6",
    "apiKey": "sk-ant-..."
  }
}

CLI’dan yapılandırmayı yönetme

policies --install ve policies --uninstall komutları Claude Code’un settings.json dosyasına yazarken (hook giriş noktaları), policies-config.json doğrudan yönettiğiniz dosyadır. İkisi ayrıdır:
  • settings.json - Claude Code’a her tool kullanımında failproofai --hook <event> çağırmasını söyler
  • policies-config.json - failproofai’ye hangi politikaları değerlendireceğini ve hangi parametrelerle değerlendireceğini söyler
policies-config.json dosyasını herhangi bir zamanda doğrudan düzenleyebilirsiniz; değişiklikler yeniden başlatmaya gerek kalmadan sonraki hook olayında geçerli olur.

Örnek: takım varsayılanları ile proje düzeyindeki yapılandırma

.failproofai/policies-config.json dosyasını deponuza gönderin:
{
  "enabledPolicies": [
    "block-sudo",
    "block-rm-rf",
    "block-push-master",
    "sanitize-api-keys",
    "block-env-files"
  ],
  "policyParams": {
    "block-push-master": {
      "protectedBranches": ["main", "release", "hotfix"]
    }
  }
}
Ardından her geliştirici, takım arkadaşlarını etkilemeden kişisel geçersiz kılmalar için .failproofai/policies-config.local.json (gitignore’da) oluşturabilir.