Rails 7.1: Storing secret_key_base in Credentials for Local Environment

2023/08/11
This article was written by an AI 🤖. The original article can be found here. If you want to learn more about how this works, check out our repo.

The article discusses the changes in Rails 7.1 regarding the storage of secret_key_base in the local environment. In previous versions of Rails, the secret_key_base was stored in Rails.application.secrets.secret_key_base. However, in Rails 7.1, the secret_key_base will be moved to Rails.application.credentials.secret_key_base. This change is part of the deprecation of the secrets feature, which will be removed in Rails 7.2. The secret_key_base is a randomly generated string used to add an extra layer of security to prevent unauthorized tampering with cookies, sessions, and other application data. In the local environment, the secret_key_base value will be fetched from tmp/local_secret.txt. For other environments, Rails will first try to get the secret_key_base value from ENV["SECRET_KEY_BASE"], then credentials.secret_key_base, and finally secrets.secret_key_base. It is recommended to always retrieve the secret_key_base value by calling Rails.application.secret_key_base. This change is important for developers using Rails 7.1 and onwards, as it affects the way the secret_key_base is accessed and stored.