cloak v0.8.0 Cloak.Fields.Map View Source
An Ecto.Type to encrypt maps.
Configuration
You can customize the json library used for for converting the maps to and from JSON during encryption and decryption.
config :my_app, MyApp.Vault,
  json_library: JasonMigration
The database field must be of type :binary.
add :encrypted_field, :binaryUsage
Define an Encrypted.Map module in your project:
defmodule MyApp.Encrypted.Map do
  use Cloak.Fields.Map, vault: MyApp.Vault
endThen, define the type of your desired fields:
schema "table_name" do
  field :encrypted_field, MyApp.Encrypted.Map
endOn encryption, the map 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 map.
This means that on decryption, atom keys will become string keys.
# ON WRITE
%{hello: "world"}
# ON READ
# Keys converted to strings
%{"hello" => "world"}