defp cloak_field?({_field, {:embed, %Ecto.Embedded{}}}) do
false
end
defp cloak_field?({_field, {:parameterized, Ecto.Embedded, %Ecto.Embedded{}}}) do
false
end
I'm asking since I'm going to have something like this:
defmodule Vault do
use Cloak.Vault,
otp_app: :app
end
defmodule Vault.Value do
use Cloak.Ecto.Binary,
vault: Vault
def embed_as(_format), do: :dump
def dump(nil), do: {:ok, nil}
def dump(value) do
with {:ok, encrypted} <- super(value) do
{:ok, Base.encode64(encrypted)}
end
end
def load(nil), do: {:ok, nil}
def load(value), do: super(Base.decode64!(value))
end
defmodule Partner do
schema "partners" do
field(:code, :string)
embeds_one(:credentials, PartnerCredentials, on_replace: :update)
end
defmodule PartnerCredentials do
@primary_key false
embedded_schema do
field(:client_id, :string)
field(:client_secret, Vault.Value)
field(:refresh_token, Vault.Value)
end
end
So my client_secret and refresh_token get serialized/deserialized without problems, but I can't apply migration in case of rotating keys - credentials field will be just skipped.
Were there any problems with embeds so you don't have support of them?
Any response from you would be appreciated. Thanks!
Hello all!
I'm sorry if the question was already araised (I didn't find anything), but was is the reason why Cloak migrator doesn't support custom Ecto embeds?
https://github.com/danielberkompas/cloak_ecto/blob/master/lib/cloak_ecto/migrator.ex
I'm asking since I'm going to have something like this:
So my
client_secret
andrefresh_token
get serialized/deserialized without problems, but I can't apply migration in case of rotating keys -credentials
field will be just skipped.Were there any problems with embeds so you don't have support of them?
Any response from you would be appreciated. Thanks!