Sparround

İcazələr və təhlükəsiz iş rejimi

Agent sizin adınızdan fayl dəyişir və əmr işə salır, ona görə icazə sistemi alətin təhlükəsizlik modelidir. İki mexanizm var:

1. İcazə rejimləri — sessiyanın ümumi davranışını təyin edir:

  • default (interfeysdə Manual) — hər alətin ilk istifadəsində soruşur.
  • plan — agent oxuyur və araşdırır, amma mənbə fayllarını dəyişmir.
  • acceptEdits — fayl redaktələrini və mkdir, mv kimi adi fayl əmrlərini avtomatik qəbul edir.
  • auto — hərəkətləri fon yoxlaması ilə avtomatik təsdiqləyir.
  • dontAsk — icazə qaydalarında olmayan hər şeyi rədd edir (məhdud CI icraları üçün).
  • bypassPermissions — bütün soruşmaları keçir. Yalnız izolyasiya olunmuş mühitdə (konteyner, VM).

2. İcazə qaydaları — konkret alət və əmrlər üçün allow / ask / deny siyahıları.

json
{
  "permissions": {
    "allow": [
      "Bash(./gradlew :app:compileDebugKotlin)",
      "Bash(./gradlew :app:testDebugUnitTest)",
      "Bash(./gradlew lint*)",
      "Bash(git status *)",
      "Bash(git diff *)",
      "Bash(git log *)"
    ],
    "ask": [
      "Bash(git commit *)",
      "Bash(git push *)"
    ],
    "deny": [
      "Bash(./gradlew publish*)",
      "Read(./local.properties)",
      "Read(./**/*.jks)",
      "Read(./**/google-services.json)"
    ]
  }
}

`.claude/settings.json` — Android layihəsi üçün icazə qaydaları. Repo-ya commit edilir və bütün komanda üçün eyni bazanı qurur.

Qayda sintaksisiNəyə uyğun gəlir
`Bash`Bütün shell əmrləri
`Bash(./gradlew test*)``./gradlew test` ilə başlayan əmrlər (prefiks uyğunluğu)
`Read(./local.properties)`Konkret faylın oxunması
`WebFetch(domain:example.com)`Həmin domenə sorğular

Prioritet deny-first-dir: deny qaydası allow qaydasını üstələyir. Bu, Bash bütövlükdə icazə verilsə belə, konkret təhlükəli əmri bloklamağa imkan verir. Təşkilat səviyyəsində qoyulan deny qaydalarını developer öz konfiqurasiyası ilə ləğv edə bilmir.

Android layihəsində xüsusi diqqət tələb edən fayllar:

  • local.properties — SDK yolu, bəzən açarlar.
  • *.jks, *.keystore — imzalama açarları.
  • google-services.json, *.p8, *.p12 — servis konfiqurasiyaları və sertifikatlar.
  • gradle.properties — bəzən publish credential-ları saxlayır.

Bunları deny siyahısına salmaq həm təsadüfi oxunmanın, həm də məlumatın kontekstə (və oradan model sorğusuna) düşməsinin qarşısını alır.

📚 Mənbələr və sənədlər