Deprecation Warning: Rails.application.secrets застарів — перехід на Rails.application.credentials у версії Rails 7.2

У версії Ruby on Rails 7.1.4 розробники повідомляють про застарілу функцію використання Rails.application.secrets. Це попередження (Deprecation Warning) означає, що ця функція більше не рекомендується для використання і буде остаточно видалена у наступних версіях фреймворку.

Замість цього Rails радить переходити на новішу та більш безпечну альтернативу — Rails.application.credentials. Це пов’язано з тим, що система секретів у Rails через secrets.yml менш безпечна та гнучка у порівнянні з новим підходом з використанням шифрованих credential-файлів.

Чому варто використовувати Rails.application.credentials?

  1. Безпека: Файл з credentials у Rails шифрується, що знижує ризик витоку конфіденційної інформації (ключів API, паролів тощо).

  2. Легкість в управлінні: Використання credentials дозволяє зручно керувати секретними даними для різних середовищ (production, development).

  3. Майбутня підтримка: Оскільки Rails.application.secrets буде видалено в Rails 7.2, використання credentials гарантує сумісність з новими версіями Rails.

Як перейти на Rails.application.credentials?

  1. Створіть файл з credentials за допомогою команди.
bin/rails credentials:edit
  1. Додайте ваші секрети у форматі YAML у зашифрований файл.

  2. Використовуйте Rails.application.credentials[:your_key] замість Rails.application.secrets[:your_key].

Отже, аби уникнути помилок у майбутніх версіях Rails та забезпечити більший рівень безпеки вашого додатку, рекомендується вже зараз перейти на використання Rails.application.credentials.