Statamic Secret

Statamic Secret Main Screenshot

With this addon you can store text that will be encrypted using generated RSA keys. The text will be decrypted in the control panel and when augmented, but no one will have a clue what the value is just by looking at the content files.

Features

This addon:

  • Adds a fieldtype that enables the user to store encrypted single- or multiline text
  • Provides a command for generating RSA keys
  • Provides a way to store the RSA keys in any disk that has been configured in config/filesystem.php (Pro only)

How to Install

You can search for this addon in the Tools > Addons section of the Statamic control panel and click install, or run the following command from your project root:

composer require jezzdk/statamic-secret

You can set some .env variables to change options (the values below are the defaults):

// The RSA key length in bytes
STATAMIC_SECRET_KEY_LENGTH=4096 

// The path and filename for the public key
STATAMIC_SECRET_KEY_PUBLIC=statamic_secret.pub

// The path and filename for the private key
STATAMIC_SECRET_KEY_PRIVATE=statamic_secret 

// The filesystem disk to use as storage (Pro only)
STATAMIC_SECRET_DISK=local

You can publish the config file with:

php artisan vendor:publish --tag=statamic-secret-config

How to Use

When installing the addon, the keys should automatically be generated for you. If not, or if you want to re-generate them for any reason, simply run the following command:

php please secret:generate

You should NOT commit the keys to version control. Nor should you place them anywhere publicly accessible.

Once installed, a new Secret fieldtype is selectable from the field picker.


Disclaimer: I've borrowed some code regarding key generation from the excellent Eloquent Encryption package by @RichardStyles. Go check it out!