WeaviateEx.API.Users.OIDC (WeaviateEx v0.7.4)

View Source

OIDC-backed user management.

This module manages users that are authenticated via OIDC (OpenID Connect). OIDC users are created and managed by the external identity provider, so this module only provides operations for:

  • Getting user information
  • Listing known OIDC users
  • Assigning/revoking roles

Note: OIDC users cannot be created or deleted via this API - they are provisioned by the identity provider.

Examples

alias WeaviateEx.API.Users.OIDC

# Get an OIDC user
{:ok, user} = OIDC.get(client, "user@example.com")
IO.puts("Groups: #{inspect(user.groups)}")

# List all OIDC users
{:ok, users} = OIDC.list(client)

# Assign roles
:ok = OIDC.assign_roles(client, "user@example.com", ["viewer"])

Summary

Functions

Gets an OIDC user by ID.

Gets roles assigned to an OIDC user.

Lists all known OIDC users.

Types

opts()

@type opts() :: keyword()

Functions

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

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

Assigns roles to an OIDC user.

Examples

:ok = OIDC.assign_roles(client, "user@example.com", ["editor", "viewer"])

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

Gets an OIDC user by ID.

Examples

{:ok, user} = OIDC.get(client, "user@example.com")

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

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

Gets roles assigned to an OIDC user.

Examples

{:ok, roles} = OIDC.get_roles(client, "user@example.com")

list(client, opts \\ [])

@spec list(WeaviateEx.Client.t(), opts()) ::
  {:ok, [WeaviateEx.Users.User.OIDC.t()]} | {:error, WeaviateEx.Error.t()}

Lists all known OIDC users.

Returns users that have authenticated at least once or had roles assigned.

Examples

{:ok, users} = OIDC.list(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()}

Revokes roles from an OIDC user.

Examples

:ok = OIDC.revoke_roles(client, "user@example.com", ["editor"])