teqnifii/laravel-key-migration

Rotate your Laravel keys and migrate your encrypted data to a new key.

0.0.1 2024-03-12 20:56 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

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.