WeaviateEx.API.Users (WeaviateEx v0.7.4)
View SourceUser management operations.
This module provides API operations for managing users in Weaviate. Users can be database-managed (DB users) or OIDC-managed.
Examples
alias WeaviateEx.API.Users
# Create a new DB user (returns API key)
{:ok, user} = Users.create(client, "new-user-id")
IO.puts("API Key: #{user.api_key}")
# Get current user info
{:ok, me} = Users.get_my_user(client)
# Assign roles to user
:ok = Users.assign_roles(client, "user-id", ["admin", "reader"])
# Deactivate user
:ok = Users.deactivate(client, "user-id")
# Rotate API key
{:ok, new_key} = Users.rotate_key(client, "user-id")
Summary
Functions
Activate a user.
Assign roles to a user.
Create a new DB user.
Deactivate a user.
Delete a user.
Get a user by ID.
Get roles assigned to a user.
Get the current authenticated user.
List all users.
Revoke roles from a user.
Rotate a user's API key.
Types
@type opts() :: keyword()
Functions
@spec activate(WeaviateEx.Client.t(), String.t(), opts()) :: :ok | {:error, WeaviateEx.Error.t()}
Activate a user.
Examples
:ok = Users.activate(client, "john.doe")
@spec assign_roles(WeaviateEx.Client.t(), String.t(), [String.t()], opts()) :: :ok | {:error, WeaviateEx.Error.t()}
Assign roles to a user.
Examples
:ok = Users.assign_roles(client, "john.doe", ["admin", "editor"])
@spec create(WeaviateEx.Client.t(), String.t(), opts()) :: {:ok, WeaviateEx.Users.User.DB.t()} | {:error, WeaviateEx.Error.t()}
Create a new DB user.
Returns the created user with their generated API key.
Examples
{:ok, user} = Users.create(client, "john.doe")
IO.puts("API Key: #{user.api_key}")
@spec deactivate(WeaviateEx.Client.t(), String.t(), opts()) :: :ok | {:error, WeaviateEx.Error.t()}
Deactivate a user.
Examples
:ok = Users.deactivate(client, "john.doe")
@spec delete(WeaviateEx.Client.t(), String.t(), opts()) :: :ok | {:error, WeaviateEx.Error.t()}
Delete a user.
Examples
:ok = Users.delete(client, "john.doe")
@spec get(WeaviateEx.Client.t(), String.t(), opts()) :: {:ok, WeaviateEx.Users.User.DB.t() | WeaviateEx.Users.User.OIDC.t()} | {:error, WeaviateEx.Error.t()}
Get a user by ID.
Returns either a DB user or OIDC user depending on the user type.
Examples
{:ok, user} = Users.get(client, "john.doe")
@spec get_assigned_roles(WeaviateEx.Client.t(), String.t(), opts()) :: {:ok, [String.t()]} | {:error, WeaviateEx.Error.t()}
Get roles assigned to a user.
Examples
{:ok, roles} = Users.get_assigned_roles(client, "john.doe")
@spec get_my_user(WeaviateEx.Client.t(), opts()) :: {:ok, WeaviateEx.Users.User.Own.t()} | {:error, WeaviateEx.Error.t()}
Get the current authenticated user.
Examples
{:ok, me} = Users.get_my_user(client)
@spec list_all(WeaviateEx.Client.t(), opts()) :: {:ok, [WeaviateEx.Users.User.DB.t() | WeaviateEx.Users.User.OIDC.t()]} | {:error, WeaviateEx.Error.t()}
List all users.
Returns both DB users and OIDC users.
Examples
{:ok, users} = Users.list_all(client)
@spec revoke_roles(WeaviateEx.Client.t(), String.t(), [String.t()], opts()) :: :ok | {:error, WeaviateEx.Error.t()}
Revoke roles from a user.
Examples
:ok = Users.revoke_roles(client, "john.doe", ["admin"])
@spec rotate_key(WeaviateEx.Client.t(), String.t(), opts()) :: {:ok, String.t()} | {:error, WeaviateEx.Error.t()}
Rotate a user's API key.
Returns the new API key. Only works for DB users.
Examples
{:ok, new_key} = Users.rotate_key(client, "john.doe")