मी माझ्या Production DB वर AI चालवले. काय घडले ते पहा.

गेल्या मंगळवारी पहाटे ३ वाजता, माझ्या सिस्टममध्ये प्रति मिनिट १२,००० writes झाले. एका loop मुळे सर्व काही freeze झाले. तो bug केवळ एका ओळीची चूक होती. पण त्याचे कारण खूप गंभीर होते.

डेटाबेस migrations चालवताना मी Claude Code मध्ये 'permission skip flag' सक्षम केला. मला वाटले की मी माझ्या staging environment चा वापर करत आहे. पण मी चुतो. मी माझी env file चुकीच्या पद्धतीने कॉन्फिगर केली होती. मी development credentials ऐवजी production credentials लोड केले होते.

Claude ने परवानगी मागितली नाही. त्या flag मुळे त्याला न विचारण्यास सांगितले होते. migration मुळे एक column drop करण्याऐवजी तो add झाला. माझा कोणताही डेटा गमावला नाही, पण परिस्थिती खूप बिकट होती.

माझ्या विचार करण्याच्या पद्धतीत चूक झाली. मला वाटले की permissions skip केल्यामुळे फक्त त्रासदायक popups कमी होतात. पण प्रत्यक्षात, यामुळे मानवाला कमांड तपासायची एकमेव संधी निघून जाते.

फक्त flag बंद करणे पुरेसे नाही. ते फक्त एक असा prompt जोडते, जो पहाटे ३ वाजता थकलेले असताना तुम्ही सहज क्लिक करून पुढे जाल.

मी माझ्या settings file मध्ये 'deny rule' जोडून ही समस्या सोडवली.

मी local commands साठी एक विशिष्ट 'allow rule' वापरतो. इतर सर्व डेटाबेस commands साठी मी 'deny rule' वापरतो. विशिष्ट rule ला प्राधान्य दिले जाते. यामुळे सर्व production database commands रन होण्यापूर्वीच ब्लॉक होतात.

आता मी सुरक्षिततेचे तीन स्तर वापरतो:

  • कडक allow आणि deny rules असलेली एक settings file.
  • migrations साठी एक वेगळा git worktree, ज्यामध्ये फक्त staging credentials असतील.
  • एक CLAUDE.md file, जी AI ला production ला स्पर्श करण्यापूर्वी विचारण्यास सांगते.

लक्षात ठेवा की लांब चॅट सेशन्समध्ये CLAUDE.md मधील सूचनांचा प्रभाव कमी होऊ शकतो. तुम्हाला तुमच्या prompt मध्ये महत्त्वाचे नियम पुन्हा सांगणे आवश्यक आहे.

मी माझ्या सेटअपचा आणि नेमक्या कॉन्फिगरेशनचा संपूर्ण तपशील लिहिला आहे.

Source: https://dev.to/riversea/i-let-claude-code-run-dangerously-skip-permissions-on-my-production-db-heres-what-i-changed-4p8

Optional learning community: https://t.me/GyaanSetuAi