teqnifii / laravel-key-migration
Rotate your Laravel keys and migrate your encrypted data to a new key.
Fund package maintenance!
:vendor_name
Requires
- php: ^8.1
- illuminate/contracts: ^11.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^2.0.1
- laravel/pint: ^1.0
- nunomaduro/collision: ^8
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.5
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-10-29 06:19:24 UTC
README
App Key rotation and migrating records in the DB without the hassles of waiting for everything to update.
Installation
You can install the package via composer:
composer require teqnifii/laravel-key-migration
IMPORTANT NOTE
Make sure your models are using the cast type
encrypted
for the fields you want to encrypt:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class YourClass extends Model { protected $casts = [ 'your_column' => 'encrypted', ]; }
For more information on the encrypted
cast, see the Laravel documentation.
Usage
This package contains two commands, key:rotate
and key:migrate
.
key:rotate
This command will rotate the application key, and update the APP_KEY
in the .env
file, while putting the old key in the APP_PREVIOUS_KEYS
variable.
The
.env
file must be writable, and does NOT clear any config caching.You will have to still run
config:clear
after to clear any cached configurations.
key:migrate
This command will migrate the records in the database from the old key to the new key. It will look for the APP_PREVIOUS_KEYS
variable in the .env
file, and use the old keys to migrate the records.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.