cloak v0.7.0 Cloak.Fields.StringList View Source

An Ecto.Type to encrypt a list of strings.

Configuration

You can customize the json library used for for converting lists.

config :my_app, MyApp.Vault,
  json_library: Jason

Migration

The database field must be of type :binary.

add :encrypted_field, :binary

Usage

Define an Encrypted.StringList module in your project:

defmodule MyApp.Encrypted.StringList do
  use Cloak.Fields.StringList, vault: MyApp.Vault
end

Then, define the type of your desired fields:

schema "table_name" do
  field :encrypted_field, MyApp.Encrypted.StringList
end

On encryption, the list will first be converted to JSON using the configured :json_library, and then encrypted. On decryption, the :json_library will be used to convert it back to a list of strings.