WeaviateEx.Users.User (WeaviateEx v0.7.4)

View Source

User structs for Weaviate user management.

This module defines structs for different user types:

  • User.DB - Database-managed users (created via API)
  • User.OIDC - OIDC-managed users (authenticated via external provider)
  • User.Own - Current authenticated user information

Examples

# DB User
%User.DB{
  user_id: "john.doe",
  api_key: "secret-key",
  active: true,
  roles: ["editor"]
}

# OIDC User
%User.OIDC{
  user_id: "oauth@company.com",
  groups: ["engineering"],
  roles: ["developer"]
}

# Current user info
%User.Own{
  user_id: "me",
  user_type: :db_user,
  roles: ["admin"],
  groups: []
}

Summary

Functions

Decode a user from API response.

Decode the current user (own) from API response.

Parse user type string to atom.

Types

user_type()

@type user_type() :: :db_user | :db_env_user | :oidc

Functions

from_api(api_data)

@spec from_api(map()) ::
  {:ok, WeaviateEx.Users.User.DB.t() | WeaviateEx.Users.User.OIDC.t()}
  | {:error, String.t()}

Decode a user from API response.

Returns the appropriate user struct based on the userType field.

Examples

{:ok, user} = User.from_api(%{
  "userId" => "john",
  "userType" => "db_user",
  "active" => true,
  "roles" => ["admin"]
})

from_api_own(api_data)

@spec from_api_own(map()) :: {:ok, WeaviateEx.Users.User.Own.t()}

Decode the current user (own) from API response.

Examples

{:ok, user} = User.from_api_own(%{
  "userId" => "me",
  "userType" => "db_user",
  "roles" => ["admin"],
  "groups" => []
})

parse_user_type(arg1)

@spec parse_user_type(String.t() | nil) :: user_type()

Parse user type string to atom.

Examples

User.parse_user_type("db_user")     # => :db_user
User.parse_user_type("db_env_user") # => :db_env_user
User.parse_user_type("oidc")        # => :oidc