Я запускаю ШІ на своїй продуктивній БД. Ось що сталося.

Минулого вівторка о 3-й годині ранку моя система досягла 12 000 записів на хвилину. Цикл заморозив усе. Помилка була простою, в один рядок. Причина була набагато серйознішою.

Я увімкнув прапорець пропуску дозволів (permission skip flag) у Claude Code під час виконання міграцій бази даних. Я думав, що використовую своє стейджинг-середовище. Я помилявся. Я неправильно налаштував свій env-файл. Я завантажив облікові дані продуктивної бази замість розробницьких.

Claude не запитав дозволу. Прапорець наказав йому не запитувати. Міграція додала колонку замість того, щоб видалити її. Я не втратив даних, але це було дуже близько.

Я припустився помилки у своїх міркуваннях. Я думав, що пропуск дозволів лише прибирає набридливі спливаючі вікна. Насправді це прибирає єдиний момент, коли людина перевіряє команду.

Просто вимкнути прапорець недостатньо. Це лише додасть запит, який ви бездумно проклікаєте, будучи втомленими о 3-й ранку.

Я виправив це, додавши правило заборони (deny rule) у свій файл налаштувань.

Я використовую конкретне правило дозволу (allow rule) для локальних команд. Для всіх інших команд бази даних я використовую правило заборони. Конкретне правило має пріоритет. Це блокує всі команди продуктивної бази даних ще до їхнього виконання.

Тепер я використовую три рівні безпеки:

  • Файл налаштувань із суворими правилами дозволу та заборони.
  • Окремий git worktree для міграцій, який містить лише облікові дані стейджингу.
  • Файл CLAUDE.md, який наказує ШІ запитувати дозвіл перед роботою з продуктивною базою.

Зауважте, що інструкції в 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