WeaviateEx.API.Users (WeaviateEx v0.7.4)

View Source

User 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

Types

opts()

@type opts() :: keyword()

Functions

activate(client, user_id, opts \\ [])

@spec activate(WeaviateEx.Client.t(), String.t(), opts()) ::
  :ok | {:error, WeaviateEx.Error.t()}

Activate a user.

Examples

:ok = Users.activate(client, "john.doe")

assign_roles(client, user_id, role_names, opts \\ [])

@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"])

create(client, user_id, opts \\ [])

@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}")

deactivate(client, user_id, opts \\ [])

@spec deactivate(WeaviateEx.Client.t(), String.t(), opts()) ::
  :ok | {:error, WeaviateEx.Error.t()}

Deactivate a user.

Examples

:ok = Users.deactivate(client, "john.doe")

delete(client, user_id, opts \\ [])

@spec delete(WeaviateEx.Client.t(), String.t(), opts()) ::
  :ok | {:error, WeaviateEx.Error.t()}

Delete a user.

Examples

:ok = Users.delete(client, "john.doe")

get(client, user_id, opts \\ [])

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")

get_assigned_roles(client, user_id, opts \\ [])

@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")

get_my_user(client, opts \\ [])

@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)

list_all(client, opts \\ [])

List all users.

Returns both DB users and OIDC users.

Examples

{:ok, users} = Users.list_all(client)

revoke_roles(client, user_id, role_names, opts \\ [])

@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"])

rotate_key(client, user_id, opts \\ [])

@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")