Folder terpercaya
Konfigurasi folder terpercaya untuk mengontrol akses Bob Shell.
Folder terpercaya memberimu kontrol atas proyek mana yang dapat digunakan dengan Bob Shell. Kamu harus menyetujui sebuah folder sebelum Bob Shell memuat konfigurasi apa pun yang spesifik untuk proyek tersebut, sehingga kamu terlindungi dari kode yang berpotensi berbahaya.
Fitur folder terpercaya dinonaktifkan secara default. Untuk mengaktifkannya, buka menu /settings dan atur Folder Trust ke true. Perubahan ini memerlukan restart agar berlaku.
Cara kerja folder terpercaya
Saat kamu menjalankan Bob Shell dari sebuah folder untuk pertama kalinya, dialog kepercayaan muncul secara otomatis dan memintamu membuat pilihan:
- Trust folder: Berikan kepercayaan penuh pada folder saat ini (misalnya,
my-project) - Trust parent folder: Berikan kepercayaan pada direktori induk (misalnya,
safe-projects), yang secara otomatis mempercayai semua subdirektorinya. Gunakan opsi ini jika kamu menyimpan semua proyek amanmu di satu lokasi - Don't trust: Tandai folder sebagai tidak terpercaya. Bob Shell beroperasi dalam safe mode yang dibatasi
Pilihanmu disimpan di ~/.bob/trustedFolders.json, sehingga kamu hanya ditanya sekali per folder.
Tingkat kepercayaan
File ~/.bob/trustedFolders.json menyimpan satu entri kepercayaan per folder. Setiap entri menggunakan salah satu dari tiga tingkat kepercayaan:
| Tingkat kepercayaan | Efek |
|---|---|
TRUST_FOLDER | Memberikan kepercayaan penuh pada path folder yang tepat. Pengaturan proyek, hook, mode, skill, dan server MCP semuanya dimuat secara normal. |
TRUST_PARENT | Memberikan kepercayaan penuh pada direktori yang ditentukan dan semua subdirektori di bawahnya. Gunakan tingkat ini untuk mencakup root workspace yang berisi beberapa repo. |
DONT_TRUST | Menandai folder sebagai tidak terpercaya. Bob Shell berjalan dalam safe mode yang dibatasi dan memblokir semua konfigurasi spesifik proyek. Lihat Dampak folder tidak terpercaya. |
Folder yang tidak memiliki entri di ~/.bob/trustedFolders.json disebut belum diputuskan. Cara Bob Shell memperlakukan folder yang belum diputuskan bergantung pada apakah fitur folder terpercaya diaktifkan. Lihat Sesi non-interaktif untuk detailnya.
Dampak folder tidak terpercaya
Ketika sebuah folder tidak terpercaya, Bob Shell berjalan dalam safe mode yang dibatasi. Fitur-fitur berikut dinonaktifkan atau diabaikan:
| Fitur | Perilaku dalam safe mode |
|---|---|
| Pengaturan proyek | .bob/settings.json tidak dimuat. Alat kustom dan konfigurasi yang berpotensi berbahaya diblokir. |
| Persetujuan otomatis alat | Kamu selalu diminta konfirmasi sebelum alat apa pun berjalan, meskipun persetujuan otomatis diaktifkan secara global. |
| Server MCP | Bob Shell tidak akan mencoba terhubung ke server MCP mana pun. |
| Mode kustom | Mode yang didefinisikan di folder proyek tidak tersedia. Hanya mode bawaan dan mode yang kamu definisikan secara global yang dapat digunakan. |
| Skill | Skill yang dibundel dengan proyek tidak dimuat. Hanya skill yang tersedia secara global dan kemampuan bawaan yang aktif. |
| Subagents | Subagent kustom dari folder proyek tidak tersedia. Agen tidak dapat mendelegasikan pekerjaan ke helper yang disediakan proyek. |
| Instruksi proyek | File panduan seperti AGENTS.md dan aturan proyek kustom tidak dibaca. Agen beroperasi tanpa instruksi kustom proyek. |
Memberikan kepercayaan pada sebuah folder membuka fungsionalitas penuh Bob Shell untuk workspace tersebut.
Mengelola pengaturan kepercayaan
- Cara kepercayaan diselesaikan
- Bob Shell memeriksa
~/.bob/trustedFolders.jsonuntuk keputusan yang sudah ada bagi folder saat ini. - Mengubah kepercayaan folder saat ini
- Jalankan perintah slash
/permissionsdari dalam Bob Shell. Dialog interaktif akan muncul, memungkinkanmu mengubah tingkat kepercayaan untuk folder saat ini. - Melihat semua aturan kepercayaan
- Periksa
~/.bob/trustedFolders.jsondi direktori home-mu untuk daftar lengkap semua aturan folder terpercaya dan tidak terpercaya.
Sesi non-interaktif
Tidak seperti mode interaktif, sesi non-interaktif (bob run) tidak pernah menampilkan dialog kepercayaan. Bob Shell beroperasi secara diam-diam berdasarkan keputusan kepercayaan yang sudah ada.
Perilaku default saat fitur dinonaktifkan
Ketika fitur folder terpercaya dinonaktifkan (default), Bob Shell memperlakukan setiap folder sebagai terpercaya. Pengaturan proyek, hook, mode, skill, dan server MCP dimuat untuk setiap folder tanpa batasan, terlepas dari apakah ada entri di ~/.bob/trustedFolders.json.
Perilaku saat fitur diaktifkan
Ketika fitur folder terpercaya diaktifkan, Bob Shell mengevaluasi tingkat kepercayaan folder kerja sebelum memuat konten spesifik proyek apa pun:
- Folder belum diputuskan (tidak ada entri di
~/.bob/trustedFolders.json): Folder diperlakukan sebagai terpercaya. Pengaturan proyek dan hook dimuat secara normal. - Entri
TRUST_FOLDERatauTRUST_PARENT: Folder terpercaya. Fungsionalitas penuh tersedia. - Entri
DONT_TRUST: Bob Shell menampilkan error dan tidak berjalan:<folder> is not a trusted folder. Pass --trust to run in this folder, or run Bob Shell interactively and choose a trust level.
Mengaktifkan fitur folder terpercaya saja tidak memblokir eksekusi hook untuk folder yang belum ada keputusan kepercayaannya. Folder yang belum diputuskan — misalnya, repository yang baru di-clone di pipeline CI/CD — diperlakukan sebagai terpercaya. Hanya entri DONT_TRUST yang eksplisit yang mencegah hook dan pengaturan proyek dimuat.
Eksekusi hook dalam mode headless
Hook global yang didefinisikan di ~/.bob/settings/settings.json dijalankan untuk setiap folder yang tidak secara eksplisit ditandai DONT_TRUST, termasuk folder yang belum diputuskan. Hook workspace yang didefinisikan di .bob/settings.json di dalam proyek juga tunduk pada kepercayaan folder: hook tersebut hanya dimuat ketika folder terpercaya atau belum diputuskan, dan diabaikan secara diam-diam ketika folder DONT_TRUST.
Untuk memahami hook mana yang dikonfigurasi dan apa yang dilakukannya sebelum menjalankan bob run terhadap repository yang tidak dikenal, lihat Lifecycle hooks.
Perilaku flag berdasarkan mode
Flag --trust dan --auto-approve berperilaku berbeda tergantung pada cara Bob Shell diluncurkan. Pilih modemu untuk melihat perilaku yang relevan:
--trust- Folder disimpan secara permanen sebagai terpercaya. Bob Shell menulis entri terpercaya untuk direktori saat ini ke
~/.bob/trustedFolders.jsondan melewati dialog kepercayaan saat akses pertama. Ini setara dengan membuka folder dan memilih "Trust folder" secara manual. --auto-approve- Persetujuan otomatis ditekan secara diam-diam di folder yang tidak terpercaya. Kamu tetap diminta konfirmasi sebelum setiap alat berjalan.
--trust- Folder diperlakukan sebagai terpercaya hanya untuk satu kali jalankan tersebut. Keputusan kepercayaan tidak disimpan secara permanen dan tidak ada yang ditulis ke trust store.
Mengamankan pipeline otomasi
Jika kamu menjalankan bob run di pipeline CI/CD terhadap repository yang tidak kamu kendalikan — misalnya, repo pihak ketiga atau open source yang di-clone sebagai bagian dari build — lakukan langkah-langkah berikut untuk mencegah eksekusi kode hook yang tidak terpercaya.
Sebelum memulai: Aktifkan fitur folder terpercaya dengan mengatur security.folderTrust.enabled ke true di ~/.bob/settings/settings.json. Perubahan ini memerlukan restart agar berlaku.
- Tentukan direktori yang kamu kendalikan dan tambahkan entri
TRUST_PARENTke~/.bob/trustedFolders.jsonuntuk masing-masing. Ini mencakup semua repository di bawah root workspace yang dikenal dan membiarkan semua yang di luar pohon tersebut sebagai belum diputuskan.{ "/home/runner/work/my-org": "TRUST_PARENT" } - Untuk repository apa pun yang kamu clone dari sumber eksternal atau tidak terpercaya, tambahkan entri
DONT_TRUSTsebelum menjalankanbob run:{ "/home/runner/work/my-org": "TRUST_PARENT", "/home/runner/work/third-party-repo": "DONT_TRUST" } - Tinjau hook global yang dikonfigurasi di
~/.bob/settings/settings.json. Hook global dijalankan untuk setiap folder terpercaya atau belum diputuskan, termasuk semua repo yang dicakup oleh entriTRUST_PARENT. Hapus atau batasi scope hook yang tidak boleh berjalan terhadap kode yang tidak terpercaya. - Sebelum menjalankan
bob runterhadap repository yang di-clone, tinjau.bob/settings.jsondi dalam repository tersebut untuk hook workspace, sama seperti kamu meninjauMakefileatau file konfigurasi CI. Hook workspace dimuat di folder terpercaya atau belum diputuskan mana pun.
Setelah menyelesaikan langkah-langkah ini, Bob Shell memblokir pengaturan proyek dan hook untuk folder mana pun yang memiliki entri DONT_TRUST, sementara tetap mengizinkan bob run beroperasi secara normal di workspace yang kamu kendalikan.
Praktik terbaik
- Percayai hanya folder yang berisi kode yang telah kamu tinjau atau buat sendiri
- Gunakan
TRUST_PARENTuntuk direktori yang berisi beberapa proyek aman agar tidak perlu mengelola entri folder satu per satu - Tinjau
~/.bob/trustedFolders.jsonsecara rutin untuk mengaudit folder mana yang terpercaya - Saat bekerja dengan kode yang tidak dikenal, tambahkan entri
DONT_TRUSTuntuk direktori yang di-clone sebelum menjalankanbob run - Tinjau hook global di
~/.bob/settings/settings.jsonsecara berkala — hook tersebut dijalankan di setiap folder terpercaya dan belum diputuskan