# `LLMProxy.Provider.TokenCodec.Migration`
[🔗](https://github.com/elixir-vibe/llm_proxy/blob/v0.3.1/lib/llm_proxy/provider/token_codec/migration.ex#L1)

Explicit migration tools for stored provider credentials.

Encryption and plaintext rollback run in one database transaction. Status and
verification return counts only. They never return credential values.

# `counts`

```elixir
@type counts() :: %{
  rows: non_neg_integer(),
  encrypted_fields: non_neg_integer(),
  plaintext_fields: non_neg_integer()
}
```

# `decrypt_all`

```elixir
@spec decrypt_all() :: {:ok, map()} | {:error, term()}
```

# `encrypt_all`

```elixir
@spec encrypt_all() :: {:ok, map()} | {:error, term()}
```

# `rotate_all`

```elixir
@spec rotate_all() :: {:ok, map()} | {:error, term()}
```

# `status`

```elixir
@spec status() :: {:ok, counts()} | {:error, term()}
```

# `verify`

```elixir
@spec verify() :: {:ok, counts()} | {:error, term()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
