WeaviateEx.Users.User (WeaviateEx v0.7.4)
View SourceUser 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
Functions
@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"]
})
@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 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