Broker rahasia 1Password
Pluginonepassword yang disertakan menyediakan satu alat yang dikendalikan kebijakan bagi agen untuk
membaca kumpulan bidang 1Password yang telah dikurasi. Plugin ini dinonaktifkan secara default dan tidak
melakukan apa pun hingga plugins.entries.onepassword.config tersedia.
Ini adalah alat agen, bukan penyedia SecretRef. Alat ini tidak menyuntikkan variabel
lingkungan atau me-resolve rahasia konfigurasi OpenClaw.
Model keamanan
- Hanya autentikasi akun layanan. Token tetap berada dalam file kredensial lokal
dan tidak pernah diterima dalam
openclaw.json. - Hanya registri yang dikurasi. Agen dapat mencantumkan slug yang dikonfigurasi, tetapi plugin tidak pernah menginventarisasi vault 1Password.
- Kebijakan
auto,approve, ataudenyper slug. - Izin persetujuan kedaluwarsa. Nilai yang di-cache tidak pernah melewati kebijakan saat ini.
- Setiap upaya akses dicatat dalam status SQLite bersama milik OpenClaw. Baris audit mencakup alasan yang diberikan; pastikan alasan tidak sensitif. Broker tidak pernah menyalin nilai yang diambil atau token layanan ke dalam baris audit.
- Setelah eksekusi alat saat ini, persistensi transkrip milik OpenClaw
mengganti nilai
getyang berhasil dengan metadata yang disunting. - Nilai tersebut terlihat oleh model untuk eksekusi itu. Jika model menyalinnya ke dalam pemanggilan alat atau balasan berikutnya, catatan terpisah tersebut berada di luar hook persistensi plugin ini. Pertahankan kebijakan tetap sempit dan jangan meminta model mengulangi suatu nilai.
- Plugin memanggil
opsatu kali untuk setiap cache miss. Plugin tidak mencoba ulang batas laju atau kegagalan lainnya. - Setiap pemanggilan
opberjalan dengan lingkungan minimal yang menonaktifkan integrasi aplikasi desktop 1Password (OP_LOAD_DESKTOP_APP_SETTINGS=false,OP_BIOMETRIC_UNLOCK_ENABLED=false), sehingga aplikasi 1Password yang terinstal pada host Gateway tidak pernah memicu dialog biometrik atau izin macOS.
Sebelum memulai
Anda memerlukan:- CLI 1Password (
op) yang terinstal pada host Gateway - akun layanan 1Password dengan akses ke item yang dipilih
- file token khusus akun layanan
OPENCLAW_STATE_DIR ditetapkan, ganti ~/.openclaw dengan direktori tersebut.
Plugin memperingatkan satu kali saat file token dapat dibaca atau ditulis oleh grup atau
pengguna lain.
Mengonfigurasi rahasia terdaftar
Tambahkan konfigurasi plugin keopenclaw.json:
field menerima satu label
atau ID bidang, tidak boleh memuat koma, dan nilai default-nya adalah credential.
vault tingkat item menggantikan vault default. opBin dapat menetapkan jalur
absolut ke executable op; jika tidak, plugin me-resolve op dari PATH.
Judul item tidak boleh diawali dengan tanda hubung.
Menggunakan alat agen
Nama alatnya adalahonepassword.
Cantumkan slug terdaftar:
reason wajib diisi, tidak boleh kosong, dan dibatasi hingga 300 karakter.
get yang berhasil mengembalikan nilai beserta slug, judul item, dan
label bidang yang dikonfigurasi.
Skema alat juga mendeklarasikan parameter internal authorizationNonce. Lapisan
kebijakan menyuntikkannya setelah mengevaluasi permintaan untuk menyerahkan otorisasi
kepada pemanggilan alat yang mengeksekusi. Jangan pernah menetapkannya secara manual: hook kebijakan menimpa
setiap nilai yang diberikan, dan nilai yang tidak dikenal menyebabkan permintaan gagal.
Tingkat kebijakan dan persetujuan
auto: segera ambil dan audit permintaan.deny: blokir dan audit permintaan.approve: gunakan izin tetap yang belum kedaluwarsa, atau minta manusia untuk mengizinkan sekali, selalu mengizinkan, atau menolak.
grantTtlHours, dengan nilai default 720 jam.
Persetujuan yang tidak diselesaikan atau kehabisan waktu akan menolak permintaan; waktu tunggu persetujuan
maksimum adalah 600 detik. Plugin menyimpan hingga 1.024 izin tetap; pada
batas tersebut, izin terlama dikeluarkan dan agennya harus menyetujui akses berikutnya.
Setiap otorisasi yang dievaluasi hanya dapat digunakan satu kali dan diserahkan kepada pemanggilan alat
yang mengeksekusi melalui status SQLite bersama, sehingga penyerahan tersebut juga berfungsi saat lebih dari satu
instans plugin aktif dalam proses Gateway. Otorisasi yang tidak digunakan kedaluwarsa
setelah jendela persetujuan 600 detik.
Cache dalam memori memiliki nilai default 300 detik dan dibatasi oleh registri slug
yang dikonfigurasi. Tetapkan cacheTtlSeconds ke 0 untuk menonaktifkannya. Kebijakan dievaluasi
sebelum setiap pencarian cache, dan cache hit diaudit. Pemuatan ulang konfigurasi runtime
berlaku pada setiap batas kebijakan dan eksekusi; menonaktifkan plugin atau
menghapus, menolak, atau mengubah target slug akan membatalkan otorisasi tertunda dan
nilai yang di-cache.
Memeriksa status dan riwayat audit
Tampilkan kesiapan dan jumlah registri:op berhasil di-resolve beserta jalurnya,
jumlah item terdaftar, dan jumlah per kebijakan. Perintah ini tidak pernah membaca atau mencetak
token maupun nilai rahasia.
Tampilkan 50 baris audit terbaru:
errorCode
saat upaya gagal, serta alasan yang dipotong. Alasan disimpan sebagaimana
diberikan; broker tidak pernah menambahkan nilai yang diambil ke log audit.
Perilaku CLI 1Password
Setiap cache miss menjalankanop item get dengan item, vault, dan pemilih
bidang persis yang dikonfigurasi, output JSON, batas waktu terbatas, dan --cache=false. Proses anak
hanya menerima bidang tersebut, bukan item lengkap. Hanya
OP_SERVICE_ACCOUNT_TOKEN dan HOME yang tersedia dalam lingkungan proses anak.
Plugin melakukan satu upaya. Error RATE_LIMITED harus ditangani dengan menunggu
sebelum permintaan agen berikutnya; plugin tidak membuat perulangan percobaan ulang
otomatis.
Kode error
Upaya yang gagal memuat satu kode error tertutup dalam hasil alat dan baris audit. Error akses 1Password:
Error kebijakan dan validasi: