# `PhoenixKitKnowledgeBase.Schemas.VaultMember`
[🔗](https://github.com/BeamLabEU/phoenix_kit_knowledge_base/blob/v0.1.0/lib/phoenix_kit_knowledge_base/schemas/vault_member.ex#L1)

One person's access to one vault.

Roles, most to least capable:

  * `"owner"`  — everything, including managing members and deleting the vault
  * `"editor"` — create, edit and delete notes and folders
  * `"viewer"` — read only

A personal vault's `owner_uuid` is granted `"owner"` implicitly, without a row
here (see `PhoenixKitKnowledgeBase.Vaults.role_for/2`), so a vault can never
end up with nobody able to administer it.

# `t`

```elixir
@type t() :: %PhoenixKitKnowledgeBase.Schemas.VaultMember{
  __meta__: term(),
  inserted_at: term(),
  role: term(),
  updated_at: term(),
  user_uuid: term(),
  uuid: term(),
  vault: term(),
  vault_uuid: term()
}
```

# `changeset`

# `roles`

```elixir
@spec roles() :: [String.t()]
```

The roles a member may hold, most capable first.

---

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