Supabase.Auth.Admin.OAuth.Behaviour behaviour (supabase_auth v1.0.1)

View Source

Behaviour for admin-level OAuth 2.1 client management operations.

Defines the contract for managing OAuth clients programmatically via the GoTrue admin API. Requires a service_role key.

Summary

Types

pagination()

@type pagination() :: %{
  next_page: integer() | nil,
  last_page: integer(),
  total: integer()
}

Callbacks

create_client(t, map)

@callback create_client(Supabase.Client.t(), map()) ::
  {:ok, Supabase.Auth.Schemas.OAuth.AdminClient.t()} | {:error, term()}

delete_client(t, t)

@callback delete_client(Supabase.Client.t(), String.t()) :: :ok | {:error, term()}

get_client(t, t)

@callback get_client(Supabase.Client.t(), String.t()) ::
  {:ok, Supabase.Auth.Schemas.OAuth.AdminClient.t()} | {:error, term()}

list_clients(t, map)

@callback list_clients(Supabase.Client.t(), map()) ::
  {:ok, [Supabase.Auth.Schemas.OAuth.AdminClient.t()], pagination()}
  | {:error, term()}

regenerate_client_secret(t, t)

@callback regenerate_client_secret(Supabase.Client.t(), String.t()) ::
  {:ok, Supabase.Auth.Schemas.OAuth.AdminClient.t()} | {:error, term()}

update_client(t, t, map)

@callback update_client(Supabase.Client.t(), String.t(), map()) ::
  {:ok, Supabase.Auth.Schemas.OAuth.AdminClient.t()} | {:error, term()}