Keamanan

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.

Catatan:

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 kepercayaanEfek
TRUST_FOLDERMemberikan kepercayaan penuh pada path folder yang tepat. Pengaturan proyek, hook, mode, skill, dan server MCP semuanya dimuat secara normal.
TRUST_PARENTMemberikan kepercayaan penuh pada direktori yang ditentukan dan semua subdirektori di bawahnya. Gunakan tingkat ini untuk mencakup root workspace yang berisi beberapa repo.
DONT_TRUSTMenandai 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:

FiturPerilaku dalam safe mode
Pengaturan proyek.bob/settings.json tidak dimuat. Alat kustom dan konfigurasi yang berpotensi berbahaya diblokir.
Persetujuan otomatis alatKamu selalu diminta konfirmasi sebelum alat apa pun berjalan, meskipun persetujuan otomatis diaktifkan secara global.
Server MCPBob Shell tidak akan mencoba terhubung ke server MCP mana pun.
Mode kustomMode yang didefinisikan di folder proyek tidak tersedia. Hanya mode bawaan dan mode yang kamu definisikan secara global yang dapat digunakan.
SkillSkill yang dibundel dengan proyek tidak dimuat. Hanya skill yang tersedia secara global dan kemampuan bawaan yang aktif.
SubagentsSubagent kustom dari folder proyek tidak tersedia. Agen tidak dapat mendelegasikan pekerjaan ke helper yang disediakan proyek.
Instruksi proyekFile 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.json untuk keputusan yang sudah ada bagi folder saat ini.
Mengubah kepercayaan folder saat ini
Jalankan perintah slash /permissions dari dalam Bob Shell. Dialog interaktif akan muncul, memungkinkanmu mengubah tingkat kepercayaan untuk folder saat ini.
Melihat semua aturan kepercayaan
Periksa ~/.bob/trustedFolders.json di 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_FOLDER atau TRUST_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.
Penting:

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.json dan 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.

  1. Tentukan direktori yang kamu kendalikan dan tambahkan entri TRUST_PARENT ke ~/.bob/trustedFolders.json untuk 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"
    }
  2. Untuk repository apa pun yang kamu clone dari sumber eksternal atau tidak terpercaya, tambahkan entri DONT_TRUST sebelum menjalankan bob run:
    {
      "/home/runner/work/my-org": "TRUST_PARENT",
      "/home/runner/work/third-party-repo": "DONT_TRUST"
    }
  3. 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 entri TRUST_PARENT. Hapus atau batasi scope hook yang tidak boleh berjalan terhadap kode yang tidak terpercaya.
  4. Sebelum menjalankan bob run terhadap repository yang di-clone, tinjau .bob/settings.json di dalam repository tersebut untuk hook workspace, sama seperti kamu meninjau Makefile atau 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_PARENT untuk direktori yang berisi beberapa proyek aman agar tidak perlu mengelola entri folder satu per satu
  • Tinjau ~/.bob/trustedFolders.json secara rutin untuk mengaudit folder mana yang terpercaya
  • Saat bekerja dengan kode yang tidak dikenal, tambahkan entri DONT_TRUST untuk direktori yang di-clone sebelum menjalankan bob run
  • Tinjau hook global di ~/.bob/settings/settings.json secara berkala — hook tersebut dijalankan di setiap folder terpercaya dan belum diputuskan
Bagaimana topik ini?