WeaviateEx.RBAC.Actions (WeaviateEx v0.7.4)
View SourcePermission action types for Weaviate RBAC.
This module defines all supported actions for each permission type in Weaviate's RBAC system and provides conversion functions between Elixir atoms and API strings.
Permission Types and Actions
| Type | Actions |
|---|---|
| collections | create, read, update, delete, manage |
| data | create, read, update, delete, manage |
| tenants | create, read, update, delete |
| roles | create, read, update, delete |
| users | create, read, update, delete, assign_and_revoke |
| groups | read, assign_and_revoke |
| cluster | read |
| nodes | read |
| backups | manage |
| replicate | create, read, update, delete |
| alias | create, read, update, delete |
Examples
iex> Actions.to_api_string(:collections, :create)
"create_collections"
iex> Actions.from_api_string("read_data")
{:ok, {:data, :read}}
iex> Actions.valid_action?(:users, :assign_and_revoke)
true
Summary
Functions
Get all valid actions for a permission type.
Parse an API string to permission type and action tuple.
Get all permission types.
Convert a permission type and action to the API string format.
Check if an action is valid for the given permission type.
Types
@type action() :: collections_action() | data_action() | tenants_action() | roles_action() | users_action() | groups_action() | cluster_action() | nodes_action() | backups_action() | replicate_action() | alias_action()
@type alias_action() :: :create | :read | :update | :delete
@type backups_action() :: :manage
@type cluster_action() :: :read
@type collections_action() :: :create | :read | :update | :delete | :manage
@type data_action() :: :create | :read | :update | :delete | :manage
@type groups_action() :: :read | :assign_and_revoke
@type nodes_action() :: :read
@type permission_type() ::
:collections
| :data
| :tenants
| :roles
| :users
| :groups
| :cluster
| :nodes
| :backups
| :replicate
| :alias
@type replicate_action() :: :create | :read | :update | :delete
@type roles_action() :: :create | :read | :update | :delete
@type tenants_action() :: :create | :read | :update | :delete
@type users_action() :: :create | :read | :update | :delete | :assign_and_revoke
Functions
@spec actions_for_type(permission_type()) :: [action()]
Get all valid actions for a permission type.
Examples
iex> Actions.actions_for_type(:collections)
[:create, :read, :update, :delete, :manage]
iex> Actions.actions_for_type(:cluster)
[:read]
@spec from_api_string(String.t()) :: {:ok, {permission_type(), action()}} | {:error, String.t()}
Parse an API string to permission type and action tuple.
Examples
iex> Actions.from_api_string("create_collections")
{:ok, {:collections, :create}}
iex> Actions.from_api_string("unknown_action")
{:error, "Unknown action: unknown_action"}
@spec permission_types() :: [permission_type()]
Get all permission types.
Examples
iex> Actions.permission_types()
[:collections, :data, :tenants, :roles, :users, :groups, :cluster, :nodes, :backups, :replicate, :alias]
@spec to_api_string(permission_type(), action()) :: String.t()
Convert a permission type and action to the API string format.
Examples
iex> Actions.to_api_string(:collections, :create)
"create_collections"
iex> Actions.to_api_string(:users, :assign_and_revoke)
"assign_and_revoke_users"
@spec valid_action?(permission_type(), action()) :: boolean()
Check if an action is valid for the given permission type.
Examples
iex> Actions.valid_action?(:collections, :create)
true
iex> Actions.valid_action?(:nodes, :delete)
false