Lockspire.Admin.Clients (lockspire v1.0.0)

Copy Markdown

Query and command boundary for operator-managed OAuth clients.

Summary

Types

error_detail()

@type error_detail() :: %{field: atom(), reason: atom(), detail: term()}

Functions

create_client(attrs)

@spec create_client(map() | keyword()) ::
  {:ok, Lockspire.Clients.RegistrationResult.t()}
  | {:error, [Lockspire.Clients.error_detail()]}

create_dcr_client(attrs)

@spec create_dcr_client(%{client: Lockspire.Domain.Client.t(), actor: map()}) ::
  {:ok, Lockspire.Domain.Client.t()} | {:error, term()}

disable_client(client_id, attrs \\ %{})

@spec disable_client(String.t(), map() | keyword()) ::
  {:ok, Lockspire.Domain.Client.t()} | {:error, :not_found | term()}

enable_client(client_id, attrs \\ %{})

@spec enable_client(String.t(), map() | keyword()) ::
  {:ok, Lockspire.Domain.Client.t()} | {:error, :not_found | term()}

get_client(client_id)

@spec get_client(String.t()) ::
  {:ok, Lockspire.Domain.Client.t()} | {:error, :not_found | term()}

list_clients(opts \\ [])

@spec list_clients(keyword()) ::
  {:ok, [Lockspire.Domain.Client.t()]} | {:error, term()}

rotate_client_secret(client_id, attrs \\ %{})

@spec rotate_client_secret(String.t(), map() | keyword()) ::
  {:ok, %{client: Lockspire.Domain.Client.t(), client_secret: String.t()}}
  | {:error, [error_detail()]}
  | {:error, term()}

update_client(client_id, attrs)

@spec update_client(String.t(), map() | keyword()) ::
  {:ok, Lockspire.Domain.Client.t()}
  | {:error, [error_detail()]}
  | {:error, term()}