WeaviateEx.API.Users.OIDC (WeaviateEx v0.7.4)
View SourceOIDC-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
Assigns roles to an OIDC user.
Gets an OIDC user by ID.
Gets roles assigned to an OIDC user.
Lists all known OIDC users.
Revokes roles from an OIDC user.
Types
@type opts() :: keyword()
Functions
@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"])
@spec get(WeaviateEx.Client.t(), String.t(), opts()) :: {:ok, WeaviateEx.Users.User.OIDC.t()} | {:error, WeaviateEx.Error.t()}
Gets an OIDC user by ID.
Examples
{:ok, user} = OIDC.get(client, "user@example.com")
@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")
@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)
@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"])