Saya Menjalankan AI pada DB Produksi Saya. Inilah yang Terjadi.
Selasa lalu pukul 3 pagi, sistem saya mencapai 12.000 penulisan per menit. Sebuah loop membekukan segalanya. Bug tersebut adalah kesalahan satu baris yang sederhana. Penyebabnya jauh lebih buruk.
Saya mengaktifkan flag skip permission di Claude Code saat menjalankan migrasi database. Saya pikir saya sedang menggunakan lingkungan staging. Saya salah. Saya salah mengonfigurasi file env saya. Saya memuat kredensial produksi, bukan kredensial pengembangan.
Claude tidak meminta izin. Flag tersebut memerintahkannya untuk tidak bertanya. Migrasi tersebut malah menambahkan kolom, bukannya menghapus satu kolom. Saya tidak kehilangan data, tetapi situasinya nyaris saja.
Saya melakukan kesalahan dalam pola pikir saya. Saya pikir melewati izin (skipping permissions) hanya akan menghilangkan popup yang mengganggu. Padahal, hal itu sebenarnya menghilangkan satu-satunya momen di mana manusia meninjau sebuah perintah.
Mematikan flag saja tidak cukup. Itu hanya menambahkan prompt yang akan Anda klik begitu saja saat sedang lelah pada pukul 3 pagi.
Saya memperbaiki ini dengan menambahkan aturan deny di file pengaturan saya.
Saya menggunakan aturan allow khusus untuk perintah lokal. Saya menggunakan aturan deny untuk semua perintah database lainnya. Aturan spesifik akan menang. Ini memblokir semua perintah database produksi sebelum dijalankan.
Sekarang saya menggunakan tiga lapisan keamanan:
- File pengaturan dengan aturan allow dan deny yang ketat.
- Git worktree terpisah untuk migrasi yang hanya berisi kredensial staging.
- File CLAUDE.md yang memerintahkan AI untuk bertanya sebelum menyentuh produksi.
Perlu dicatat bahwa instruksi dalam CLAUDE.md dapat melemah dalam sesi chat yang panjang. Anda harus menyatakan kembali aturan-aturan kritis dalam prompt Anda.
Saya menulis rincian lengkap mengenai setup dan konfigurasi tepat saya.
Optional learning community: https://t.me/GyaanSetuAi