मैंने अपने प्रोडक्शन DB पर AI चलाया। यहाँ बताया गया है कि क्या हुआ।

पिछले मंगलवार सुबह 3 बजे, मेरे सिस्टम ने प्रति मिनट 12,000 राइट्स (writes) तक पहुँच प्राप्त की। एक लूप ने सब कुछ फ्रीज कर दिया। बग एक साधारण एक-लाइन की गलती थी। कारण उससे कहीं अधिक गंभीर था।

डेटाबेस माइग्रेशन (database migrations) चलाते समय मैंने Claude Code में एक 'permission skip flag' इनेबल कर दिया था। मुझे लगा कि मैं अपने स्टेजिंग एनवायरनमेंट (staging environment) का उपयोग कर रहा हूँ। मैं गलत था। मैंने अपनी env फ़ाइल को गलत तरीके से कॉन्फ़िगर कर दिया था। मैंने डेवलपमेंट क्रेडेंशियल्स के बजाय प्रोडक्शन क्रेडेंशियल्स लोड कर लिए थे।

Claude ने अनुमति नहीं मांगी। फ्लैग ने उसे न पूछने के लिए कहा था। माइग्रेशन ने एक कॉलम को हटाने (dropping) के बजाय एक नया कॉलम जोड़ दिया। मेरा कोई डेटा नहीं खोया, लेकिन बाल-बाल बचा।

मैंने अपनी सोच में गलती की। मुझे लगा कि परमिशन स्किप करने से केवल परेशान करने वाले पॉपअप हटते हैं। वास्तव में, यह उस एकमात्र क्षण को हटा देता है जब कोई इंसान कमांड की समीक्षा (review) करता है।

फ्लैग को बंद करना काफी नहीं है। यह केवल एक ऐसा प्रॉम्प्ट जोड़ता है जिसे आप रात के 3 बजे थकान में बिना सोचे-समझे क्लिक कर देंगे।

मैंने अपनी सेटिंग्स फ़ाइल में एक 'deny rule' जोड़कर इसे ठीक किया।

मैं लोकल कमांड्स के लिए एक विशिष्ट 'allow rule' का उपयोग करता हूँ। मैं अन्य सभी डेटाबेस कमांड्स के लिए 'deny rule' का उपयोग करता हूँ। विशिष्ट नियम (specific rule) प्रभावी होता है। यह सभी प्रोडक्शन डेटाबेस कमांड्स को चलने से पहले ही ब्लॉक कर देता है।

अब मैं सुरक्षा के तीन स्तरों का उपयोग करता हूँ:

  • सख्त allow और deny नियमों वाली एक सेटिंग्स फ़ाइल।
  • माइग्रेशन के लिए एक अलग git worktree जिसमें केवल स्टेजिंग क्रेडेंशियल्स हों।
  • एक CLAUDE.md फ़ाइल जो AI को प्रोडक्शन को छूने से पहले पूछने के लिए कहती है।

ध्यान दें कि लंबे चैट सत्रों (chat sessions) में CLAUDE.md के निर्देश अपना प्रभाव खो सकते हैं। आपको अपने प्रॉम्प्ट में महत्वपूर्ण नियमों को फिर से दोहराना चाहिए।

मैंने अपने सेटअप और अपने सटीक कॉन्फ़िगरेशन का पूरा विवरण लिखा है।

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

वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi